首先来看一下什么是NDK
NDK 提供了一系列的工具,帮助开发者快速开发C(或C++)的动态库,并能自动将so 和java 应用一起打包成apk。这些工具对开发者的帮助是巨大的。
为什么要用NDK
我们都知道,java是半解释型语言,很容易被反汇编后拿到源代码文件,在开发一些重要协议时,我们为了安全起见,使用C语言来编写这些重要的部分,来增大系统的安全性。还有,在一些接近硬件环境下,相信大家都清楚C与java的优劣。顺带提一下:NDK并不能显著提升应用效率(值得探讨)。我们都觉得C语言比起java来说效率要高出很多,一方面,随着jdk的不断更新,java的效率也随之提高;另一方面,即便使用C语言编码提高了应用效率,但是在java与C相互调用时平白又增大了开销。
还有一个重要的一条,很多library或者框架都是用C/C++完成的,如果要重新改成JAVA去写工程量巨大而且没有必要,这时候我们就可以使用JDK技术在android环境下调用这些C/C++的库,极大的方便开发。
NDK环境搭建
首先,去 http://developer.android.com/tools/sdk/ndk/index.html 下载你对应平台的开发工具。如果上不去,可以去百度上搜索国内的下载点下载,楼主下载的是android-ndk32-r10b-windows-x86.zip包,下载后解压到E:\android-ndk32-r10b-windows-x86。
然后,为了更好的使用NDK,将NDK路径配置到环境变量中。打开windows系统的环境变量配置,新建一个NDK_ROOT变量: