在图像处理软件开发中,为了追求高效的图像处理速度,我们一般不使用JAVA直接对图像进行处理,而是使用C/C++开发图像处理接口,这样可以尽可能的提高处理速度。但是,在android中要调用C/C++静态库,如果使用的是WINDOWS平台,那么,就往往需要安装NDK,来构建Linux开发环境,对于NDK环境搭建,网上资料满天飞,但是真正全面地,确实太少,如果是自己一个人安装,往往出现各种问题,本人在这里针对这些问题进行个总结,其中部分知识来自网络转载。
一、下载android NDK
您可以下载NDK r4 for Windows或NDK r5 for Windows安装包,下载地址:
地址:http://developer.android.com/sdk/ndk/index.html
下载后解压缩到你的工作目录,例如:E:\Android\develop,结果如下图:
Android NDK包含build、docs、samples、sources、GNUmakefile、ndk-build、ndk-gdb及readme等内容。samples下面包含几个实例开发演示项目,第一次接触NDK开发,建议先从示例开始。下面先看一下编译环境配置。
二、下载Cygwin
由于NDK开发大都涉及到C/C++在GCC环境下编译、运行,所以在Windows环境下,需要模拟Linux模拟编译环境,下载地址:
下载后是个setup.exe文件,使用过程如下:
第一步:运行setup程序,第一步图略,直接点击Next进入下一步。
第二步:选择安装方式,第一次可以采用Direct Connection在线下载安装,如有现成的离线包,可以选择离线安装(Install from Local Directory)。
第三步:选择安装目录,比如C:\Cygwin,注意此目录是指Cygwin最终的安装目录,不是下载文件暂存目录。
第四步:设置本地包暂存路径
暂存目录默认是放到setup.exe的同级目录下,下载后名字类似ftp%3a%2f%2fcygwin.mirrors.pair.com%2f这样格式。
第五步:设置网络连接方式
第六步:选择下载站点地址
起初尝试几个看哪个速度快就用哪个地址(如果感觉不快就点取消,再次来过)。
第七步:等待加载安装项载入,选择安装项
我们编译NDK,在默认设置下,只需选择Devel(点击列表中Devel,将后面的Default改为Install,图中箭头所示),其它均为默认状态。
第八步:等待下载完成
下载完成时间决定于你选择的安装包数量及网络连接速度,比如按照本文默认的选择方式,可能需要4-5个小时,下载后压缩包约750M,下载完成后会自动安装到上文设置的安装目录。
提醒:第一次下载完成后,最好把下载的包目录做个备份,下次安装同样的环境可以直接使用离线安装方式(第二步中选择本地安装)。
三、验证Cygwin环境
安装完成后,先运行Cygwin一次(Cygwin.bat),以便创建一些用户环境文件,分别输入:
make -v
和,
gcc -v
如果检测成功,会有make和gcc相关版本信息打印出来,如下图。
四、配置NDK路径设置
可以在cygwin中通过vim修改,也可以在windows安装目录中修改 home\<你的用户名>\.bash_profile 文件中最后添加环境变量
NDK=/cygdrive/e/Andriod/develop/android-ndk-r4
export NDK
其中NDK=/cygdrive/<你的盘符>/<android ndk 目录> ,"NDK"这个名字随便起,以后经常用不要太长。
重启cygwin,输入:
cd $NDK
可进入ndk对应目录说明设置OK。
五、问题总结
# public domain worldwide. This software is distributed without any warranty.
# You should have received a copy of the CC0 Public Domain Dedication along
# with this software.
# If not, see <http://creativecommons.org/publicdomain/zero/1.0/>.
# base-files version 4.1-1
# ~/.bash_profile: executed by bash(1) for login shells.
# The latest version as installed by the Cygwin Setup program can
# always be found at /etc/defaults/etc/skel/.bash_profile
# Modifying /etc/skel/.bash_profile directly will prevent
# setup from updating it.
# The copy in your home directory (~/.bash_profile) is yours, please
# feel free to customise it to create a shell
# environment to your liking. If you feel a change
# would be benifitial to all, please feel free to send
# a patch to the cygwin mailing list.
# User dependent .bash_profile file
# source the users bashrc if it exists
if [ -f "${HOME}/.bashrc" ] ; then
source "${HOME}/.bashrc"
fi
# Set PATH so it includes user's private bin if it exists
# if [ -d "${HOME}/bin" ] ; then
# PATH="${HOME}/bin:${PATH}"
# fi
# Set MANPATH so it includes users' private man if it exists
# if [ -d "${HOME}/man" ]; then
# MANPATH="${HOME}/man:${MANPATH}"
# fi
# Set INFOPATH so it includes users' private info if it exists
# if [ -d "${HOME}/info" ]; then
# INFOPATH="${HOME}/info:${INFOPATH}"
# fi
NDKF=/cygdrive/E/Software/NDK/android-ndk-r9c-windows-x86_64/android-ndk-r9c
export NDKF
在cygwin中输入:dos2unix -n .bash_profile .bash_profile
关闭重新打开cygwin,再次尝试,应该就没问题了。
成功安装后如下(注意我使用的名称是NDKF):
这里提示一下:不要用window里的记事本或者写字本打开修改,因为在window下和linux中回车符是不相同的。
这样环境就安装完成了,剩下的就是编写测试程序了。