一、 二、 三、 四、 五、
一、 JNI是什么,什么时候用JNI
JNI(Java Native Interface),就是java本地接口,是Android系统应用程序层(Java语言)与Android系统底层库(C/C++语言)沟通的桥梁。
Android Eclipse NDK JNI
JNI是什么,什么时候用JNI NDK是什么,什么时候用NDK NDK环境搭建 JNI开发流程 实例介绍
android分为四个层,从高层到低层分别是应用程序层、应用程序框架层、系统运行库层和linux核心层。
蓝色的代表java程序,黄色的代码为运行JAVA程序而实现的虚拟机,绿色部分为C/C++语言编写的程序库,红色的代码内核(linux内核+driver)。在Application Framework之下,由C/C++的程序库组成,通过JNI完成从JAVA到C的调用。
二、 NDK是什么,什么时候用NDK
众所周知,Android的SDK基于Java实现,这意味着基于Android SDK进行开发的第三方应用都必须使用Java语言。但这并不等同于“第三方应用只能使用Java”。NDK支持Android平台进行Java+ C/C++开发方式。
NDK是一系列工具的集合。它提供了一系列的工具,集成了交叉编译器,并提供了相应的mk文件隔离CPU、平台、ABI等差异,开发人员只需要简单修改mk文件(指出“哪些文件需要编译”、“编译特性要求”等),帮助开发者快速开发C/C++的动态库,并能自动地将so动态库和Java应用一起打包成apk,极大地减
轻了开发人员的打包工作。
三、 NDK环境搭建
谷歌改良了ndk的开发流程,对于Windows环境下NDK的开发,如果使用的NDK是r7之前的版本,必须要安装Cygwin才能使用NDK。而在NDKr7开始,Google的Windows版的NDK提供了一个ndk-build.cmd的脚本,这样,就可以直接利用这个脚本编译,而不需要使用Cygwin了。只需要为Eclipse Android工程添加一个Builders,而为Eclipse配置的builder,其实就是在执行Cygwin,然后传递ndk-build作为参数,这样就能让Eclipse自动编译NDK了。那么我们现在开始吧:
注意事项:目前已经出了NDK-r10b了,本人下载的是NDK-r8c,所以仍以NDK-r8c为例来讲解。从ndk-7后,谷歌已经改良了ndk的操作,不需用使用cygwin来交叉编译了,这大大的提高了我们的开发速度。 (1)下载安装NDK-r8c。
下载地址:http://pan.http://www.china-audit.com//s/1dDuAT5f
(2)打开Eclipse,新建一个Android工程(我的取名为TestNdk),在工程目录TestNdk下新建jni文件夹,该文件夹就用来保存NDK需要编译的文件代码等。 (3)开始新建并配置一个Builder
(a)Project->Properties->Builders->New,新建一个Builder。
(b)在弹出的【Choose configuration type】对话框,选择【Program】,点击【OK】: (c)在弹出的【Edit Configuration】对话框中,配置选项卡【Main】。 在“Name“中输入新builders的名称(这个名字可以任意取)。
在“Location”中输入nkd-build.cmd的路径(这个是下载完ndk8后解压后的路径,这个建议放在根目录下面,路径不能有空格和中文)。根据各自的ndk路径设置,也可以点击“Browser File System…”来选取这个路径。
在“Working Diretcoty”中输入TestNdk位置(也可以点击“Browse Workspace”来选取TestNdk目录)。如图1
图1
(d)继续在这个【Edit Configuration】对话框中,配置选项卡【Refresh】。如图2 勾选“Refresh resources upon completion”, 勾选“The entire workspace”,
勾选“Recuresively include sub-folders”。
图2
(e)继续在【Edit Configuration】对话框中,配置选项卡【Build options】。
勾选“After a “Clean””,(勾选这个操作后,如果你想编译ndk的时候,只需要clean一下项
目 就开始交叉编译)
勾选“During manual builds”, 勾选“During auto builds”,
勾选“Specify working set of relevant resources”。如图3
图3
点击“Specify Resources…”勾选TestNdk工程中新建的“jni“目录,点击”finish“。 点击“OK“,完成配置。 如图4
相关推荐: