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环境搭建成功。