原地址:http://www.apkbus.com/android-18595-1-1.html

//=====================================================================
//TITLE:
//    图文详解如何搭建Windows的Android C++开发环境(一)
//AUTHOR:
//    norains
//DATE:
//    Thursday  14-April-2011
//Environment:
//    Cygwin 1.7.9
//    Android NDK r5
//=====================================================================

1. 下载Android NDK

正常来说,我们可以从官网下载NDK,不过似乎一直以来,http://developer.android.com/都无法打开,所以还是通过搜索引擎来随便搜索一个下载吧。为方便大伙,我这里给出一个直接下载网址:http://dl.google.com/android/ndk/android-ndk-r5b-windows.zip。不过,虽然我是从这里下载,但并不代表当各位朋友看到这篇文章时,还能够继续使用。

2. 解压NDK

将下载回来的zip文件解压。我这里的路径是:D:/ProgramFiles/Android/NDK。虽然路径是任意的,但尽可能不要包含有空格。

3. 下载Cygwin

Android是用linux核心的,注定为其编写的程序不可能使用微软的Visual Studio之流,何况Google也推荐采用linux开发C++程序。可问题在于,用Windows的人实在太多了,即使是程序员群体也是如此。那么,这是否意味着我们必须要转向linux呢?其实没必要。我们只要下载一个cygwin即可解决问题。

这个cygwin究竟是何方神圣?它其实是linux工具的合集。它可以在windows下搭建一个linux的环境,让你可以在windows下进行linux的程序开发。其官网网址为:http://www.cygwin.com/,大家可以自行去下载。只不过该软件必须要用官网的setup.exe文件进行下载,而网络上也无法找到完整的cygwin,所以直接带给我们的结果就是,没有了常用的下载软件,只能慢慢地龟速等待。

点击Setup.exe程序,会弹出一个下载方式选择的对话框。因为我习惯于备份安装文件,以方便第二台机器安装,所以选择的是第二项:"Download without installing",如图:
<ignore_js_op> 
在一系列的"下一步"之后,会到一个选择下载组件的对话框。为了避免以后会出现莫名奇妙的问题,我建议还是全部选择install,如图所示:
<ignore_js_op> 
  以install方式下载整个cygwin的话,大小大概在1.7G左右,所以注定这是一个比较漫长的过程。特别是不能采用我们平时的下载工具,并且服务器在国外,更加剧了耗时的长度。
   
   
4. 安装Cygwin

还是依然点击setup.exe这个程序,不过这次我们选择的是:"Install From Local Directory",如图:
<ignore_js_op> 
接着选择安装的目录,我这里是"D:/ProgramFiles/Cygwin",如图所示:
<ignore_js_op> 
再接下来呢,选择的就是你下载回来的Cygwin包的路径了,而我这里路径是"D:/Tools/cygwin",如图所示:
<ignore_js_op> 
可能有朋友无法确定自己的安装路径,其实很简单,本地安装包路径就是setup.ini这个文件所在的文件夹。
   
    紧接着的安装组件还是和之前一样,全部选择为install。点选下一步之后,就等着漫长的安装过程的结束吧,如下图所示:
<ignore_js_op> 
5. 设置环境变量

安装完毕之后,为了能够方便编译NDK,最好是设置相应的环境变量。打开cygwin的安装目录下的home文件夹,然后进入到相应的用户名中,如果你发现该用户名下有.bash_profile文件,那么接下来就简单多了,直接用记事本打开该文件,然后在文件末尾添加如下文字:
    #创建NDK的路径,在windows中我的路径为:D:/ProgramFiles/Android/NDK
   NDK_ROOT=/cygdrive/D/ProgramFiles/Android/NDK
   #添加到PATH环境变量中
   export NDK_ROOT
   
    保存之后,打开cygwin,在命令行输入:cd $NDK_ROOT。这里注意,不像windows下的CMD,这里一定是区分大小写的。如果不出意外,就会进入到我们NDK的安装目录了。
   
    如果相应的用户名文件夹中没有改文件,可能问题就没那么简单了。如果你在该用户名下建立一个.bash_profile ,并添加了相应的文字,然后如上面所说一切正常的话,那么恭喜你!但事实上,往往不是那么顺利。很可能你会发现,即使我们在用户名下建立了该文件,但似乎环境变量根本没有成功设置。这个很可能是用户名所在的路径设置不对,要检验路径,直接在cygwin输入pwd即可。
   
    比如,我安装完毕之后,输入pwd,画面显示:
<ignore_js_op> 
这意味着,如果我将.bash_profile放到D:/ProgramFiles/Cygwin/home/Administrator 是没有任何作用的,而应该放到D:/WorkPlace !
   
    那么,我们有没有办法更改这个目录呢?答案当然是可以,只要修改相应的环境变量即可。在"我的电脑"点击右键,然后按如下路径进行选择:属性 -> 高级 -> 环境变量。在上面或下面的框中,找到HOME这个环境变量,更改为相应的数值即可。更改之后,重启电脑,将.bash_profile拷贝到HOME变量指向的路径,启动cygwin,那么就可以生效了。这里需要注意,一定要重启电脑,否则这HOME变量之前的数值可能还会影响到cygwin。
   
    更改HOME变量数值之后,输入pwd,很明显看出,路径已经改变,NDK_ROOT变量也起作用了,如图:<ignore_js_op> 
6. 编译程序

接下来,我们就来编译一个程序试试。

首先,在cygwin命令行界面进入到D:/ProgramFiles/Android/NDK/samples/hello-jni路径。如果对命令行不熟悉的朋友,可以输入如下命令:cd /cygdrive/D/ProgramFiles/Android/NDK/samples/hello-jni 
   
    然后输入"$NDK_ROOT/ndk-build"进行编译。$NDK_ROOT是之前在.bash_profile设置的环境路径,而ndk-build是调用NDK的编译工具。如果不出问题,它会生成一个libs目录,并且编译生成的.so文件也会悉数在此,如下图所示:
<ignore_js_op> 
启动配置好的android的java开发环境,比如说Eclipse + CDT,然后创建一个Android项目,选择Create project form existring source location =D:/ProgramFiles/Android/NDK/samples/hello-jni,确认后即可开始编译并生成apk文件,然后运行该程序即可。关于如何搭建Eclipse + CDT编译环境来编译android程序,我们下一篇文章再详解。

参考文献:

《Cygwin完全下载指南(上)》
http://blog.csdn.net/Lionwoo/archive/2005/08/06/446962.aspx

《Windows平台下搭建Android原生C/C++开发环境 》
http://www.cnblogs.com/FinalKiller/archive/2009/07/11/1520900.html

《Android Beginners: NDK Setup Step by Step》
http://mindtherobot.com/blog/452/android-beginners-ndk-setup-step-by-step/

《windows系统集成cygwin与Eclipse与使用Android NDK r5》
http://student.csdn.net/space.php?uid=121497&do=blog&id=57864

图文详解如何搭建Windows的Android C++开发环境的更多相关文章

  1. 搭建Linux下Android程序开发环境

    从AndroidStudio中文社区下载SDK压缩包,http://dl.google.com/android/android-sdk_r24.2-linux.tgz. 解压到某个目录,比如我的~/p ...

  2. Go语言学习笔记(一) : 搭建Windows下的Go开发环境

    最近突然对Go语言产生了兴趣,主要是因为在使用python的时候遇到了一些不爽的问题,然后发现了Go.Go是Google出的一个动态语言,语法和C++接近,性能也非常的好,而且还支持编译成exe发布, ...

  3. 搭建windows下的odoo开发环境

    odoo运行环境的必须要要求是 python环境 postgreSQL数据 数据库可以安装在别的机器上,比如服务器:当然对于开发环境,通常,数据库与代码调试安装在同一台机器上. 首先安装 postgr ...

  4. 搭建Windows下Java Web开发环境

      概要 1.SSH开发相关软件及开发包下载2.软件安装及相关设置3.最简单的Web程序 1.软件下载 在D盘建一个目录JavaTools,用来存放下载的软件和开发包.(本教程将使用D盘,你也可以使用 ...

  5. Windows环境下执行hadoop命令出现Error: JAVA_HOME is incorrectly set Please update D:\SoftWare\hadoop-2.6.0\conf\hadoop-env.cmd错误的解决办法(图文详解)

    不多说,直接上干货! 导读   win下安装hadoop 大家,别小看win下的安装大数据组件和使用  玩过dubbo和disconf的朋友们,都知道,在win下安装zookeeper是经常的事   ...

  6. 关于在真实物理机器上用cloudermanger或ambari搭建大数据集群注意事项总结、经验和感悟心得(图文详解)

    写在前面的话 (1) 最近一段时间,因担任我团队实验室的大数据环境集群真实物理机器工作,至此,本人秉持负责.认真和细心的态度,先分别在虚拟机上模拟搭建ambari(基于CentOS6.5版本)和clo ...

  7. 基于CentOS6.5下snort+barnyard2+base的入侵检测系统的搭建(图文详解)(博主推荐)

    为什么,要写这篇论文? 是因为,目前科研的我,正值研三,致力于网络安全.大数据.机器学习研究领域! 论文方向的需要,同时不局限于真实物理环境机器实验室的攻防环境.也不局限于真实物理机器环境实验室的大数 ...

  8. 基于CentOS6.5下Suricata(一款高性能的网络IDS、IPS和网络安全监控引擎)的搭建(图文详解)(博主推荐)

    不多说,直接上干货! 为什么,要写这篇论文? 是因为,目前科研的我,正值研三,致力于网络安全.大数据.机器学习研究领域! 论文方向的需要,同时不局限于真实物理环境机器实验室的攻防环境.也不局限于真实物 ...

  9. 基于Windows7下snort+apache+php 7 + acid(或者base) + adodb + jpgraph的入侵检测系统的搭建(图文详解)(博主推荐)

    为什么,要写这篇论文? 是因为,目前科研的我,正值研三,致力于网络安全.大数据.机器学习.人工智能.区域链研究领域! 论文方向的需要,同时不局限于真实物理环境机器实验室的攻防环境.也不局限于真实物理机 ...

随机推荐

  1. Servlet原理

    Servlet主要用来处理客户端请求并将其结果发送到客户端,下面我们来详细看一下Servlet. 一.Servlet的生命周期 Servlet的生命周期是由Servlet的容器来控制的(Tomcat ...

  2. Guzzle Unable to parse JSON data: JSON_ERROR_SYNTAX - Syntax error, malformed JSON

    项目更新到正式平台时,出现Guzzle(5.3) client get请求出现:Unable to parse JSON data: JSON_ERROR_SYNTAX - Syntax error, ...

  3. 浅谈用java解析xml文档(三)

    接上一篇,本文介绍使用JDOM解析xml文档, 首先我们还是应该知道JDOM从何而来,是Breet Mclaughlin和Jason Hunter两大Java高手的创作成果,2000年初, JDOM作 ...

  4. .Net 把网页Html转PDF文件

    .Net 把网页Html转PDF文件 此篇主要利用 wkhtmltopdf  进行转换. 一.控制台直接转换 首先到官网http://wkhtmltopdf.org/下载wkhtmltopdf  ,下 ...

  5. Ubuntu Update-rc.d命令详细介绍

    http://www.jb51.net/os/Ubuntu/182768.html Ubuntu或者Debian系统中update-rc.d命令,是用来更新系统启动项的脚本.这些脚本的链接位于/etc ...

  6. 3D Touch ? 木有6s,也阔以玩!!!

    3D Touch 之 Peek & Pop 3D Touch 是iOS9之后专为 iPhone6s 机型加入的新特性,这一新技术移植于 Mac Book 上的 ForceTouch 更准确地说 ...

  7. MVC开发 好的扩展套件(Visual Studio 插件)

     

  8. Basic MSI silent install

    Articles and post about silent install for Basic MSI, InstallScript, InstallScript MSI: Silent-mode ...

  9. (转)RPC原理详解

    转自:http://www.open-open.com/lib/view/open1425797146897.html RPC功能目标 RPC的主要功能目标是让构建分布式计算(应用)更加容易,在提供强 ...

  10. OpenJudge 2774 木材加工

    1.链接: http://bailian.openjudge.cn/practice/2774/ 2.题目: 总Time Limit: 1000ms Memory Limit: 65536kB Des ...