Android NDK 环境统一搭建

本文详细介绍了如何搭建 Android NDK 开发环境,包括 JDK、Eclipse、Android SDK 和 NDK 的安装配置过程,以及如何使用 Cygwin 进行 NDK 编译,并在 Eclipse 中集成 C/C++ 开发环境。


Android NDK 环境的搭建


本文的主要目的是对于低版本的一些NDK开发环境自我的总结!

采用adt_bundle_XXX 与 android-ndk-xxx-windows   等搭建环境不是本文档讨论的内容


本文主内容:

1、JDK的 安装

2、Eclipse 环境

3、Android SDK安装

4:ADT安装

5、Android NDK 安装

6、安装Cygwin与使用NDK编译

7、在Eclipse中集成C/C++开发环境CDT

8、NDK环境的配置与seguoyah

9、JNI编译环境配置


Android开发环境离线搭建(jdk-8u25+Eclipse-3.7.1(3.7.2)+Android-2.3.3+ADT-12.0.0)


1:jdk的安装

(1)下载

下载地址: 最好去orcal网站下载,jdk-7u51-windows-x64.exe,也可搜索jdk-7u51-windows-x64.exe

(2)安装:

双击后按照提示安装,默认安装在C

(3)环境变量配置:

右击我的电脑属性高级环境变量

新建JAVA_HOME

变量名:JAVA_HOME

变量值:C:\Program Files\Java\jdk1.8.0_25

同理: JAVA_HOME_A     C:\Program Files\Java\jre1.8.0_25

新建PATH

变量名:PATH

变量值:%JAVA_HOME%\bin;%JAVA_HOME_A%\bin



新建CLASSPATH

变量名:CLASSPATH

变量值:%JAVA_HOME%\lib;%JAVA_HOME%\lib\tools.jar




%JAVA_HOME%就是引用前面指定的JAVA_HOME


在命令窗口中输入javac,如下图表示配置成功。



2:ECLIPSE3.7.2的安装

建议大家去官网下载

或者下载地址:

http://mirror.bjtu.edu.cn/eclipse/eclipse/downloads/drops/ 中选择 eclipse-SDK-3.7.2-win32-x86_64.zip


下载后解压即可,双击eclipse.exe启动


3:安装android SDK

下载地址:

http://dl.google.com/android/android-sdk_r13-windows.zip    记得爬墙,要不搜索资源

在线安装:

解压android-sdk_r13-windows.zip后,双击SDK Manager.exe按照提示安装,本文档主要讲述离线安装,在线安装按照程序提示即可(因耗费时间太长,一般不采取在线安装)

检查AndroidSDK是否安装成功

双击 android-sdk_r13-windows目录下的SDKManager.exe,直接关掉提示窗口,点击Installedpackages,如下图所示,即SDK安装成功

如果需要可以下载add-one,platform,sample等里面添加你想要的版本,比如android-11,android-12等



4:安装ADT

下载地址:

http://dl.google.com/android/ADT-12.0.0.zip

安装:

启动eclipse,点击菜单栏【Help->Install New Software…】,点击【Add】安装ADT,按照如下设置添加ADT,一路【Next】后【Finish

NameADT

LocationADT-12.0.0.zip所在目录

重启Eclipse,然后设置SDK的路径:

选择【Window > Preferences...】,在打开的属性框,选择【Android】:

设置SDK Location】为SDK目录后点击【Apply-OK

 


设置AndroidSDK and AVD Manager

选择【Window >Android SDK and AVD Manager

按下图所示启动虚拟器:


android 环境搭建完成


下面开始NDK的搭建

 5:NDK的安装

下载Android NDK。下载地址:http://developer.android.com/tools/sdk/ndk/index.html  android-ndk-r6-windows.zip    android-ndk-r7-windows.zip    android-ndk-r8b-windows.zip 根据你的需求确定版本。

下载后解压缩到你的工作目录,例如:D:\Java\android-ndk-r7  D:\Java\android-ndk-r8   OK


6:安装cygwin 使用NDK

由于NDK开发大都涉及到C/C++在GCC环境下编译、运行,所以在Windows环境下,需要用Cygwin模拟Linux编译环境。

下载:

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

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

安装:

         第一步:运行setup.exe程序,直接点击Next进入下一步。

第二步:选择安装方式。第一次可以采用Direct Connection在线下载安装,如有现成的离线包,可以选择离线安装(Install from Local Directory)。

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

第四步:设置本地包暂存路径。暂存目录默认是放到setup.exe的同级目录下,建议放到指定的文件夹,如D:\Cygwin_install_file。安装完成后把这个文件夹打包备份,以后再配置时不用重新下载。

第五步:设置网络连接方式。这个目前河蟹没爬过来,选第一个即可。

第六步:选择下载站点地址。据说国内163站点的速度不错,我也是用的这个。

第七步:等待加载安装项载入,选择安装项。点击Devel-Default,使之变成Devel-Install,展开后可以看到其下的子项被选中,此界面其他设置都不用动。

第八步:等待下载完成。下载完成时间决定于你选择的安装包数量及网络连接速度,安装我安装的版本,约983M,下载完成后会自动安装到上文设置的安装目录,安装也要时间的,总时间较长,去吃个饭没啥问题。

提醒:第四步的备份建议,尽量去做。如果有备份,第二步中选择离线安装。

验证:

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

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

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

设置NDK路径:

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

 

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

 

使用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”工程目录。

 

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

关于下面的错误,在NDK-6和NDK-7中会出现

记录如下:

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

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

 

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

 

导入NDK的hello-jni示例到Eclipse中:

         第一步:在Eclipse中新建一个Android工程HelloJni。在Create Android Project时勾选“Create project from existing source”,Location中填“D:\Java\android-ndk-r8\samples\hello-jni” (注意:在选择API level时需要选择1.5或更高的版本)。

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

 

   7:eclipse中配置c/c++开发环境

CDT的安装可以使我们在一个工程中,同时开发基于C/C++的Native代码和基于Java语言的壳,之后的配置还可以使得一次编译两部分代码。

下载:

         下载地址:http://www.eclipse.org/cdt/downloads.php

cdt-master-8.0.2.zip:这个是CDT的离线安装包。(与你的eclipse相匹配)

离线安装:

         Eclipse -> Help -> Install New Software,点击add。Name:随意,建议使用好记的“CDT_版本”。Location:点击Archive,定位到下载的“cdt-master-8.0.2.zip”文件。

         别人遇到的错误:

如果Location的下面出现“Duplicate location”错误,请到Window -> preferences -> Install/Update -> Avaliable Software Site中找到该条,remove之。

验证:

         安装完成后,在Eclispe中新建一个项目,如果出现了C/C++项目,则表明CDT插件安装成功了。

 

8:NDK与sequoyah

Sequoyah插件用于设置Android工程对Native开发的支持。

官方网址:http://www.eclipse.org/sequoyah/downloads/

在线安装:

         官网提供了用于在线安装的Update Site地址以及安装包的下载地址。貌似安装包才1M多,在线安装也没被河蟹爬过,直接在线安装了。勾选全部列出的可安装项并完成安装。

Location:http://download.eclipse.org/sequoyah/updates/2.0/

 

注意:

在安装界面不要勾选“Group items by category”复选框,默认是勾选的,出现了列表为空(There are no categorized items)的情况。

 

配置:

         安装完Sequoyah插件后,为Android配置NDK路径。

         在“window –> preferences ->Android -> 本机开发”中添加NDK的路径。

 

验证:

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


9:jni 编译

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

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



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

 

         第三步:在“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”。


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

 

验证:

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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值