Android NDK开发入门实例
写这个,目的就是记录一下我自己的NDK是怎么入门的。便于以后查看,而不会忘了又用搜索引擎一顿乱搜。然后希望能够帮助刚学的人入门。先转一段别人说的话:
“NDK全称:Native Development Kit。
1、NDK是一系列工具的集合。
* NDK提供了一系列的工具,帮助开发者快速开发C(或C++)的动态库,并能自动将so和java应用一起打包成apk。这些工具对开发者的帮助是巨大的。
* NDK集成了交叉编译器,并提供了相应的mk文件隔离CPU、平台、ABI等差异,开发人员只需要简单修改mk文件(指出“哪些文件需要编译”、“编译特性要求”等),就可以创建出so。
* NDK可以自动地将so和Java应用一起打包,极大地减轻了开发人员的打包工作。
2、NDK提供了一份稳定、功能有限的API头文件声明。
Google明确声明该API是稳定的,在后续所有版本中都稳定支持当前发布的API。从该版本的NDK中看出,这些API支持的功能非常有限,包含有:C标准库(libc)、标准数学库(libm)、压缩库(libz)、Log库(liblog)。”
在深入理解之前,暂且就把NDK当成是一种工具,这种工具使得JAVA能够使用C/C++编译出的so包。并将此包一起打入apk包中。
下面开始正式入门:
一、开发环境搭建(以Windows平台下为例,Linux平台下类似)
1. 下载NDK压缩包,google官网
2、NDK的安装
第一步:选择install form Internet
第二步:Root Directory,安装路径都知道吧
第三步:LocalPackage Directory,这是你下载下来的NDK的存储路径,不用管
第四步:选Direct Connection
第五步:Chose a site from this list,or add your own sites to the list,我自己添加一个http://cygwin.mirror.constant,com选择这个网址下载
第六步:Select Packages,选择安装包,直接选Devel,将其改成install就OK
NDK安装完毕。
3、配置NDK环境变量
在cygwin的安装目录,找到一个home\<你的用户名>\.bash_profile文件末尾添加:
NDK=/cygdrive/f/cygwin/home/android-ndk-r9d
export NDK
注意路径和你自己的路径对应
4、测试NDK环境
输入cd $NDK,进入
这样NDK就配置好了。
进入NDK的sample
编译成功。
在eclipse中集成c/c 开发环境
1、 装Eclipse的C/C 环境插件:CDT,这里选择在线安装Eclipse。找到对应你Eclipse版本的CDT插件的在线安装地址。
2、 然后点Help菜单,找到Install New Software菜单
3、 点击Add按钮,把取的地址填进去,出来插件列表后,选Select All,然后选择下一步即可完成安装
4、 安装完成后,在eclispe中右击新建一个项目,如果出现了c/c 项目,则表明你的CDT插件安装成功啦!
配置C/C 的编译器
1、 打开eclipse,导入ndk自带的hello-jni例子,右键单击项目名称,点击Properties,弹出配置界面,之后再点击Builders,弹出项目的编译工具列表,之后点击New,新添加一个编译器,点击后出现添加界面,选择Program,点 击OK.
2、出现了添加界面,首先给编译配置起个名字,如:C_Builder
设置Location为<你cygwin安装路径>binbash.exe程序,例如:E:cygwinbinbash.exe,设置Working Directory为<你cygwin安装路径>bin目录,例如:E:cygwinbin
设置Arguments为
--login -c "cd /cygdrive/I/JavaWorkSpace/Blog/NDK_02 && $NDK/ndk-build"
上面的配置中 /cygdrive/I/JavaWorkSpace/Blog/NDK_02是你当前要编译的程序的目录,$NDK是之前配置 的ndk的环境变量,这两个根据你具体的安装目录进行配置,其他的不用变,Arguments这串参数实际是 给bash.exe命令行程序传参数,进入要编译的程序目录,然后运行ndk-build编译程序
3、接着切换到Refresh选项卡,给Refresh resources upon completion打上钩
4、然后切换到Build Options选项卡,勾选上最后三项
5、之后点击Specify Resources按钮,选择资源目录,勾选你的项目目录即可
6、 最后点击Finish,点击OK一路把刚才的配置都保存下来,注意:如果你配置的编译器在其它编译器下边,记得一定要点Up按钮,把它排到第一位,否则C代码的编译晚于Java代码的编译,会造成你的C代码要编译两次才能看到最新的修改
配置完成后,我们需要验证我们这么长时间辛苦的配置了,我们只需要编写相应的C代码与java端代码去验证即可,若偷懒可之间使用sample中的即可。
导入NDK的sample如果可以运行就说明CDT安装OK了,修改一下c文件,重新运行,主要目的是看修改后的文件能不能进行编译。