
1.4 搭建NDK开发环境
本节将详细介绍如何在Windows以及Linux系统中搭建Android NDK开发环境。
1.4.1 NDK开发环境与安装目录
Android NDK开发环境使用的软件如图1-55所示。

图1-55 Android NDK开发环境所使用的软件
本书中NDK开发环境中软件的安装目录如图1-56所示。

图1-56 Android NDK开发环境中软件的安装目录
1.4.2 系统和软件需求
首先了解所需要的系统及软件要求。Google公司官方推荐的系统及软件要求如下。
·SDK:要求Android SDK 1.5或1.5以上版本,本书使用2.1版本。
·NDK:要求NDK R3或R3以上版本,本书使用R6B版本。
NDK开发既支持Windows平台,也支持Linux平台,只需下载相应平台的开发软件即可。下面将具体介绍Windows和Linux平台下NDK环境的搭建过程。
NDK R6B版本的下载地址为http://developer.android.com/sdk/ndk/index.html,如图1-57所示。
·Windows平台下NDK文件名为android-ndk-r6b-windows.zip。
·Linux平台下NDK文件名为android-ndk-r6b-linux-x86.tar.bz2。

图1-57 NDK R6B版本列表
1.4.3 Windows平台NDK环境搭建
1.安装Cygwin
1)因为NDK编译需要用到Cygwin中的make和gcc,所以需要下载安装Cygwin软件。访问www.cygwin.com网站,如图1-58所示。

图1-58 访问Cygwin网站
点击setup.exe超链接,下载Cygwin。
2)下载完成后,双击下载的setup.exe安装程序,进入安装界面,如图1-59所示。
3)点击图1-59中的“下一步”按钮,进入图1-60所示界面。

图1-59 安装Cygwin

图1-60 选择安装方式
注意:图1-60中的三个选项分别代表三种安装方式,第一项“Install from Internet”是在没有本地安装程序包的情况下,通过网络在线安装,所以必须有网络的支持;第二项“Download Without Installing”是通过网络直接下载安装程序包,但是不进行安装过程,这项也需要网络的支持;第三项“Install from Local Directory”是直接通过本地安装程序包进行安装,所以在安装前先要通过第二项下载好安装程序包。
由于安装程序包比较大,安装过程较长,所以最好采用第二种和第三种结合的方式,先下载,后安装。本书中使用第三项,先下载好安装程序包,然后进行安装。
4)下载Cygwin的完整安装程序包,然后进行安装,点击图1-60中的“下一步”按钮,进入图1-61所示界面。

图1-61 选择安装目录
5)设置“Root Directory”为“C:\cygwin”,点击“下一步”按钮,进入图1-62所示界面。
注意:本书将下载的安装程序包放置在D:\Android_soft目录下,可以把安装程序包解压缩到任意目录下进行安装。
6)设置“Local Package Directory”后,点击“下一步”按钮,进入图1-63所示界面。

图1-62 选择安装程序包的解压目录

图1-63 选择安装程序包
7)根据需要设置后点击“下一步”按钮,开始下载安装过程,如图1-64所示。
8)下载完成后,点击“下一步”安装,进入图1-65所示界面。
注意:NDK需要的make和gcc在该节点下,点击箭头所指的循环箭头图示,将Default状态切换成Install状态。
9)点击“下一步”按钮进入安装状态,如图1-66和图1-67所示。

图1-64 下载安装过程

图1-65 将Default状态切换成Install状态

图1-66 解压安装包

图1-67 安装进程
10)安装成功后,运行Cygwin程序,如图1-68所示。
11)输入命令检查make和gcc是否安装成功,如图1-69所示。

图1-68 运行Cygwin

图1-69 检查安装是否成功
若出现图1-69所示信息,则说明安装成功。
2.环境参数的设置
1)将下载的NDK压缩包解压到工作目录,本书将Cygwin安装在C:\cygwin目录下,如图1-70所示;Android NDK解压后的工作路径为C:\cygwin\usr\local\android\android-ndk-r6b目录,如图1-71所示。

图1-70 Cygwin安装在C:\cygwin目录下

图1-71 将NDK压缩包解压到工作目录
2)为了修改环境变量,先执行安装好的Cygwin软件,点击桌面上的Cygwin图标进行文件复制,如图1-72所示,成功执行之后关闭窗口。
注意:这一步很重要,否则看不到下一步中的文件。
3)修改C:\cygwin\home\Administrator目录下的.bash_profile文件,添加以下内容,如图1-73所示。
PATH=/usr/local/android/android-ndk-r6b:$PATH NDK_ROOT=/usrl/local/android/android-ndk-r6b NDK_Sample=/cygdrive/c/apk_workspace

图1-72 文件复制

图1-73 修改.bash_profile文件
其中,NDK_Sample所指的目录是Eclipse的Workspace目录,如C:\apk_workspace,若在Cygwin终端里使用,则路径就表示为/cygdrive/c/apk_workspace。
注意:修改.bash_profile文件时请不要使用记事本处理,否则将会出现乱码。
4)点击Cygwin执行程序,并进入NDK程序包目录,如图1-74所示。

图1-74 进入NKD程序包目录
5)为了验证NDK开发环境是否搭建成功,可以对android-ndk-r6b\samples\目录下的hello-jni程序进行编译,查看是否可以得到SO文件,操作命令如图1-75所示。

图1-75 NDK的开发环境搭建成功
$cd samples/hello-jni $ndk-build
看到如图1-75所示编译结果,表示NDK的开发环境搭建成功。至此,在Windows平台下成功搭建了NDK的开发环境。
1.4.4 Linux平台NDK环境搭建
相比较Windows系统,Linux平台自身具有调试编译功能。在Linux系统终端下可直接搭建NDK的开发环境。具体步骤如下:
1)先检测一下Linux系统make和gcc工具的版本,打开Linux系统终端,依次执行命令:make–v,gcc–v,如图1-76所示。

图1-76 检测Linux系统中make和gcc工具的版本
2)把Linux下的NDK安装程序包复制到当前用户(本书使用的用户名为dmatek)的Android_soft目录下,如图1-77所示。
3)NDK在Linux下的安装路径为/usr/local/android,执行如下命令,把NDK包解压缩,如图1-78所示。
$cd/home/dmatek/Android_soft $tar –xvf android-ndk-r6b-linux-x86.tar.tar

图1-77 复制NDK安装程序包到当前用户目录

图1-78 把NDK包进行解压
4)执行如下命令,将android-ndk-r6b移动到/usr/local/android目录下,如图1-79所示。
$sudo mv android-ndk-r6b /usr/local/android/
5)执行如下命令解压缩,解压缩成功后得到NDK程序包,如图1-80所示。
$cd /usr/local/android $ls $cd android-ndk-r6b $ls

图1-79 移动到/usr/local/android目录下

图1-80 解压缩后得到NDK程序包
6)执行如下命令,添加NDK的环境变量到Linux系统中,如图1-81所示。
sudo vi/etc/profile

图1-81 添加NDK的环境变量到Linux系统中
7)在/etc/profile系统文件中添加如下程序代码,如图1-82所示。
export NDK=/usr/local/android/android-ndk-r6b export PATH=$PATH:$NDK
8)添加完成之后保存退出,并执行如下命令使设置的环境变量生效,如图1-83所示。

图1-82 在在/etc/profile系统文件中添加程序代码

图1-83 使设置的环境变量生效
source/etc/profile
9)安装完成后,编译NDK中自带的例子,执行如下命令检测NDK环境搭建是否成功,如图1-84所示。

图1-84 检测NDK环境搭建是否成功
$cd samples/hello-jni $ndk-build
看到如图1-84显示结果,表明NDK环境搭建成功。