感谢支持
我们一直在努力

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带来什么


  1、NDK的发布,使“Java+C”的开发方式终于转正,成为官方支持的开发方式。

  使用NDK,我们可以将要求高性能的应用逻辑使用C开发,从而提高应用程序的执行效率。使用NDK,我们可以将需要保密的应用逻辑使用C开发。毕竟,Java包都是可以反编译的。NDK促使专业so组件商的出现。(乐观猜想,要视乎Android用户的数量)

  2、NDK将是Android平台支持C开发的开端。

  NDK提供了的开发工具集合,使开发人员可以便捷地开发、发布C组件。同时,Google承诺在NDK后续版本中提高“可调式”能力,即提供远程的gdb工具,使我们可以便捷地调试C源码。在支持Android平台C开发,我们能感觉到Google花费了很大精力,我们有理由憧憬“C组件支持”只是Google Android平台上C开发的开端。毕竟,C程序员仍然是码农阵营中的绝对主力,将这部分人排除在Android应用开发之外,显然是不利于Android平台繁荣昌盛的。


 


NDK环境搭建说明


以下操作基于:Windows7 + Android-ndk-r8b-windows + Cygwin DLL is 1.7.16-1


第一步:下载NDK安装包
下载地址:http://developer.android.com/tools/sdk/ndk/index.html



选择android-ndk-r8b-windows.zip下载


下载完后,打开压缩包并解压到指定目录,例如:D:\


 


第二步:下载并安装Cygwin


当前版本是:Cygwin 1.7.16,下载地址:http://www.cygwin.com/


下载在线安装程序setup.exe(688KB),下载后运行,界面如下:



图1:安装初始界面)


 



图2:选择安装的方式,默认用在线网络安装,也就是第一项;第二项是只下载不安装;第三项是从本地安装;)


 



图3:选择安装目录,以及可使用的用户群,安装目录此处选择D:\Cygwin)


 



图4-1:安装包存放路径,默认是C:\Windows\system32目录,此处改为D:\Cygwin\system32)



图4-2:安装包存放路径,此处改为D:\Cygwin\system32)


 



图5:网络连接方式)


 



图6:选择下载镜像站点)


 



图7:在下载时弹出一个提示,点“确定”即可)


 



图8-1:下载后会提示你选择需要安装的安装包)



图8-2:编译NDK,需选择Devel(点击列表中Devel,将后面的Default改为Install,图中箭头所示),其它均为默认状态。)


 



图9:等待下载安装)


 



图10:安装完成)


友情提醒:安装完成后,最好把下载的包目录做个备份,本文包存放路径是D:\Cygwin\system32,下次安装同样的环境可以直接使用离线安装方式(参考图2)。


 


第三步:验证Cygwin环境


安装完成后,运行一次Cygwin安装目录下的Cygwin.bat,

分别输入:


make -v


和,


gcc -v


如果检测成功,会有make和gcc相关版本信息打印出来,如下图。

第四步:配置NDK路径设置


可以在cygwin中通过vim修改,也可以在Cygwin安装目录中修改 home\<你的用户名>\.bash_profile 文件中最后添加环境变量


NDK=/cygdrive/d/Android-ndk-r8b


export NDK


其中NDK=/cygdrive/<你的盘符>/<android ndk 目录> ,”NDK”这个名字随便起,以后经常用不要太长。


重启cygwin,输入:


cd $NDK


可进入ndk对应目录说明设置OK。


 


第五步:编译演示工程


现在就可以编译相关NDK工程了(一些用c/c++写的程序),编译方法如下:


1、在cygwin命令行下,进入android项目工作目录:


cd $NDK


2、依次进入samples\hello-jni目录,(完整路径示例: D:\android-ndk-r8b\samples\hello-jni)


3、运行


$NDK/ndk-build


注意:该命令$NDK和/ndk-build是连接到一起的,中间没有空格,实际使用时是打入完整的$NDK/ndk-build,不要只打ndk-build。


4、正常编译完成后会在你的项目libs/armeabi目录下生成对应的 .so文件。


 


第六步:导入静态目标库到Android项目


编译完成后会得到*.so静态目标库后,就可以导入工程环境Eclipse Android项目中使用,注意,NDK编程并非一定要把这个目标库导入Android项目使用,除了本步骤描述的使用方法之外,还有Android源码直接修改、编译,然后烧录到测试机的开发方式,那样可以实现应用程序默认安装、权限开机提升等等更“彻底”的功能。综合一下:


本步骤演示属于NDK目标库+Andriod APK样式,此外还有Android源码直接开发、直接编译方式(确切一点已经淡化Android所谓的工程概念了,当然源码开发目前似乎还无法直接在Windows下进行,好像必须使用Linux家族系统进行,天缘稍后文章会有所涉及)


使用方法如下(示例):


1、在Eclipse中新建一个工程HelloJni,HelloJni.java中的代码可参考NDK对应 sample下的演示代码(android-ndk-r8b\samples\hello-jni\tests\src\com\example \HelloJniTest)调用方法。


2、将NDK编译项目目录下的jni和libs文件夹拷贝到新建工程目录下


注意这两个文件夹要和工程中的src和res文件在同一目录下。然后进入Eclipse中刷新工程(会看到多出两个文件夹)。


3、运行Eclipse项目,就可以在虚拟机上看到hello-jni.c函数中输出字符串。


4、后续您可以试着修改库源程序或项目JAVA程序来熟悉NDK整个开发过程。

赞(0) 打赏
转载请注明出处:服务器评测 » Android NDK环境搭建与配置说明
分享到: 更多 (0)

听说打赏我的人,都进福布斯排行榜啦!

支付宝扫一扫打赏

微信扫一扫打赏