Android NDK r8 开发环境搭建

需准备:

  1. android-ndk-r8d
  2. android sdk
  3. eclipse
  4. adtcdteclipes插件)

NDK下载与安装

android-ndk-r8d下载地址:

http://dl.google.com/android/ndk/android-ndk-r8d-windows.zip

下载后,解压到你的工作目录,如:d:\java\android-ndk-r8

注:直接解压后的目录可能是android-ndk-r8d,这里我们使用的是android-ndk-r8,末尾少个d

Cygwin下载与安装

Cygwin的下载地址:http://www.cygwin.com/

(转、改)Android <wbr>NDK <wbr>r8 <wbr>开发环境搭建

点击右上角的“setup.exe”即可下载。

验证:

运行安装目录下的“Cygwin.bat”,第一次运行时,它会自动创建用户信息,用户信息存放在“.\Cygwin\home”中。

在运行“Cygwin.bat”打开的命令行窗口输入:“cygcheck -c cygwin”命令,会打印出当前Cygwin的版本和运行状态,如果statusok的话,则cygwin运行正常。

分别输入:“make –v”和,“gcc –v”命令如果检测成功,会有makegcc相关版本信息打印出来。

 (转、改)Android <wbr>NDK <wbr>r8 <wbr>开发环境搭建

Cygwin中编译NDKhello-jni示例

设置NDK路径:

windows的系统环境变量中添加NDK的路径。使用“/cygdrive/d/Java/android-ndk-r8”这种Linux风格路径,如果使用Windows下的“D:\Java\android-ndk-r8”Cygwin在编译时会发出警告。

 (转、改)Android <wbr>NDK <wbr>r8 <wbr>开发环境搭建

运行Cygwin命令行,可以直接使用此环境变量,当然也可以手动的cd到该目录:

 (转、改)Android <wbr>NDK <wbr>r8 <wbr>开发环境搭建

使用NDK编译程序:

现在我们用安装好的NDK来编译一个NDK提供的sample程序hello-jni(我的目录位于:D:\Java\android-ndk-r8\samples\hello-jni)。

第一步:运行Cygwin,配置环境变量后可输入“cd $ndk/samples/hello-jni/”,未配置则输入命令“cd /cygdrive/d/java/android-ndk-r8/samples/hello-jni”,进入到“hello-jni”工程目录。

 (转、改)Android <wbr>NDK <wbr>r8 <wbr>开发环境搭建

第二步:编译。输入命令“$ndk/ndk-build”命令即可编译。ndk-build是调用ndk的编译程序。

关于下面的错误,我没遇到,但是前人有总结,记录如下:

错误:Android NDK: Host 'awk' tool is outdated

解决方法:打开目录“D:\Java\android-ndk-r8\prebuilt\windows\bin\”,删除awk.exe(为保险起见请先备份)。

 (转、改)Android <wbr>NDK <wbr>r8 <wbr>开发环境搭建

第三步:到”…/hello-jni/libs/armeabi“目录下看有没有生成的.so文件,如果有,你的ndk就运行正常啦!

 (转、改)Android <wbr>NDK <wbr>r8 <wbr>开发环境搭建

导入NDKhello-jni示例到Eclipse中:

第一步:在Eclipse中新建一个Android工程HelloJni

点击File - New – Project,弹出界面

 (转、改)Android <wbr>NDK <wbr>r8 <wbr>开发环境搭建

选择”Android Project from Existing Code”,点Next

 (转、改)Android <wbr>NDK <wbr>r8 <wbr>开发环境搭建

在Root Directory中填写:“D:\Java\android-ndk-r8\samples\hello-jni”。注意不要选择tests,我们只需要调试HelloJni

添加完HelloJni工程后,双击打开AndroidManifest.xml,弹出:

 (转、改)Android <wbr>NDK <wbr>r8 <wbr>开发环境搭建

选中Uses Sdk,修改Min SDK version等值,否则编译时可能出现:Field requires API level 5 (current min is 1)错误。

 

第二步:直接以Android Aplication运行。这里要注意,你之前在使用NDK编译程序时要把这个hello-jni编译过并产生了.so文件,此处才能运行起来。

 (转、改)Android <wbr>NDK <wbr>r8 <wbr>开发环境搭建

注:尽量不要使用模拟器运行,这东西太烂。用USB连上Android手机,并且打开手机上的“设定-开发-USB调试”,直接在真机上运行吧。

 

下载并安装Eclipse

我们需要在eclipse中安装adtcdt并配置android sdk,这很麻烦。因此下载一个集成包,是很好的选择,如adt-bundle-windows-x86

adt-bundle-windows-x86下载地址:

http://dl.google.com/android/adt/adt-bundle-windows-x86.zip

其中adt-bundle-windows-x86压缩包中包括了:

  1. Android SDK Manager
  2. android sdk
  3. eclipse

其中eclipse是集成了adtcdt的版本。

这个adt-bundle-windows-x86非常好用,可以省我们很多下载和安装的麻烦事。

下载后,同样把压缩包中的sdkeclipse,分别解压到你的工作目录,如:

D:\Java\android_sdk

D:\Java\eclipse

配置eclipse

打开eclipse,在“window –> preferences ->Android -> NDK”中添加NDK的路径。

 (转、改)Android <wbr>NDK <wbr>r8 <wbr>开发环境搭建

验证:

右键之前建立的“HelloJni”项目,在“Android Tools”选项中包含“Add Native Support…”选项即成功。

JNI编译环境配置

仍旧以之前建立的“HelloJni”为例,到目前为止,如果我们修改“/HelloJni/jni/hello-jni.c”文件,动态链接库libhello-jni.so文件却不会被重新编译生成。这是因为我们没有给JNI项目添加它需要的编译配置和依赖库。现在我们来配置它。

第一步:转换工程。点击文件 -> 新建 -> 其他(快捷键:Ctrl+N)。选择“C/C++”下的“Convert to a C/C++ ProjectAdds C/C++ Nature。进入下一步

 (转、改)Android <wbr>NDK <wbr>r8 <wbr>开发环境搭建

第二步:选中你刚才建的“HelloJni”工程,下面左边选“Makefile project”右边选“Cygwin GCC”。确定后提示的透视图不清楚是什么,点击即可。

 (转、改)Android <wbr>NDK <wbr>r8 <wbr>开发环境搭建

第三步:在“HelloJni”工程上右键,选择属性。配置“C/C++ Build”“C/C++ General -> Paths and Symbols”

C/C++ Build:点击“C/C++ Build”,在右边的“Builder Settings”中去掉默认勾选的“Use default build command”复选框。设置Build command“bash D:\Java\android-ndk-r8\ndk-build”

 (转、改)Android <wbr>NDK <wbr>r8 <wbr>开发环境搭建

C/C++ General -> Paths and Symbols:在Includesadd新的GNU C依赖路径。此“HelloJni”工程需要“D:\Java\android-ndk-r8\platforms\android-8\arch-arm\usr\include”即可,以后根据不同项目选择不同的依赖库。

 (转、改)Android <wbr>NDK <wbr>r8 <wbr>开发环境搭建

验证:

“/HelloJni/jni/hello-jni.c”中的字符串“Hello from JNI !”如改为“Hello JNI from Baron!”,运行后在模拟器上输出的字符串改变即说明配置成功。

 (转、改)Android <wbr>NDK <wbr>r8 <wbr>开发环境搭建

 

 

   
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值