Android NDK环境搭建与配置说明

NDK概述

NDK全称:Native Development Kit

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

NDK带来什么

  1、NDK的发布,使“Java+C”的开发方式终于转正,成为官方支持的开发方式。

  使用NDK,我们可以将要求高性能的应用逻辑使用C开发,从而提高应用程序的执行效率。使用NDK,我们可以将需要保密的应用逻辑使用C开发。毕竟,Java包都是可以反编译的。NDK促使专业so组件商的出现。(乐观猜想,要视乎Android用户的数量)

  2、NDK将是Android平台支持C开发的开端。

  NDK提供了的开发工具集合,使开发人员可以便捷地开发、发布C组件。同时,Google承诺在NDK后续版本中提高“可调式”能力,即提供远程的gdb工具,使我们可以便捷地调试C源码。在支持Android平台C开发,我们能感觉到Google花费了很大精力,我们有理由憧憬“C组件支持”只是Google Android平台上C开发的开端。毕竟,C程序员仍然是码农阵营中的绝对主力,将这部分人排除在Android应用开发之外,显然是不利于Android平台繁荣昌盛的。

NDK环境搭建说明

以下操作基于:Windows7 + Android-ndk-r8b-windows + Cygwin DLL is 1.7.16-1

第一步:下载NDK安装包
下载地址:http://developer.android.com/tools/sdk/ndk/index.html

选择android-ndk-r8b-windows.zip下载

下载完后,打开压缩包并解压到指定目录,例如:D:\

第二步:下载并安装Cygwin

当前版本是:Cygwin 1.7.16,下载地址:http://www.cygwin.com/

下载在线安装程序setup.exe(688KB),下载后运行,界面如下:

图1:安装初始界面)

图2:选择安装的方式,默认用在线网络安装,也就是第一项;第二项是只下载不安装;第三项是从本地安装;)

图3:选择安装目录,以及可使用的用户群,安装目录此处选择D:\Cygwin)

图4-1:安装包存放路径,默认是C:\Windows\system32目录,此处改为D:\Cygwin\system32)

图4-2:安装包存放路径,此处改为D:\Cygwin\system32)

图5:网络连接方式)

图6:选择下载镜像站点)

图7:在下载时弹出一个提示,点“确定”即可)

图8-1:下载后会提示你选择需要安装的安装包)

图8-2:编译NDK,需选择Devel(点击列表中Devel,将后面的Default改为Install,图中箭头所示),其它均为默认状态。)

图9:等待下载安装)

图10:安装完成)

友情提醒:安装完成后,最好把下载的包目录做个备份,本文包存放路径是D:\Cygwin\system32,下次安装同样的环境可以直接使用离线安装方式(参考图2)。

第三步:验证Cygwin环境

安装完成后,运行一次Cygwin安装目录下的Cygwin.bat,

分别输入:

make -v

和,

gcc -v

如果检测成功,会有make和gcc相关版本信息打印出来,如下图。

第四步:配置NDK路径设置

可以在cygwin中通过vim修改,也可以在Cygwin安装目录中修改 home\<你的用户名>\.bash_profile 文件中最后添加环境变量

NDK=/cygdrive/d/android-ndk-r8b

export NDK

其中NDK=/cygdrive/<你的盘符>/<android ndk 目录> ,"NDK"这个名字随便起,以后经常用不要太长。

重启cygwin,输入:

cd $NDK

可进入ndk对应目录说明设置OK。

第五步:编译演示工程

现在就可以编译相关NDK工程了(一些用c/c++写的程序),编译方法如下:

1、在cygwin命令行下,进入android项目工作目录:

cd $NDK

2、依次进入samples\hello-jni目录,(完整路径示例: D:\android-ndk-r8b\samples\hello-jni)

3、运行

$NDK/ndk-build

注意:该命令$NDK和/ndk-build是连接到一起的,中间没有空格,实际使用时是打入完整的$NDK/ndk-build,不要只打ndk-build。

4、正常编译完成后会在你的项目libs/armeabi目录下生成对应的 .so文件。

第六步:导入静态目标库到Android项目

编译完成后会得到*.so静态目标库后,就可以导入工程环境Eclipse Android项目中使用,注意,NDK编程并非一定要把这个目标库导入Android项目使用,除了本步骤描述的使用方法之外,还有Android源码直接修改、编译,然后烧录到测试机的开发方式,那样可以实现应用程序默认安装、权限开机提升等等更“彻底”的功能。综合一下:

本步骤演示属于NDK目标库+Andriod APK样式,此外还有Android源码直接开发、直接编译方式(确切一点已经淡化Android所谓的工程概念了,当然源码开发目前似乎还无法直接在Windows下进行,好像必须使用Linux家族系统进行,天缘稍后文章会有所涉及)

使用方法如下(示例):

1、在Eclipse中新建一个工程HelloJni,HelloJni.java中的代码可参考NDK对应 sample下的演示代码(android-ndk-r8b\samples\hello-jni\tests\src\com\example \HelloJniTest)调用方法。

2、将NDK编译项目目录下的jni和libs文件夹拷贝到新建工程目录下

注意这两个文件夹要和工程中的src和res文件在同一目录下。然后进入Eclipse中刷新工程(会看到多出两个文件夹)。

3、运行Eclipse项目,就可以在虚拟机上看到hello-jni.c函数中输出字符串。

4、后续您可以试着修改库源程序或项目JAVA程序来熟悉NDK整个开发过程。

本文参考:http://www.eoeandroid.com/blog-546458-2185.html

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值