Android NDK学习总结
一、android NDK编程步骤
- java文件中声明native方法。
- android工程根目录新建jni文件夹。
- 调用javah命令为第一步声明的native方法生成相应的.h头文件。
通过windows命令行窗口进入到该工程根目录下执行如下语句,便可生成对应的.h头文件:
javah -classpath bin/classes;D:\yinz\adt-bundle-windows-x86_64-20131030\sdk\platforms\android-19\android.jar -d jni com.example.hellondk.MainActivity
javah命令的相关参数可在命令行输入:javah,然后回车即可查看
该命令执行后将在工程根目录下的jni文件夹下生成对应的.h头文件。
- jni目录下新建.c源文件,对.h中的方法进行实现。
- 编写android.mk文件(NDK demo中拷贝即可,拷贝后需自行修改相应参数,如生成的.so文件名,需要编译的.c源文件等)。
NDK解压包的 samples,文件夹下存放了相关的demo工程。
- 工程根目录执行:ndk-build生成对应的.so文件(此处可配置使eclipse自动编译,则可省略该步骤)。
- java中加载该.so文件,并调用该方法。
二、eclipse相关配置
- 配置eclipse自动编译生成.so文件
android工程右击-->properties,如下所示:
如上图所示,未配置前,Builders列表中没有“ndk-builder”选项。
此处点击“New”选项,新增一个builder,如下图所示:
选择“OK”继续:首先配置“Main”选项卡
然后再配置“Build Options”选项卡,如下:
点击“apply”-->“OK”即可。
- eclipse中配置“javah”命令
点击“Run” -->“External Tools” -->“External Tools Configurations”,弹出如下配置框:
- eclipse中配置“javap”命令
方法与配置javah相识,配置参数如下:
配置完成后便可直接在eclipse中,通过点击相应的按钮快速执行:javah生成头文件和javap查看方法签名,而不用再在命令行窗口输入一长串命令执行相应操作,其中方法签名,在jni函数中调用java对象的方法时会用到。
- 配置JNI编码时的代码提示
工程右击-->"Android Tools" -->"Add Native Support"-->"finish".
然后再:工程右击-->"Properties",如下图配置:
上图中所选路径为:D:\yinz\adt-bundle-windows-x86_64-20131030\android-ndk-r10b\platforms\android-L\arch-arm\usr\include
配置完之后,在编写相应的jni方法时便可通过eclipse的代码提示功能来进行jni方法提示。
Android NDK学习总结的更多相关文章
- Android NDK学习(2)Windows下NDK开发环境配置
转:http://www.cnblogs.com/fww330666557/archive/2012/12/14/2817386.html 一.配置好Android开发环境 二.下载安装安卓NDK ...
- Android NDK 学习之传递类对象
本博客主要是在Ubuntu 下开发,且默认你已经安装了Eclipse,Android SDK, Android NDK, CDT插件. 在Eclipse中添加配置NDK,路径如下Eclipse-> ...
- Android NDK学习(一):目录结构解析
我们配置好NDK环境后,基本可以看到其目录结构如下图: 下面我们来分析一下NDK根目录的结构: ndk-build:该Shell脚本是Android NDK构建系统的起始点,一般在项目中仅仅执行这一个 ...
- Android NDK学习(1) 简介
转:http://www.cnblogs.com/fww330666557/archive/2012/12/14/2817385.html 一.What is the NDK? The Android ...
- Android NDK学习记录(一)
一.NDK环境在Mac中部署 1.准备eclipse,android sdk安装包,android ndk安装包(http://dl.google.com/android/ndk/android-nd ...
- Android NDK 学习之在C中抛出异常
本博客主要是在Ubuntu 下开发,且默认你已经安装了Eclipse,Android SDK, Android NDK, CDT插件. 在Eclipse中添加配置NDK,路径如下Eclipse-> ...
- Android NDK 学习之调用Java函数
本博客主要是在Ubuntu 下开发,且默认你已经安装了Eclipse,Android SDK, Android NDK, CDT插件. 在Eclipse中添加配置NDK,路径如下Eclipse-> ...
- Android NDK 学习之在C中调用Java的变量和静态变量
本博客主要是在Ubuntu 下开发,且默认你已经安装了Eclipse,Android SDK, Android NDK, CDT插件. 在Eclipse中添加配置NDK,路径如下Eclipse-> ...
- Android NDK 学习之接受Java传入Object数组
本博客主要是在Ubuntu 下开发,且默认你已经安装了Eclipse,Android SDK, Android NDK, CDT插件. 在Eclipse中添加配置NDK,路径如下Eclipse-> ...
随机推荐
- 读完了简明Python教程(a bite of Python)
因为学过C/C++,简明教程里很多共通的地方一看就明白. 明天做书最后的练习. <--! 代码占位 -->
- 拷贝出你GAC里面的DLL文件
转:http://blog.sina.com.cn/s/blog_573be9bc0100ht65.html 早上和同事探讨如何从GAC中拷贝已经部署的DLL文件的时候,除了以前熟悉的命令行拷贝方法, ...
- Qt学习之路(2)------Qt中的字符串类
QString QString的一些基本用法 basic.cpp #include <QTextStream> int main(void) { QTextStream out(stdou ...
- js数组如何去掉逗号
技术水平比较差,有错误的地方或者大神们有好的方法在介绍下,可以指点出来我加以改正! 1.join去掉逗号',' var a = ['1', '2', '3', '4', '5']; var c = a ...
- basic mongodb
basic mongodb */--> pre { background-color: #2f4f4f;line-height: 1.6; FONT: 10.5pt Consola," ...
- What does wildcard address in InetSocketAddress mean?
In the docs for the constructor InetSocketAddress(int port) it says: Creates a socket address where ...
- LigerUi中的Grid中不分页显示(local)!
LigerUi中的Grid中不分页显示! grid为local usePager: true, //是否分页
- Mina学习之IoHandler
IoHandler处理事件在Filter Chain 之后进行.IoHandler包含处理以下几个事件的功能: 1. sessionCreated event: session创建事件,对于Tcp而言 ...
- 关于ABAP事件的一张图
事件: 这里有几组事件关键字 ,这些事件关键字在特定环境下控制ABAP/4 程序流. 逻辑数据库 是典型报表程序的外部流控制的中心点.如果将逻辑数据库链接到报表 程序,将导致显示选择 屏幕,并决定系统 ...
- C#基础知识—父类和子类的关系
基础知识一: using System; using System.Collections.Generic; using System.Linq; using System.Windows.Forms ...