安卓

Android NDK环境搭建与配置说明

2016-10-16  本文已影响963人  ideawork

https://blog.piasy.com/tags/#WebRTC

出现ndk-build:command not found可能的问题是

1.文件bash_profile设置不正确

2.编译时输入命令 “$NDK/ndk-build” 一定包括$直接引的目录

整理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/<你的盘符>/ ,"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整个开发过程。

设置系统的Path环境变量到G:\cygwin\bin

2、配置SDK

NDK得依赖SDK,所以必须得先配置SDK

1)将下载到的android-sdk_r10-windows.zip,解压到磁盘的跟目录下,比如:e:\android_sdk;

2)设置系统的Path环境变量到e:\android_sdk\platform-tools,如果不设置的话,运行ndk-build的时候会提示adb不在当前Path下。

3、配置NDK

1)将下载到的android-ndk-r5b-windows.zip文件解压到一个文件夹里,最好路径短点,我的放在E:\android\android-ndk-r5b下;

2)设置系统的Path环境变量到e:\android\android-ndk-r5b,输入命令行的时候简单一点。

三、测试配置环境

1)运行cmd

2)输入bash,如果提示“'bash' 不是内部或外部命令,也不是可运行的程序或批处理文件。”请检查cygwin的path路径是否设置正确,运行后控制台会变成下面的样子:

如上配置过程来自http://blog.csdn.net/aminfo/article/details/7814304

上一篇下一篇

猜你喜欢

热点阅读