Android NDK作用与搭建

NDK (Native Development Kit)是什么?

NDK是一系列工具的集合,帮助开发者快速开发C(或C++)的动态库,并能自动将so和java应用一起打包成apk。这些工具对开发者的帮助是巨大的。NDK集成了交叉编译器,并提供了相应的mk文件隔离CPU、平台、ABI等差异,开发人员只需要简单修改mk文件(指出“哪些文件需要编译”、“编译特性要求”等),就可以创建出so。NDK可以自动地将so和Java应用一起打包,极大地减轻了开发人员的打包工作

 

Android NDK的作用?

我们知道在Android上层APP应用都是通过java写出来的.但是当我们设计游戏或视频,音频程序时,肯定需要完成一些复杂的数学运算,这些复杂的操作基本都是放在底层的库中运行的,而且不是通过java语言写出来的,因为java是基于虚拟机的,比C直接面向CPU的执行效率要低很多。所以在Android架构中,底层代码是以C语言,库的形式来完成,例如下图中第3层的各种库。

还有跨平台程序的移植,也是需要用到NDK的技术。如果一款游戏曾经在PC上运行成功,现在要移植到Android等操作系统上,如果用Java代码全部重写一遍,代价是相当大的,并且后期维护的工作量也非常大,有多少平台就要维护多少个版本,可想而知这是效率非常低的。如果我们把该游戏核心的部分,如游戏引擎,视频,音频,图像处理等统一用C语言来编码完成,然后只用Java语言来写一个上层的调用界面,那么工作量和后期可维护性要简单很多。

当然如果编写一个比较简单的应用,只通过Applications,Application Framework 2层就可以完成的程序,那么并不需要使用NDK。

 

Android NDK优缺点有哪些?

优点:

1.运行效率高

2.利于充分发挥软硬件优势

3.利于代码复用

4.降低版本控制成本

5.降低开发成本

 

缺点:

1.开发难度较高

2.调试难度较高(以库的形式存在)

3.增加开发团队规模

 

安装Android NDK的条件:

1.已安装eclipse和Android SDK

2.下载Android NDK包

3.配置环境变量(PATH)

对于以前看过一些相关资料的朋友,可能会觉得安装NDK很复杂,配置过程需要搭建linux环境,输入很多命令,改很多东西。这是NDK老版本会这样,其实NDK老版本有非常多的局限性.后来Google推出了更新的版本,做了大量集成性的工作。下面我们就来实践下操作步骤

第一步:已安装eclipse和Android SDK(不多介绍)

 

第二步:在谷歌官网下载Android NDK包

我这里已经提前下好了windows平台的android-ndk-r9d-windows-x86_64.zip包,解压之后是android-ndk-r9d文件夹

第三步:配置环境变量(PATH),如下图所示则配置OK

环境变量的作用:当我们输入一个命令时,如果此命令在缺省目录找不到,那么就会打开PATH环境变量,根据分号分开的目录逐个去找我们输入的命令有没有对应的执行程序,如果找到就执行,如果找不到就报错

 

下面我们进入控制台看看是否NDK安装成功

输入ndk-build回车,看到如下图一些提示信息

这样就表示NDK的配置已经完成了,很简单吧

 

下面简单说下NDK目录结构中几个文件,有个初步的认识

我们在控制台中输入的ndk-build就是来自于目录中的ndk-build.cmd脚本文件 ,这也是以后做NDK开发要频繁使用的。

接着这个samples目录中,都是NDK为我们提供的一些例子代码,如果这些例子代码都能看懂的话,就已经可以写出很优秀的NDK程序了

还有toolchains目录,是交叉编译工具,我们可以在PC上编译出手机上运行的程序,所用的编译器就是来自于toolchains目录中的某种编译器。随意点开一个编译器的E:\android-ndk-r9d\toolchains\arm-linux-androideabi-4.6\prebuilt\windows-x86_64\bin目录

可以看到里面很多执行程序,其中包含了编译器,调试器,链接器等等工具。当我们写好一个C/C++程序后,就是由这个目录中的程序进行处理的,当然现在新版本的NDK已经不需要手动去调用这些程序了。

 

对NDK的作用和搭建就先介绍到这里,以后的实际开发中再近一步的了解相关的知识。

 

 

发布了21 篇原创文章 · 获赞 8 · 访问量 5万+

猜你喜欢

转载自blog.csdn.net/zhangxuebing2/article/details/21520995