关闭

Android NDK开发之Hello-JNI!

3057人阅读 评论(0) 收藏 举报
分类:

Android NDK 是指Android Native Development Kit,也被Google称为“NDK”。Android程序运行在Dalvik虚拟机中, NDK允许用户使用类似C / C++之类的原生代码语言执行部分程序。包括了:

从C / C++生成原生代码库所需要的工具和build files。  

将一致的原生库嵌入可以在Android设备上部署的应用程序包文件(application packages files ,即.apk文件)中。 

支持所有未来Android平台的一系列原生系统头文件和库  

通常在什么情况下考虑使用NDK开发:  

1. 代码的保护,由于apk的java层代码很容易被反编译,而C/C++库反汇难度较大。  

2. 在NDK中调用第三方C/C++库,因为大部分的开源库都是用C/C++代码编写的。  

3. 便于移植,用C/C++写的库可以方便在其他的嵌入式平台上再次使用。  

学习NDK开发先从简单地开始,包括先从使用得相对比较熟练地Eclipse开发工具开始。  

第一步:下载NDK开发工具包。  

可以上Android开发者官网对应NDK开发下载网址:https://developer.android.com/ndk/downloads/index.html下载。!  

也可以通过Android开发工具下载网址:http://www.androiddevtools.cn/上下载NDK开发包。  

第二步:配置NDK开发环境(环境变量)。  

下载好NDK开发包,解压后(如我下载的是android-ndk-r10e版本),解压后放到本地:D:\android-ndk-r10e。


然后打开我的电脑-->鼠标右键选择属性-->高级系统设置-->环境变量--> 找到系统变量中的path变量进行编辑-->把NDK解压后文件目录主放到path最后面,记得加“;”。  

最后进行cmd命令窗口,执行ndk-build命令,如下图,则表示环境变量配置成功。  

第三步:对Eclipse进行NDK开发配置:  

1,如果没有安装ADT开发工具插件,则需要安装ADT,我用的是已经安装 好ADT的Eclipse。安装 ADT方法和安装其它开发插件方法一样。  

2,配置Eclipse中NDK路径(不进行配置也可以)  

 

第四步:配置Genymotion模拟器

如果开发中要把项目安装在Genymotion模拟器上,则开发NDK时要对Genymotion模拟器进行简单配置,需要下载

Genymotion-ARM-Translation工具包,启动模拟器后,把安装包拖动到模拟器中就会自动完成安装工作。 

第五步:开启Hello JNI之旅。

启动Eclipse,导入NDK开发包中示例代码中的hello-jni.


正常情况下,导入项目是不会报错的。但是运行项目会报错。导入项目结构如图


接下来在cmd窗口中,进行到项目所在目录,执行ndk-build命令:

执行成功会如上图一样提示文件生成信息。命令执行完成,刷新下HelloJni项目,如图:

结果可见,增加了libs及obj文件,文件下有对应平台的.so库等文件。现在运行项目,成功啦!项目展示结果如下:

在我们的HellJni项目中,有一个jni文件,打开文件中Application.mk文件,把APP_ABI := all这句代码注释后,再重新执行ndk-build命令,你会有新的发现哦。第一个NDK项目就到此,继续学习中。。。。

0
6
查看评论
发表评论
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场

NDK/JNI学习--导入hello-jni工程

上一篇文章,简单搭建了NDK开发的环境,此文通过导入C:\android-ndk-r9d\samples\hello-jni(NDK自带example)来疏通真个环境。 打开Eclipse IDE,指定NDK的位置       选择的NDK位置仅对当前的Eclipse ...
  • nxh_love
  • nxh_love
  • 2014-06-15 19:42
  • 5467

Android Studio 配置NDK,运行第一个hello-jni安卓程序详细步骤

0 前言    本文是我一边操作一边截图记录下来的。理论上来说,如果你环境没有大问题的话,是可以成功运行出结果的。 1 准备工作 已经安装好android studio,  我安装的版本是Android Studio 2.0 Preview已经下载并解压好andro...
  • zwl809621597
  • zwl809621597
  • 2016-04-01 21:51
  • 2042

Android NDK ,hello-jni 中间件初级 (调用 和 编译)

Linux 下安装NDK 方法() 详细文档可查看链接: 原文由设置 之前有设置 set NDK env 的语句,不要在设置了,否则开机时会出现下面的错误,我也是刚发现的。 ubuntu 开机提示 unsupported number of arguments http://...
  • ACanoe
  • ACanoe
  • 2013-02-26 16:12
  • 2109

Android NDK编程hello-jni代码

  • 2014-10-24 16:22
  • 1.62MB
  • 下载

ndk自带的最简单的jni例子hello-jni

  • 2015-08-26 17:10
  • 23KB
  • 下载

JNI初步 -- Hello JNI示例

由于要在android平台上做一个so动态链接库,所以今天抽空看了一下jni。以前只是听说过java通过jni和C/C++互调,但是由于项目中没有真正用到这项技术,所以也没有抽出时间专门学习。现在正好趁这个机会系统学习一下jni。今天参考某本书,做了一个小的demo(传说中的HelloWorld)。...
  • brave2211
  • brave2211
  • 2013-11-12 21:58
  • 9818

Android NDK混合使用java和C/C++代码--Hello JNI

简单记录下java调用C/C++函数其实很简单, 需要以下几个步骤: 1.在java代码中声明本地方法 2.实现Java本地接口(JNI)粘合层 3.创建Android Makefile文件 4.用C/C++实现本地方法 5.编译本地库 6.加载本地库 Step1:在java...
  • cicilover
  • cicilover
  • 2014-08-21 15:58
  • 938

Android 本机代码(Native Code)开发基础 -HelloJni代码详细解释

转载作者地址:http://blog.sina.com.cn/s/blog_5f053ef80101a0mo.html 无论是否有性能上的提升,本机代码起码在重用现在的C/C++代码的时是不二之选,我们并不总是那么关心Java的垃圾收集是多么的优秀,在可移植性的需求面前,C/C++往往比一...
  • u011563903
  • u011563903
  • 2015-01-05 10:41
  • 603

NDK环境搭建 + HelloJni

照着官方文档都搭不成功,后来集众家之长才把环境搭好,以下步骤是在你的Eclipse已经可以编译运行Android 应用程序的前提下进行的。如果你的Eclipse还不能运行Android程序,那先把这一步完成再看此篇。 1.到官网下载最新的NDK,目前的NDK都集成的cygwin,不用另外安...
  • qwe405782989
  • qwe405782989
  • 2016-09-08 11:24
  • 1224

Java中JNI的使用详解第一篇:HelloWorld

今天开始研究JNI技术,首先还是老套路,输出一个HelloWorld:具体流程如下:在Java中定义一个方法,在C++中实现这个方法,在方法内部输出“Hello World",然后再回到Java中进行调用。分为以下步骤: 第一步:在Eclipse中建立一个类:JNIDemo package...
  • jiangwei0910410003
  • jiangwei0910410003
  • 2013-12-21 13:33
  • 80380
    个人资料
    • 访问:855578次
    • 积分:11670
    • 等级:
    • 排名:第1509名
    • 原创:342篇
    • 转载:59篇
    • 译文:1篇
    • 评论:249条
    Github
    个人Github主页面:https://github.com/ldm520,请大家多指教!
    最新评论