C++开发安卓、windows下搭建Android NDK开发环境

1. NDK(Native Development Kit)

1.1 NDK简介

Android NDK是一套允许开发人员使用本地代码(如C/C++)进行Android
APP功能开发的工具,通过这个工具,我们可以把用C/C++代码编译成可以直接运行在Android平台上的本地代码,这些本地代码以动态链接库( *.so
)的形式存在,也正因为这样,我们可以通过复用这些动态链接库从而复用本地代码。

那么,通过NDK这个开发工具包,那么我们是否可以将一个APK完全使用C/C++来编写呢?

答案是不可以的。众所周知,Android应用程序是运行在Dalvik虚拟机上的。而NDK只开发了部分接口,所以NDK只是允许开发人员通过C/C++实现Android
APP的部分功能。由于Android系统本身就是Linux核心,NDK只是负责把这些本地代码编写成可以运行在linux上的动态链接库,从而绕过了Dalvik虚拟机,直接运行在Android平台上了。

1.2 NDK下载

1.2.1 下载说明

下载地址:http://www.cr173.com/soft/66623.html
http://developer.android.com/tools/sdk/ndk/index.html#Downloads

截至2013-12-9为止,也就是我写这篇博客的时候,最新版本为:r9

在同一个平台中,下载包有两个,我们选择下载android-ndk-r9b-windows-x86

1.2.2 下载项区别

NDK支持三大平台(windows, Mac, Linux),下面我以windows作为例子进行讲解一下下载项中的Package的区别,如图:

从图中,我们可以看到,每个平台,都有两个相应的下载包,分别是android-ndk-r9b-windows-x86.zip和android-ndk-r9b-windows-x86-legacy-toolchains.zip,那么这两个包有什么区别呢?

官网的解释是这样子的:第一个下载包,也就是图中的android-ndk-r9b-windows-x86.zip,包含了所有平台默认的工具链,如果你不想使用当前默认推荐的工具链,那么可以下载第二个。可能直接这么说会有点空,下面一起看下下面这张图:

从图中我们知道了legacy包只有一个工具链包,而非legacy包中含有各种默认的已经制定好的工具,同时包含有例子,文档等等。

1.3 NDK安装说明

1) 直接把下载到的安装包解压到你想要放的路径;

2) 配置环境变量

I. 新建一个系统环境变量,变量名为ANDROID_NDK_ROOT,
变量值为你的NDK所在的路径,比如我的就是D:\DevTools\JAVA\adt-bundle-windows\android-ndk-r9b

II. 在系统变量 Path 的最前面添加%ANDROID_NDK_ROOT%\;

 

1.4 NDK 安装验证

完成上面的步骤之后,NDK的安装到此就完成了,下面我们来验证一下NDK安装成功与否.

1) 打开cmd.exe,在里面输入ndk-build -version,输出以下内容,表示安装成功。

1.5 NDK 的使用说明

根据官方文档的说明,从 r7 版本之后,NDK中就多出了一个
ndk-build.cmd,让我们可以直接在windows下运行啦,如果没有特别需求的话,我们再也不用花费一大堆时间去下载安装Cygwin啦……

下面我们以官方给的Project hello-jni 作为例子来讲解吧。

1) 进入到hello-jni目录下或者它的任意父目录,当前我就直接进入到 hello-jni 目录下吧;

2)
直接输入命令ndk-build进行本地代码编译,输出以下内容,表示成功编译成动态链接库,同时我们在hello-jni\obj\local\armeabi路径下可以看到编译好的libhello-jni.so;

 

编译成功后,我们来尝试一下,看看刚才编译成功的动态链接库是否能够使用。

1) 执行前面博文中我们讲解过的adb update
project命令升级该项目,为该项目添加上build.xml等文件,不懂的可以直接查看前面的博文《Android学习第二天-android常用命令》,下面我直接在机子上执行以下命令:

android update project -p . -t 1

输出以下结果表示Update成功。

2) 直接执行命令ant
debug进行编译打包成apk(这里需要预先搭建好ANT的环境,如果没有搭建的话可以参考博文:http://my.oschina.net/xiahuawuyu/blog/71296)

3) 开启模拟器

4) 直接执行命令安装bin目录下的APK到模拟器中adb install HelloJni-debug.apk以下是执行结果:

 

2. Eclipse中使用NDK

2.1 Eclipse CDT (C/C++ Development Tooling)

2.1.1 CDT介绍

CDT是C/C++在Eclipse平台下的开发工具.它提供的功能包括:C/C++编辑器(一些基本的功能:语法高亮显示,代码编辑等),C/C++调试器,C/C++
Launcher,剖析器,内容提示,Makefile生成器等。

2.1.2 CDT 下载与安装

2.1.2.1 CDT 安装前说明

如果大家下载的是谷歌提供的ADT 绑定版,那么它已经默认安装好了相应的CDT了,可以忽略该章不阅读,具体我们还可以通过 Help-> About
ADT 进行查看相关信息,如图:

2.1.2.2 CDT 下载

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

该地址上下载的是离线安装包,由于安装包比较大,所以也建议采取这种方式。

注意:不同eclipse版本要下载对应的包,否则安装不了

那么我们应该怎么知道我们的eclipse版本呢?

同样通过Help -> About Eclipse 打开相关信息,如图:

从图中,我们可以知道自己的Eclipse版本,比如我的是Indigo,然后就到下载地址上根据版本下载相应的即可,比如我下载的是就是
cdt-master-8.0.2.zip

2.1.2.3 CDT 安装

1) 通过 Help -> Install New Software打开一个对话框,点击按钮 add。

2) 在弹出来的对话框中,建议给Name的值为:CDT_版本号;然后点击Archive按钮,定位到我们下载到的CDT离线安装包

3) 等待安装完成后,重启eclipse后生效

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

2.1.2.4 CDT 安装问题解决

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

2) 如果出现缺少eclipse包说明你下载的版本和eclipse版本不匹配,重新下载匹配的重新安装就可以了。

2.2 Sequoyah

2.2.1 Sequpyah 简介

Sequoyah插件用于设置Android工程对Native开发的支持,如果安装的是ADT 绑定版的同学,可以直接阅读 章节2.2.4
NDK的配置

2.2.2 Sequoyah 下载

下载地址:http://www.eclipse.org/sequoyah/downloads/index.php#latest

我们可以从上面的地址中下载离线安装包,具体的安装方法跟上文中的CDT离线安装方法相同,再次不做重复说明。

2.2.3 Sequoyah 在线安装

由于Sequoyah本身并不是太大,在线安装速度也比较快,所以建议在线安装,下面我们来说明一下在线安装的方法

1) 通过 Help -> Install New Software打开一个对话框,点击按钮
add,具体不截图啦,跟CDT中安装的第一步一样。

2) 在弹出的窗口中,Name
输入Sequoyah,Location直接输入http://download.eclipse.org/sequoyah/updates/2.0/
,如图:

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

2.2.4 NDK的配置

我们以NDK中给出的例子hello-gl2为例子进行讲解:

1) 通过Preference -> Android -> NDK ,点击Browser按钮,定位到我们NDK安装的根目录,如图:

2.3 Eclipse中NDK使用说明

1) 首先我们应该导入项目,右键,选择Import

2) 由于例子不是一个Eclipse项目,所以我们必须如图中那般选择 ,让Eclipse根据已有的安卓代码进行项目构建, 点击Next

3) 定位到我们要导入的项目,并且勾上复制到工作空间中,让例子中搞定代码保持原来的样子作为备份,而我们操作的是复 制到工作区间中的代码。

4) 对我们引入的项目右键,选择Android Tools -> Add Native Support

5) 因为demo中已经为我们写好了cpp文件,所以直接跟他一样名字,点击确定。

6) 如图,点击右上角的按钮进入Perspective C/C++

如果找不到改按钮,我们还可以通过Windows -> Open Perspective -> Other... ,选择C/C++
即可打开

7) 点击工具栏中的锤子按钮进行编译

8) 等待控制台输出以下内容,说明动态链接库已经编译完成了,同时我们还能够在obj\local\armeabi看到编译好了的动态链接库。

9)
注意:改项目想要直接运行的话会出错,具体解决方法可以参考:http://hi.baidu.com/huareal/item/f00ad3cf8d35ebd7ee183b83,根据该文章修改后,我们发现就可以正常运行了,这也说明了我们在Eclipse中的NDK相关设置配置成功了

C++开发安卓、windows下搭建Android NDK开发环境,布布扣,bubuko.com

时间: 2024-10-12 23:28:55

C++开发安卓、windows下搭建Android NDK开发环境的相关文章

OSX系统下搭建Android NDK开发环境

闲话不多说,直接入正题: 我的环境: 操作系统:osx 10.10 IDE:eclipse luna SDK: 19 默认你已经搭建好了SDK开发环境 第一步,下载OSX平台下的ndk工具包: 在我的网盘中比较新的r10版本可下载:http://pan.baidu.com/s/1eQhn9aq 第二步,配置环境变量 在你的用户目录下创建.bash_profile文件加入: export PATH=${PATH}:/Users/devnn/Documents/android_ndk/android

Windows下搭建android+phonegap环境

随着2014年公司桐庐之旅开始,在一片欢声笑语中回到了★★★★★宾馆.等待的是晚上的酒场,先写个开头语.晚上酒足饭饱后进入正文. 不好意思兄弟们,来迟了.本次主要是windows下搭建android+phonegap的环境搭建. 下面首先进行android环境的搭建: 1.JDK的安装: a.先下载jdk b. 安装JDK的步骤只要下一步就可以. c.配置环境变量 我的电脑->属性->高级->环境变量->系统变量中添加以下环境变量: JAVA_HOME值为: C:\Program

Cocos2d-x 3.1.1 在Windows下搭建Android开发环境

Cocos2d-x 3.1.1 在Windows下搭建Android开发环境 本篇博客来给大家介绍如何在Windows下搭建Cocos2d-x Android开发环境,笔者前面写了几篇博客都是针对如何对Android项目进行交叉编译的,对应了Cocos2d-x 2.2.3版本和Cocos2d-x 3.0版本,其实3.0版本跟3.1.1是一样的,只是笔者介绍如何不适用命令行对Cocos2d-x Android项目进行交叉编译,而直接在Eclipse进行交叉编译. 前面几篇博客,如果有需要比较差别的

Windows下搭建objective C开发环境

最近打算针对iPhone.iPod touch和iPad开发一些应用,所以,需要开始学习Objective C(苹果推出的类似C语言的开发语言).由于苹果的自我封闭的产业链发展模式(从芯片.机器.开发语言.终端产品.服务)的限制,要想开发针对苹果 iPhone等产品的应用程序,就需要用Mac机器,在Xcode的IDE上使用Objective C语言开发.Mac机器就不用说了,那比PC机器要贵不少(当然性价比还是很高的),所以,要想廉价方式学习Objective C就必须要在Windows上能搭建

Windows下搭建go语言开发环境 以及 开发IDE (附下载链接)

1.下载 并且 安装 Go安装包 =========================================================== 在CSDN上传了我的版本,供大家下载: =========================================================== go1.2.windows-386.msi : http://download.csdn.net/detail/shuideyidi/7718563 go1.2.1.windows-am

windows下搭建和配置java环境

基于很多原因,还是得说说java环境的搭建和配置. 1.下载JDK: jdk和jre的区别:jre表示运行环境,jdk除了运行环境,还带有调试开发环境. 地址:http://www.oracle.com/technetwork/java/javase/downloads/jdk7-downloads-1880260.html 这边主要讲解jdk7的安装. 此外http://www.oracle.com/technetwork/java/javase/downloads/index.html  这

Windows XP环境下 搭建Android NDK环境

搭建Android NDK环境 Windows XP环境下 1 一些下载 ① NDK r7:http://developer.android.com/sdk/ndk/index.html ② cygwin:http://www.cygwin.com/  (1.7.11-1)③ notepad++:http://notepad-plus-plus.org/download/v5.9.8.html 2 cygwin安装 ① 执行下载的setup.exe.点Next② 选择安装方式.选择在线安装.假设

WINDOWS 下搭建 OC 集成开发环境

Objective-C是苹果软件的编程语言,想要上机学习.调试,有一个集成开发环境(IDE)方便很多.有三类方法搭建Objective-C的集成开发环境: 1)   使用苹果的平台,集成开发环境使用Xcode.但如果没有苹果平台,想在Windows环境下学习Objective-C,可以采用以下两种方法: 2)   在Windows环境下设置一个苹果虚拟机,但这对个人电脑的性能要求较高,不是所有个人电脑都可以,而且虚拟机的运行速度也较慢: 3)   采用Codeblocks IDE开发环境,对其进

windows下搭建Apache+PHP+Mysql环境

php开发环境的搭建是困扰新手们学习php 的第一道难题,很多童鞋为了省事经常直接安装wamp集成软件,这样虽然方便了新手童鞋,但是,个人觉得,这样对于学习PHP及后期理解PHP原理会造成相当的困扰,很多童鞋甚至编码过程中出了错也不会解决,因为不知道是环境出错了还是编码出错了. Apache环境 Apache官网:http://httpd.apache.org/ 官网只提供源代码下载,并不提供Windows下二进制文件,因此需要在第三方下载编译好的二进制文件,官方推荐apachehaus. 步骤