Android ndk r4b开发环境搭建

简介:

资源准备
说明:本文以Mac系统为例,所以准备的软件都需要是适合Mac版本的.
Android SDK:android-sdk-mac_86
Android NDK: android-ndk-r4b-darwin-x86
Eclipse
ADT
CDT
ANT
搭建Android SDK开发环境
Android SDK还发环境搭建步骤:
1:Jdk安装,要求1.5以上.一般的Mac OS中已经预装了jdk,我的是jdk 1.6.用"java -version"在terminal可以查看.
2:eclipse IDE安装. 需要去Eclipse官网下载,我下载的是eclipse 3.5.2.解压到合适的路径,不需要编译安装,直接运行目录下的eclipse.app文件就可以启动eclipse.
3:android sdk安装. 到Android.同eclipse一样,只需要解压到合适目录.同时需要将该目录下的tools路径加到PATH中.编辑~/.bash_profile, 添加:PATH=${PATH}:/{your-android-sdk}/tools.
4: 安装Android Developer Tools. 打开Eclipse,点击Help菜单,找到Install New Sofeware,在Add Site中添加一个location为:
http://dl-ssl.google.com/android/eclipse/,然后会出现Android DDMS,和Android Development Tools,选择并Install.重启之后可以选择”Eclipse->偏好设置”,然后选择Android项来指定Android SDK的安装目录.如下图所示.

5: 开启terminal,使用"android list targets"发现没有可以sdk target.需要在eclipse的window菜单里面打开 Android SDK And AVD Manager窗口,找到avilable packages,选中相关的packages.如下图所示.

6:等待下载.完成之后可以在Install packages中找到自己已经安装的包.如下图所示.

7:使用"android create avd --name sdk_2_2_version  --target 8",创建avd.创建之后即可在”Virtual Devices”中找到我们已经创建的AVD,如下图所示.

现在可以编写HelloWorld来测试环境了,这里笔者在搭建SDK开发环境时将Eclipse和android sdk都放置在了”/Developer/Android/”目录下,如下图所示.

搭建Android ndk开发环境
从上面的图片大家可以看到,我们实际上也将Android NDK安装到了同一个目录下,NDK的安装很简单,就是将下载的包进行解压到指定位置即可,解压之后我们一般需要配置环境变量,这里我们将环境变量的配置放在最后一起来配置.
设置环境变量
运行命令” pico .bash_profile”来打开或创建.bash_profile文件,然后输入如下图的代码.

安”control+x”退出,并输入”Y”表示确认保存,然后退出(必须退出重新打开才行),其中我们将sdk的tools目录和ndk的安装目录都加入了环境变量,方便我们使用,同时设置了ANDROID_NDK_ROOT和ANDROID_SDK_ROOT目录.
到这里我们就完成了NDK的环境搭建,android ndk r4开始我们并不需要使用” build/host-setup.sh”命令了,接下来我们将介绍如何使用ndk来编译.这里需要注意的是对于ndk提供的例子没有放置在apps目录下面了,而是放置在samples中,为了兼容,同时也支持将项目文件放置在apps目录下面.下面我们来看如何编译,运行和调式.
编译Hello-Jni工程
进入ndk下面的” samples/hello-jni/”目录,然后使用命令” ndk-build”即开始编译,出现如下图所示,则表示成功.如果不成功,可能是环境没有设置正确,请检查并重新设置.

运行Hello-Jni项目
下面我们首先生成apk文件,生成apk文件需要使用ant,由于Mac系统预装了ant所以我们少一步,没有安装的安装一下便可,注意安装之后还是要将ant目录下买了的bin目录加入环境变量才行.
现在使用” cd ../”命令返回hello-jni目录的上一个目录,然后使用” android update project --path hello-jni”命令来更新hello-jni工程,就是生成一个build.xml文件来编译生成apk文件.在更新了工程之后,需要进入工程的根目录,使用cd hello-jni命令即可,下面进入最关键的一步,编译apk文件,使用”ant debug”命令即可,如果出现如图所示,则表示编译成功.

现在你可以在” samples/hello-jni/bin”中找到一个生成的apk文件,现在可以链接手机或者模拟器来进行测试了.
调式Hello-jni工程
在android ndk r4开始我们可以使用gdb来对jni代码进行单步调试了,关于gdb调试我们就不多说了,网上去搜索吧,这里我们看一下如何来调试.
进入” samples/hello-jni/”目录,然后执行”ndk-gdb”命令,这时,你的手机或者模拟器的hello-jni工程是否已经启动了,这时终端也进入了gdb调试界面,如下图所示.,注意要在xml中设置debug为true才能进行调试哦.

在Eclipse中集成NDK开发
因为大多数人在些代码时可能使用的是记事本,,有好的IDE为什么不用呢?那这里我们就使用Eclipse来编写ndk程序,在开始之前我们需要进行一些必要的配置.
1:安装CDT,使得Eclipse具有编辑C++程序的功能.
2:我们推荐大家可以安装anyedit插件 
http://andrei.gmxhome.de/anyedit/下载并导入eclipse中.当然这不是必须的,只是方便我们在Eclipse中编辑各种类型的文件.
3:新建一个ndk的工程,这里我们就使用hello-jni为例来演示即可,就不在单独新建了,将hello-jni导入到Eclipse中.然后按照如下步骤操作:
右击项目,选择“properties”
在左边的列表中选择“Builders”
在右侧,点击“New…”按钮
在列表框,选择“Program”作为配置类型;点击“OK”按钮,进入下一个配置对话框。
命名name为“NDK Builder”
选择Location为“/bin/bash”,如果是windows使用cygwin则填写” c:\cygwin\bin\bash.exe”其中表明cygwin安装于c:\cygwin中,这个路径可以根据自己的情况更改.
 “Working Directory”为“/bin”,同样如果在windows上使用cygwin则填写” c:\cygwin\bin”.
“Arguments”为:
--login -c "cd $ANDROID_NDK_ROOT/samples/hello-jni && ndk-build"
确保在login前有两个连接号,-c后面的引号。 ANDROID_NDK_ROOT为NDK的安装路径….整个界面操作之后如下图所示.

接着打开“refresh”的tab面板:
选中“Refresh resources upon completion”
选择“Specific resources”
点击“Specify resources”按钮,选择你项目的lib目录
选中“Recursively include sub-folders”
操作完成之后如下图所示.

接着打开“Build Options”的tab面板:
选中“Allocate Console”
选中“Launch in background”
选中“Run the builder After a Clean”
选中“Run the builder During manual builds”
选中“Run the builder During auto builds”
选中“Specify working set of relevant resources”
点击“Specify Resources”按钮,选择你项目的JNI目录,并包含所有的文件。
完成之后如下图所示.

点击“OK”按钮。完成配置,这时当我们在Ecisplse中改动一下C++代码,Eclipse都回自动调用ndk来编译,并在控制台输出编译信息,如下图所示.然后自动更新生成的so文件.

这里处理都不是必须的,只是为了我们方便开发而做的.当然为了项目需求可能还会有更好的方法,随着项目的进度,我们会更新一些开发中遇到的问题.先写到这里,谢谢大家支持!
其实要是在ndk中开发opengl es程序也可以直接在windows中使用VC之类的工具先开发,完成之后再用ndk来编译,这样调试就方便多了。




本文转自 yarin 51CTO博客,原文链接:http://blog.51cto.com/yarin/382109,如需转载请自行联系原作者

相关实践学习
阿里云图数据库GDB入门与应用
图数据库(Graph Database,简称GDB)是一种支持Property Graph图模型、用于处理高度连接数据查询与存储的实时、可靠的在线数据库服务。它支持Apache TinkerPop Gremlin查询语言,可以帮您快速构建基于高度连接的数据集的应用程序。GDB非常适合社交网络、欺诈检测、推荐引擎、实时图谱、网络/IT运营这类高度互连数据集的场景。 GDB由阿里云自主研发,具备如下优势: 标准图查询语言:支持属性图,高度兼容Gremlin图查询语言。 高度优化的自研引擎:高度优化的自研图计算层和存储层,云盘多副本保障数据超高可靠,支持ACID事务。 服务高可用:支持高可用实例,节点故障迅速转移,保障业务连续性。 易运维:提供备份恢复、自动升级、监控告警、故障切换等丰富的运维功能,大幅降低运维成本。 产品主页:https://www.aliyun.com/product/gdb
相关文章
|
3月前
|
IDE Oracle Java
Android基础开发环境搭建
Android基础开发环境搭建
44 1
|
7月前
|
编解码 Ubuntu Java
Android学习framework及搭建环境
Android学习framework及搭建环境
97 0
|
1月前
|
网络协议 关系型数据库 MySQL
安卓手机termux上安装MariaDB数据库并实现公网环境下的远程连接
安卓手机termux上安装MariaDB数据库并实现公网环境下的远程连接
|
2月前
|
Java Android开发 C++
安卓SO层开发 -- 第一个NDK项目
安卓SO层开发 -- 第一个NDK项目
16 0
|
2月前
|
算法 Java Android开发
安卓逆向 -- NDK开发实现MD5算法
安卓逆向 -- NDK开发实现MD5算法
34 0
|
2月前
|
开发工具 Android开发
安卓系统7.1搭建Xposed环境
安卓系统7.1搭建Xposed环境
27 1
|
7月前
|
Web App开发 开发工具 Android开发
Android平台不需要单独部署流媒体服务如何实现内网环境下一对一音视频互动
我们在做内网环境的一对一音视频互动的时候,遇到这样的技术诉求:如智能硬件场景下(比如操控智能硬件),纯内网环境,如何不要单独部署RTMP或类似流媒体服务,实现一对一音视频互动。
|
3月前
|
网络安全 Android开发
2023安卓逆向 -- 抓包环境设置(Charles+Postern)
2023安卓逆向 -- 抓包环境设置(Charles+Postern)
30 0
|
4月前
|
Java 编译器 开发工具
Android StudioJNI开发之NDK环境的搭建以及添加JNI支持(图文解释 简单易懂)
Android StudioJNI开发之NDK环境的搭建以及添加JNI支持(图文解释 简单易懂)
30 0
|
4月前
|
监控 Java 开发工具
基于Eclipse+SDK+ADT+DDMS的安卓开发环境完整搭建过程
基于Eclipse+SDK+ADT+DDMS的安卓开发环境完整搭建过程
45 0
基于Eclipse+SDK+ADT+DDMS的安卓开发环境完整搭建过程