码迷,mamicode.com
首页 > 移动开发 > 详细

Android NDK 开发

时间:2014-05-07 21:47:45      阅读:613      评论:0      收藏:0      [点我收藏+]

标签:android   jni   linux   android ndk   交叉编译   

NDK全称:Native Development Kit。
1、NDK是一系列工具的集合。
* NDK提供了一系列的工具,帮助开发者快速开发C(或C++)的动态库,并能自动将so和java应用一起打包成apk。这些工具对开发者的帮助是巨大的。
* NDK集成了交叉编译器,并提供了相应的mk文件隔离平台、CPU、API等差异,开发人员只需要简单修改mk文件(指出“哪些文件需要编译”、“编译特性要求”等),就可以创建出so。
* NDK可以自动地将so和Java应用一起打包,极大地减轻了开发人员的打包工作。
2、NDK提供了一份稳定、功能有限的API头文件声明。
Google明确声明该API是稳定的,在后续所有版本中都稳定支持当前发布的API。从该版本的NDK中看出,这些API支持的功能非常有限,包含有:C标准库(libc)、标准数学库(libm)、压缩库(libz)、Log库(liblog)。

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)。

      在此之前,Android平台的第三方应用程序均是依靠基于Java的Dalvik特制虚拟机进行开发的。原生SDK的公布可以让开发者更加直接的接触Android系统资源,并使用传统的C或C++语言编写程序,并在程序封包文件(.apks)中直接嵌入原生库文件。

一、 工具准备


1.eclipse adt(这里不过多介绍)


2.NDK安装包(官网提供下载http://developer.android.com/tools/sdk/ndk/index.html但是解压之后的路径,强烈建议不能包含空格。比如:C:\Program Files\android-ndk-r9b\,这是不建议的。为什么不建议有空格?因为我们要在控制台执行命令。路径里面有空格,在控制台操作时一般都会有点问题。


3.cygwin(编译工具用于生成.so库)下载地址:http://www.cygwin.com/安装的时候大部分默认就可以

步骤:

3.1双击setup-x86-64.exe,选中Install from Internet。

3.2填写安装地址。和上面一样,红框部分的路径最好不要有空格。下一步。

3.3Local Package Directory,不需要修改,直接下一步。
     3.4就到了选择连接方式Select connection type。根据你的网络连接情况选择。一般是选择第一个Direct connection。然后下一步。
      3.5选择下载站点Select download site。你看着选,或者添加你自己的url。我是选择的mirrors.163.com。然后下一步。

     3.6下面就到了Select Package页面了。就是选择下载的包的页面。
      这里,我们只需要下载三个包就行了:make , gcc-core , gcc-g++。

这里有四个操作。
    ① 点击view按钮,将显示模式改为Full。
    ② 在Search中,输入我们需要下载的包的名字。
    ③ 找到对应的包,点击Skip一次,出现方块或者有叉方块。
    ④ 重复步骤②和③,直到选中所有我们需要的包。
    以上四步做完了,就下一步。

接下来是选择相关的包,打勾就行,下一步。然后就是下载所需的包。

然后就一直下一步就行了。

finish之后,点击桌面的快捷方式,打开命令行窗口。

    命令:
     make -v  和 gcc -v。如果出现一串信息,说明安装OK。

二.将NDK添加到Cygwin的build配置中

这一步很简单。进入到你的Cygwin安装目录中,进入home/[你的用户名]/目录下,里面有个.build_profile文件。

如果没有这个文件,那么: /cygwin安装目录/etc/skel里面找,里面有3个文件

.bash_profile, .bashrc 和 .inputrc。 这三个文件是cygwin提供给所有用户的,接下来把这三个文件统统复制到自己的“用户directory”下,即  /cygwin安装目录/home/ [你的用户名] 下 


用记事本打开。在文件的末尾,添加以下两行句子并保存:(注意是修改.bash_profile

NDK=f:/JNI/env/android-ndk-r9b 

      export NDK

这里解释一下:NDK=f:/JNI/env/android-ndk-r9b  这个就是你的NDK解压的目录(注意:这里的反斜杠是/,而不是\。linux下的反斜杠和windows下不同。我就是因为这个不对,搞了半天。。还有一点,=后面可不能加空格!)

      注意:添加完之后,如果你的Cygwin窗口是开着的,把它关掉重新打开。
      打开之后,验证是否配置成功。输入 
       cd $NDK
      如果进入你的ndk目录,那就说明OK了。这步骤只是为了快速进入目录进行编译!

到这里,NDK和Cygwin都安装OK了。下面打开Eclipse,安装CDT。

这一步主要是为了方便进入目录进行编译,不设也行。

三.安装CDT

CDT,是Eclipse的C/C++编辑插件。因为是JNI,会编写C/C++,装一下挺好的。如果你不想装,也是OK的,你可以记事本写,或者Visual Studio写。哪怕你用针刻出C的代码,只要能写对就行。

Eclipse安装插件的方法都一样,help->Install New Software。

下面是输入CDT下载地址:http://download.eclipse.org/tools/cdt/releases/kepler。勾选Main的,Optional的看自己的需要。

然后就一直下一步,什么同意协议啦,什么restart啦,都听他的。

restart之后,新建工程时,看看有没有C/C++ Project。如果有,说明安装OK。


参考:http://my.oschina.net/lifj/blog/176916

如有问题请留言,转载注明出处。


Android NDK 开发,布布扣,bubuko.com

Android NDK 开发

标签:android   jni   linux   android ndk   交叉编译   

原文地址:http://blog.csdn.net/rain_butterfly/article/details/25237813

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!