前面介绍Windows下Android 开发环境配置,主要是面向JAVA开发环境,对只做APK上层应用开发人员来讲,基本够用了,由于Linux系统的权限限制和Android封装架构限制,很多涉及底层设备、接口、驱动控制的应用开发,不得不使用到本文的NDK开发环境(基于Android源码或内核源码修改),开发语言使用C/C++,NDK开发更接近于Linux开发,需要更多关于Linux应用编程知识。本文就介绍一下NDK环境搭建及基础编程思想。

本文演示环境:Windows 7 Ultimate+Cygwin+NDK r4。

基础阅读:

Windows下Android开发环境搭建和配置

Android开发入门之环境概念介绍

一、下载android NDK

您可以下载NDK r4  for Windows或NDK r5  for Windows安装包,下载地址:

地址:http://developer.android.com/sdk/ndk/index.html

下载后解压缩到你的工作目录,例如:E:\Android\develop,结果如下图:

Android NDK包含build、docs、samples、sources、GNUmakefile、ndk-build、ndk-gdb及readme等内容。samples下面包含几个实例开发演示项目,第一次接触NDK开发,建议先从示例开始。下面先看一下编译环境配置。

二、下载Cygwin

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

http://www.cygwin.com/

下载后是个setup.exe文件,使用过程如下:

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

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

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

第四步:设置本地包暂存路径

暂存目录默认是放到setup.exe的同级目录下,下载后名字类似ftp%3a%2f%2fcygwin.mirrors.pair.com%2f这样格式。

第五步:设置网络连接方式

第六步:选择下载站点地址

起初尝试几个看哪个速度快就用哪个地址(如果感觉不快就点取消,再次来过)。

第七步:等待加载安装项载入,选择安装项

我们编译NDK,在默认设置下,只需选择Devel(点击列表中Devel,将后面的Default改为Install,图中箭头所示),其它均为默认状态。

第八步:等待下载完成

下载完成时间决定于你选择的安装包数量及网络连接速度,比如按照本文默认的选择方式,可能需要4-5个小时,下载后压缩包约750M,下载完成后会自动安装到上文设置的安装目录。

提醒:第一次下载完成后,最好把下载的包目录做个备份,下次安装同样的环境可以直接使用离线安装方式(第二步中选择本地安装)。

三、验证Cygwin环境

安装完成后,先运行Cygwin一次(Cygwin.bat),以便创建一些用户环境文件,分别输入:

make -v

和,

gcc -v

如果检测成功,会有make和gcc相关版本信息打印出来,如下图。

四、配置NDK路径设置

可以在cygwin中通过vim修改,也可以在windows安装目录中修改 home\<你的用户名>\.bash_profile 文件中最后添加环境变量

NDK=/cygdrive/e/Andriod/develop/android-ndk-r4

export NDK

其中NDK=/cygdrive/<你的盘符>/<android ndk 目录> ,"NDK"这个名字随便起,以后经常用不要太长。

重启cygwin,输入:

cd $NDK

可进入ndk对应目录说明设置OK。

五、编译演示工程

现在就可以编译相关NDK工程了(一些用c/c++写的程序),编译方法如下:

1、在cygwin命令行下,进入android项目工作目录:

cd $NDK

2、依次进入samples\hello-jni目录,(完整路径示例: E:\Andriod\develop\android-ndk-r4\samples\hello-jni)

4、正常编译完成后会在你的项目libs/armeabi目录下生成对应的 .so文件。

六、导入静态目标库到Android项目

编译完成后会得到*.so静态目标库后,就可以导入工程环境Eclipse Android项目中使用,注意,NDK编程并非一定要把这个目标库导入Android项目使用,除了本步骤描述的使用方法之外,还有Android源码直接修改、编译,然后烧录到测试机的开发方式,那样可以实现应用程序默认安装、权限开机提升等等更“彻底”的功能。综合一下:

本步骤演示属于NDK目标库+Andriod APK样式,此外还有Android源码直接开发、直接编译方式(确切一点已经淡化Android所谓的工程概念了,当然源码开发目前似乎还无法直接在Windows下进行,好像必须使用Linux家族系统进行,天缘稍后文章会有所涉及)

使用方法如下(示例):

1、在Eclipse中新建一个工程HelloJni,HelloJni.java中的代码可参考NDK对应 sample下的演示代码(android-ndk-r4\samples\hello-jni\tests\src\com\example \HelloJni)调用方法。

2、将NDK编译项目目录下的jni和libs文件夹拷贝到新建工程目录下

注意这两个文件夹要和工程中的src和res文件在同一目录下。然后进入Eclipse中刷新工程(会看到多出两个文件夹)。

3、运行Eclipse项目,就可以在虚拟机上看到hello-jni.c函数中输出字符串。

4、后续您可以试着修改库源程序或项目JAVA程序来熟悉NDK整个开发过程。

Windows环境下Android NDK环境搭建的更多相关文章

  1. 【转】Windows环境下Android NDK环境搭建

    原文网址:http://www.metsky.com/archives/525.html 前面介绍Windows下Android 开发环境配置,主要是面向JAVA开发环境,对只做APK上层应用开发人员 ...

  2. Windows系统下Android开发环境搭建

    “工具善其事,必先利其器”.要想学好Android,搭建好Android开发环境是一个良好的开端. Windows系统下Android开发环境主要有4个大的步骤.分别是: 1.JDK的安装 2.ecl ...

  3. Linux环境下Android开发环境的搭建

    本文主要介绍在Ubuntu下Android开发环境的搭建,所使用的IDE为Eclipse(Android Studio同理,且可省去配置SDK以及安装adt插件的步骤). 1.安装JDK (1)JDK ...

  4. ubuntu环境下android开发环境安装

    http://blog.csdn.net/shulianghan/article/details/38023959 Android程序开发的环境配置 Ubuntu下自带openjdk的卸载 你无需管它 ...

  5. Windows XP环境下 搭建Android NDK环境

    搭建Android NDK环境 Windows XP环境下 1 一些下载 ① NDK r7:http://developer.android.com/sdk/ndk/index.html ② cygw ...

  6. 在eclipse里配置Android ndk环境 适用于windows mac 和linux(转)

    在eclipse里配置Android ndk环境 适用于windows mac 和linux(转) 2012-02-27 13:02:16|  分类: android |  标签:java  prog ...

  7. win7下android开发环境搭建(win7 64位)

    win7下android开发环境搭建(win7 64位)   一.安装 JDK 下载JDK最新版本,下载地址如下: http://www.oracle.com/technetwork/java/jav ...

  8. Windows环境下Android Studio v1.0安装教程

    Windows环境下Android Studio v1.0安装教程 准备工具 JDK安装包. 要求:JDK 7以及以上版本. Android Studio安装文件. Windows: exe(包含SD ...

  9. Android笔记——Windows环境下Android Studio v1.0安装教程

    本文主要讲解Windows环境下Android Studio的安装教程,Mac的Android Studio安装与此类似不在赘述,另外友情提示Windows下的SDK与Mac的SDK是通用的,可以直接 ...

随机推荐

  1. Telerik柱状图(1)

    此随笔主要是介绍一下Telerik的柱状图控件中的一种.效果图为: 此图展示了五个人每个季度的绩效成绩,用图形方式展示数据可以让用户更直观的去看数据,分析数据,不多说了,在这个分享一下我录得视频讲解, ...

  2. 在jsp中选中checkbox后 将该记录的多个数据获取,然后传到Action类中进行后台处理 双主键情况下 *.hbm.xml中的写法

    在jsp中选中checkbox后 将该记录的多个数据获取,然后传到Action类中进行后台处理 双主键情况下 *.hbm.xml中的写法   ==========方法1: --------1. 选相应 ...

  3. bzoj3202:[Sdoi2013]项链

    思路:首先考虑如何求珠子个数,一个珠子由a,b,c三个数组成且属于区间[1,a],并满足gcd(a,b,c)=1.由于要求本质相同,对于a,b,c这样的一个无序的数列且满足gcd(a,b,c)=1,设 ...

  4. 九度OJ 1202 排序 -- 堆排序

    题目地址:http://ac.jobdu.com/problem.php?pid=1202 题目描述: 对输入的n个数进行排序并输出. 输入: 输入的第一行包括一个整数n(1<=n<=10 ...

  5. ubuntu 12.04 mysql转移目录后 无法 启动

    http://www.boyunjian.com/do/article/snapshot.do?uid=com.iteye.xgbjmxn%2Fblog%2F1208086(转,)     我是用ap ...

  6. php访问控制

    访问控制 访问控制通过关键字public,protected和private来实现.被定义为公有的类成员可以在任何地方被访问.被定义为受保护的类成员则可以被其自身以及其子类和父类访问.被定义为私有的类 ...

  7. 阿里云服务器CentOS 5.7(64位)安装配置LAMP服务器(Apache+PHP5+MySQL)

    一.快速安装Apache+PHP5+MySql ----------------------------------------------------- 补充:由于163的yum源上只有php5.1 ...

  8. Java入门-浅析Java学习从入门到精通【转】

    一. JDK (Java Development Kit)  JDK是整个Java的核心,包括了Java运行环境(Java Runtime Envirnment),一堆Java工具和Java基础的类库 ...

  9. 关于textjs的tree带复选框的树

    通过查阅一些资料和自己之前了解到的一些相关知识,有时项目中需要用到.话不多说,先看一下效果图: 我写的这人员选择的树,主要是改写了TreePanel,如下代码: ExtendTreePanel.js ...

  10. spring 下载地址(拷贝)

    Spring2.5.6 和Spring3.0.5所有jar下载地址spring jar包 官方下载地址 文档下载地址.2.56版本 和3.05版本http://s3.amazonaws.com/dis ...