本文主要是介绍一下android ndk环境搭建及基本编程思路。

本文测试环境为 Windows Xp3+Eclipse Indigo+jdk6.0+Android2.2+ADT1.6+android+ndk-r7b+Cygwin1.7
一、下载android ndk (以最新版本为准)
您可以下载android-ndk-r7b安装包,下载地址:
地址:http://developer.android.com/sdk/ndk/index.html
下载后解压缩到你的工作目录,例如:C:\Android\android-ndk-r7b,结果如下图:


Android ndk包含build、docs、samples、sources、GNUmakefile、ndk-build、ndk-gdb及readme等内容。
其中samples下面包含几个实例开发演示项目。

二、下载安装Cygwin
由于ndk开发大都涉及到C/C++在GCC环境下编译、运行,所以在Windows环境下,需要模拟Linux模拟编译环境,下载地址:
http://www.cygwin.com/
下载后是个setup.exe文件,使用过程如下:
第一步:运行setup程序,第一步图略,直接点击Next进入下一步。
第二步:选择安装方式,第一次可以采用Install from Internet在线下载安装,如有现成的离线包,可以选择离线安装(Install from Local Directory)

第三步:选择安装目录,比如C:\Android\cygwin,注意此目录是指Cygwin最终的安装目录,不是下载文件暂存目录。

第四步:设置本地包暂存路径
暂存目录默认是放到setup.exe的同级目录下,下载后名字类似ftp%3a%2f%2fcygwin.mirrors.pair.com%2f这样格式。

第五步:设置网络连接方式,默认即可。

第六步:选择下载站点地址
可以尝试几个看哪个速度快就用哪个地址(如果感觉不快就点取消,再次来过)。

第七步:等待加载安装项载入,选择安装项
编译ndk,在默认设置下,只需选择Devel(点击列表中Devel,将后面的Default改为Install,图中红色方框所示),其它均为默认状态。

第八步:等待下载并安装
下载完成后会自动安装到上文设置的安装目录。
第一次下载完成后,最好把下载的包目录做个备份,下次安装同样的环境可以直接使用离线安装方式(第二步中选择本地安装)。

三、验证Cygwin环境
安装完成后,先运行Cygwin一次(Cygwin.bat),以便创建一些用户环境文件,分别输入:
make -v 和gcc -v
如果安装成功,会有make和gcc相关版本信息打印出来,如下图。

四、配置ndk路径设置
可以在cygwin中通过vim修改,也可以在windows安装目录中修改 home\<你的用户名>\.bash_profile 文件中最后添加环境变量
ndk=/cygdrive/c/Android/android-ndk-r7b
export ndk
其中ndk=/cygdrive/<你的盘符>/<android ndk 目录> ,"ndk"这个名字随便起,以后经常用不要太长。

重启cygwin,输入:
cd $ndk
可进入ndk对应目录说明设置正常。

五、编译演示工程
现在就可以编译相关ndk工程了(一些用c/c++写的程序),编译方法如下:
1、在cygwin命令行下,进入android项目工作目录:
cd $ndk
2、依次进入samples\hello-jni目录,(完整路径示例: C:\Android\android-ndk-r7b\samples\hello-jni)
3、运行
$ndk/ndk-build
注意:该命令$ndk和/ndk-build是连接到一起的,中间没有空格,实际使用时是打入完整的$ndk/ndk-build,不要只打ndk-build。
4、正常编译完成后会在你的项目libs/armeabi目录下生成对应的 libhello-jni.so文件。

六、导入静态目标库到Android项目
编译完成后会得到*.so静态目标库后,就可以导入工程环境Eclipse Android项目中使用,本步骤演示属于ndk目标库+Andriod APK样式,
此外还有Android源码直接开发、直接编译方式。使用方法如下(示例):
1、在Eclipse中新建一个工程HelloJni,HelloJni.java中的代码可参考ndk对应samples下的演示代码调用方法。
或者直接将samples中的hello-jni导入到Eclipse中。
2、将ndk编译项目目录下的jni和libs文件夹拷贝到新建工程目录下,这两个文件夹要和工程中的src和res文件在同一目录下。
3、运行Eclipse项目,就可以在虚拟机上看到hello-jni.c函数中输出字符串。


更多相关文章

  1. 据说年薪30万的Android程序员必须知道事
  2. Qt for Android(安卓)使用 手记
  3. Android第三方开源FloatingActionButton(com.getbase.floatingact
  4. Android(安卓)-- NDK开发入门
  5. [Android]Ubuntu 10.10 HTC G11真机调试
  6. 在MAC OS下设置ANDROID_HOME
  7. Android(安卓)requires compiler compliance level 5.0 or 6.0.
  8. Cocos2d-x + Android(安卓)+ Eclipse + Windows 8
  9. Android(安卓)Studio创建项目Error:Server returned HTTP respon

随机推荐

  1. Android中的Toast详解
  2. listview中加入listbutton
  3. Android开发艺术探索-IPC机制
  4. android:excludeFromRecents 属性需要注
  5. Android(安卓)网络通信框架Volley简介(Go
  6. GitHub 优秀的 Android 开源项目和框架
  7. Android 中实现Activity的跳转
  8. Android中Handler的基本使用
  9. Java/Android 中使用Protocol Buffers传
  10. Eclipse xml formatter setting for andr