基于 Android NDK 的学习之旅-----环境搭建

工欲善其事 必先利其器 , 以下介绍下 Eclipse SDK NDK Cygwin CDT 集成开发环境的搭建。

1、Android 开发环境搭建

Android开发环境搭建不是重点,相信看此文章的非常多人都已经搭建成功,这里随便概述性的说说。

1)      下载 JDK

2)      下载 Eclipse

3)      下载 Android SDK

4)      启动Eclipse , 安装 ADT

2、下载安装Android NDK

NDK下载戳这里: https://dl.google.com/android/ndk/android-ndk-r9d-windows-x86.zip

3、下载安装cygwin

因为NDK编译代码时必需要用到make和gcc,所以你必须先搭建一个linux环境。 cygwin是一个在windows平台上执行的unix模拟环境,它对于学习unix/linux操作环境,或者从unix到windows的应用程序移植,很实用。

通过它,你就能够在不安装linux的情况下使用NDK来编译C、C++代码了。以下我们一步一步的安装cygwin吧。

(安装的时候忘记截图了)

首先。你得先跑到http://www.cygwin.com下载setup.exe

1、 然后双击执行吧,执行后你将看到安装向导界面:

2、  点击下一步

此时让你选择安装方式:

1)Install from Internet:直接从Internet上下载并马上安装(安装完毕后,下载好的安装文件并不会被                   删除。而是仍然被保留。以便下次再安装)。

2)Download Without Installing:仅仅是将安装文件下载到本地。但临时不安装。

3)Install from Local Directory:不下载安装文件,直接从本地某个含有安装文件的文件夹进行安装。

3、选择第一项,然后点击下一步:

4、选择要安装的文件夹,注意,最好不要放到有中文和空格的文件夹里,似乎会造成安装出问题,其他选项不用变。                  之后点下一步:

5、上一步是选择安装cygwin的文件夹,这个是选择你下载的安装包所在的文件夹,默认是你执行setup.exe的目                      录。直接点下一步就能够:

6、此时你共同拥有三种连接方式选择:

1) Direct Connection:直接连接。

2) Use IE5 Settings:使用IE的连接參数设置进行连接。

3) Use HTTP/FTP Proxy:使用HTTP或FTP代理server进行连接(须要输入server地址、port号)。

用户可依据自己的网络连接的实情情况进行选择,一般正常情况下,均选择第一种,也就是直接连接方式。然后               再点击“下一步”,

7、 这是选择要下载的网站,我用的是http://mirrors.kernel.org,速度感觉还挺快。选择后点下一步

8、 此时会下载载入安装包列表

9、Search是可以输入你要下载的包的名称。可以高速筛选出你要下载的包。

那四个单选button是选择下边树的样式,默认即可,不用动。View默认是Category,建议改成full显示所有包再查,省的一些包被隐藏掉。左下角那个复选框是是否隐藏过期包。默认打钩。不用管它即可。下边開始下载我们要安装的包吧。为了避免所有下载,这里列出了后面开发NDK用得着的包:autoconf2.1、automake1.10、binutils、gcc-core、gcc- g++、gcc4-core、gcc4-g++、gdb、pcre、pcre-devel、gawk、make共12个包

10、  然后開始选择安装这些包吧。点skip。把它变成数字版本号格式,要确保Bin项变成叉号,而Src项是源代码,这个就不是必需选了。

11、  以下測试一下cygwin是不是已经安装好了。

执行cygwin,在弹出的命令行窗体输入:cygcheck -c cygwin命令,会打印出当前cygwin的版本号和执行状       态,假设status是ok的话。则cygwin执行正常。

然后依次输入gcc –version,g++ --version,make –version,gdb –version进行測试(或,输入make -v 和 gcc -v ),假设都打印出版本号信息和一些描写叙述信息,很高兴的告诉你,你的cygwin安装完毕了!

4、配置NDK环境变量

1、  首先找到cygwin的安装目录,找到一个home\<你的username>\.bash_profile文件,我的是:E:\cygwin\home\Administrator\.bash_profile,(注意:我安装的时候我的home目录以下神马都没有。解决的办法:首先打开环境变量。把里面的用户变量中的HOME变量删掉,在E:\cygwin\home目录下建立名为Administrator的目录(是username),然后把E:\cygwin\etc\skel\.bash_profile复制到该目录下)。

2、  打开bash_profile文件。加入NDK=/cygdrive/<你的盘符>/<android ndk 文件夹> 比如:NDK=/cygdrive/e/android-ndk-r5

export NDK

NDK这个名字是随便取的,为了方面以后使用方便。选个简短的名字,然后保存

3、打开cygwin。输入cd $NDK,假设输出上面配置的/cygdrive/e/android-ndk-r5信息,则表明设置环境变量成功了。

5、用NDK来编译程序

1、  如今我们用安装好的NDK来编译一个简单的程序吧,我们选择ndk自带的样例hello-jni,我的位于E:\android-ndk-r5\samples\hello-jni(依据你详细的安装位置而定),

2、 执行cygwin。输入命令cd /cygdrive/e/android-ndk-r5/samples/hello-jni,进入到E:\android-ndk-r5\samples\hello-jni文件夹。

3、 输入$NDK/ndk-build,运行成功后,它会自己主动生成一个libs文件夹,把编译生成的.so文件放在里面。

($NDK是调用我们之前配置好的环境变量,ndk-build是调用ndk的编译程序)

4、  此时去hello-jni的libs文件夹下看有没有生成的.so文件,假设有。你的ndk就执行正常啦!

6、在eclipse中集成c/c++开发环境

1、 装Eclipse的C/C++环境插件:CDT,这里选择在线安装。

首先登录http://www.eclipse.org/cdt/downloads.php,找到相应你Eclipse版本号的CDT插件的在线安装地址。

2、  然后点Help菜单,找到Install New Software菜单

3、  点击Addbutton。把取的地址填进去。出来插件列表后,选Select All。然后选择下一步就可以完毕安装

4、  安装完毕后,在eclispe中右击新建一个项目。假设出现了c/c++项目,则表明你的CDT插件成功安装啦。

7、配置C/C++的编译器

1、  打开eclipse,导入ndk自带的hello-jni样例,右键单击项目名称,点击Properties,弹出配置界面,之后再点击Builders,弹出项目的编译工具列表。之后点击New,新加入一个编译器。点击后出现加入界面。选择Program,点  击OK

2、出现了加入界面。首先给编译配置起个名字。如:C_Builder

设置Location为<你cygwin安装路径>\bin\bash.exe程序,比如:E:\cygwin\bin\bash.exe。设置Working Directory为<你cygwin安装路径>\bin文件夹,比如:E:\cygwin\bin

设置Arguments为

--login -c "cd /cygdrive/I/JavaWorkSpace/Blog/NDK_02 && $NDK/ndk-build"

上面的配置中 /cygdrive/I/JavaWorkSpace/Blog/NDK_02是你当前要编译的程序的文件夹,$NDK是之前配置  的ndk的环境变量,这两个依据你详细的安装文件夹进行配置,其它的不用变,Arguments这串參数实际是  给bash.exe命令行程序传參数。进入要编译的程序文件夹,然后执行ndk-build编译程序

3、接着切换到Refresh选项卡,给Refresh resources upon completion打上钩

4、然后切换到Build Options选项卡,勾选上最后三项

5、之后点击Specify Resourcesbutton,选择资源文件夹。勾选你的项目文件夹就可以

6、  最后点击Finish,点击OK一路把刚才的配置都保存下来,注意:假设你配置的编译器在其他编译器下边。记得一定要点Upbutton,把它排到第一位。否则C代码的编译晚于Java代码的编译。会造成你的C代码要编译两次才干看到最新的改动

7、  这一路下来肯定非常累了吧,如今再次恭喜你。编译配置也配置完毕啦,如今来測试一下能否够自己主动编译呢,打开项目jni文件夹里的hello-jni.c文件把提示Hello from JNI!改成其它的文字:如:Hello。My name is alex.,然后再模拟器中执行你的程序。假设模拟器中显示了你最新改动的文字。那么Congratulations!

你已经所有配置成功啦!

  文章參考 http://yueguc.iteye.com/blog/946724

cocos2d-x之android编译环境搭建(第二篇)[版本号:cocos2d-x-3.1.1]的更多相关文章

  1. windows下cocos2dx3.0开发环境及Android编译环境搭建

    cocos2dx更新到了3.x版本号,自己一直没有换,如今开发组要求统一换版本号,我就把搭建好开发环境的过程记录下来. 一.Windowns下开发环境搭建 1.  所需工具         1)coc ...

  2. Android编译环境搭建(0818-0819)

    1 在虚拟机VMware上安装64位Ubuntu14.04LTS 首先需要安装虚拟机并激活.然后新建虚拟机,选择使用下载好的Ubuntu镜像.注意需要将光驱改为自己下载的,而不是autoinst.is ...

  3. ubunut 12.04 (64bit) android编译环境搭建

    sudo apt-get install git-core gnupg flex bison gperf build-essential zip curl libgl1-mesa-dev zlib1g ...

  4. jvm编译环境搭建 Debina篇

    这里参考了 <Java虚拟机精讲> <深入理解Java虚拟机 JVM高级特性与最佳实践> http://www.cnblogs.com/zxfdream/p/5411511.h ...

  5. Hadoop环境搭建|第二篇:hadoop环境搭建

    硬件配置:1台NameNode节点.2台DataNode节点 一.Linux环境配置 这里我只配置NameNode节点,DataNode节点的操作相同. 1.1.修改主机名 命令:vi /etc/sy ...

  6. cocos2d-x(vs2012)环境搭建(第一篇)[版本号:cocos2d-x-3.1.1]

    1.下载资源 下载cocos2d-x包V3.1.1,下载戳这里: http://www.cocos2d-x.org/download vs2012下载戳这里: http://www.xiazaiba. ...

  7. C语言编程入门之--第二章编译环境搭建

    第二章 编译环境搭建 导读:C语言程序如何工作,首先需要编译链接成可执行文件,然后就可以运行在不同的环境中,这个“环境”的意思就是比如说,电脑,手机,路由器,蓝牙音箱等等智能设备中,其中编译器启到了关 ...

  8. Docker容器搭建android编译环境

    Docker容器搭建android编译环境 目录 1 部署容器 1.1 手动部署 1.1.1 配置docker 1.1.2 启动容器 1.1.3 配置环境 1.2 Dockerfile 2 镜像管理 ...

  9. ubuntu12.04下安卓编译环境搭建总结

    前言:      因为工作需要,经常要编译安卓下的动态库,公司有已经搭建好环境的服务器,但是第一自己想自己搭建一下了解一个整个过程,另外,公司的服务器也经常出现问 题,导致编译不了,所以就想自己搭建环 ...

随机推荐

  1. 使ThinkPHP(3.2.3)的分页类支持Bootstrap风格

    ThinkPHP 3.2.3自带的分页类位于:/ThinkPHP/Library/Think/Pages.class.php ,官方文档在这里:ThinkPHP3.2.3数据分页 Pages.clas ...

  2. 使用CocoaPods,文档中出现引用头文件找不到的问题。

    现在很多人都会使用CocoaPods来管理自己使用的第三方开源代码,这两天我的工程中碰到了这样一个问题,当我使用CocoaPods来进行三方源码的引入,但是在实际的工程当中引入出现了这样一个问题,就是 ...

  3. creator游戏开发基本语法

    写的比较杂乱,类似随笔,随时可能往里面添加修改给lable文本赋值: this.ScoreNumber.getComponent(cc.Label).string = GAME_DATE.MMscor ...

  4. Java线程的sleep方法

    sleep方法的签名: public static void sleep (long millis) sleep方法是Thread类的一个方法,作用是:在指定的毫秒内让正在执行的线程休眠(暂停执行) ...

  5. 网站卡测试用 PageSpeed Insights

    这个是google测试网页的;https://developers.google.com/speed/pagespeed/insights/ PageSpeed Insights 简介 PageSpe ...

  6. Redis系列(八)--缓存穿透、雪崩、更新策略

    1.缓存更新策略 1.LRU/LFU/FIFO算法剔除:例如maxmemory-policy 2.超时剔除,过期时间expire,对于一些用户可以容忍延时更新的数据,例如文章简介内容改了几个字 3.主 ...

  7. ANNOTATION and analyse hello1.java

    一.What is annotation? annotation的中文意思就是注解,注释的意思.注解也属于一种类型.它是在 Java SE 5.0 版本中开始引入的概念.它的形式跟接口很类似,不过前面 ...

  8. python bs4库

    Beautiful Soup parses anything you give it, and does the tree traversal stuff for you. BeautifulSoup ...

  9. Autowired和Resource的区别

    Autowired是属于spring的注解,默认按类型装配,且依赖对象必须存在,如果允许为null,需要设置Autowired(required=false)   Resource属于javax,默认 ...

  10. Gym - 101550A(Artwork 倒序+并查集)

    题目: 思路: 1.对输入数据离线,先把所有的黑线都画出来,统计一下剩余的白色连通块的个数,dfs过程将一个连通块放到一个集合中. 2.倒着往前消去黑线,如果当前的块A是白块就看他的四周有没有白块:有 ...