NDK全称:Native Development Kit。
1、NDK是一系列工具的集合。
* NDK提供了一系列的工具,帮助开发人员高速开发C(或C++)的动态库,并能自己主动将so和java应用一起打包成apk。这些工具对开发人员的帮助是巨大的。
* NDK集成了交叉编译器,并提供了对应的mk文件隔离平台、CPU、API等差异,开发者仅仅须要简单改动mk文件(指出“哪些文件须要编译”、“编译特性要求”等),就能够创建出so。
* NDK能够自己主动地将so和Java应用一起打包,极大地减轻了开发者的打包工作。
2、NDK提供了一份稳定、功能有限的API头文件声明。
Google明白声明该API是稳定的,在兴许全部版本号中都稳定支持当前公布的API。从该版本号的NDK中看出,这些API支持的功能很有限,包括有:C标准库(libc)、标准数学库(libm)、压缩库(libz)、Log库(liblog)。

1、NDK是一系列工具的集合。
NDK提供了一系列的工具,帮助开发人员高速开发C(或C++)的动态库,并能自己主动将so和java应用一起打包成apk。这些工具对开发人员的帮助是巨大的。NDK集成了交叉编译器,并提供了对应的mk文件隔离CPU、平台、ABI等差异,开发人员仅仅须要简单改动mk文件(指出“哪些文件须要编译”、“编译特性要求”等),就能够创建出so。NDK能够自己主动地将so和Java应用一起打包,极大地减轻了开发人员的打包工作。
2、NDK提供了一份稳定、功能有限的API头文件声明。
Google明白声明该API是稳定的,在兴许全部版本号中都稳定支持当前公布的API。从该版本号的NDK中看出,这些API支持的功能很有限,包括有:C标准库(libc)、标准数学库(libm)、压缩库(libz)、Log库(liblog)。

在此之前,Android平台的第三方应用程序均是依靠基于Java的Dalvik特制虚拟机进行开发的。原生SDK的发布能够让开发人员更加直接的接触Android系统资源,并使用传统的C或C++语言编敲代码,并在程序封包文件(.apks)中直接嵌入原生库文件。

一、 工具准备



1.eclipse adt(这里只是多介绍)

2.NDK安装包(官网提供下载http://developer.android.com/tools/sdk/ndk/index.html)可是解压之后的路径,强烈建议不能包括空格。比方:C:\Program
Files\android-ndk-r9b\,这是不建议的。为什么不建议有空格?由于我们要在控制台运行命令。路径里面有空格,在控制台操作时一般都会有点问题。

3.cygwin(编译工具用于生成.so库)下载地址:http://www.cygwin.com/安装的时候大部分默认就能够

步骤:

3.1双击setup-x86-64.exe,选中Install from Internet。

3.2填写安装地址。和上面一样,红框部分的路径最好不要有空格。下一步。

3.3Local
Package Directory,不须要改动,直接下一步。

     3.4就到了选择连接方式Select connection type。依据你的网络连接情况选择。通常是选择第一个Direct connection。然后下一步。

      3.5选择下载网站Select download site。你看着选,或者加入你自己的url。我是选择的mirrors.163.com。然后下一步。



     3.6以下就到了Select Package页面了。就是选择下载的包的页面。

      这里,我们仅仅须要下载三个包即可了:make , gcc-core
, gcc-g++。

这里有四个操作。

    ① 点击viewbutton,将显示模式改为Full。

    ② 在Search中,输入我们须要下载的包的名字。

    ③ 找到相应的包,点击Skip一次,出现方块或者有叉方块。

    ④ 反复步骤②和③,直到选中全部我们须要的包。

    以上四步做完了,就下一步。

接下来是选择相关的包,打勾即可,下一步。然后就是下载所需的包。

然后就一直下一步即可了。

finish之后,点击桌面的快捷方式,打开命令行窗体。

命令:

     make -v  和 gcc -v。假设出现一串信息,说明安装OK。

二.将NDK加入到Cygwin的build配置中

这一步非常easy。进入到你的Cygwin安装文件夹中,进入home/[你的username]/文件夹下,里面有个.build_profile文件。

假设没有这个文件,那么: /cygwin安装文件夹/etc/skel里面找,里面有3个文件

.bash_profile, .bashrc 和 .inputrc。 这三个文件是cygwin提供给全部用户的,接下来把这三个文件统统拷贝到自己的“用户directory”下,即  /cygwin安装文件夹/home/ [你的username] 下 

用记事本打开。在文件的末尾,加入下面两行句子并保存:(注意是改动.bash_profile)

NDK=f:/JNI/env/android-ndk-r9b 



      export NDK

这里解释一下:NDK=f:/JNI/env/android-ndk-r9b  这个就是你的NDK解压的文件夹(注意:这里的反斜杠是/,而不是\。linux下的反斜杠和windows下不同。我就是由于这个不正确,搞了半天。。另一点,=后面可不能加空格!)

注意:加入完之后,假设你的Cygwin窗体是开着的,把它关掉又一次打开。

      打开之后,验证是否配置成功。输入 

       cd $NDK

      假设进入你的ndk文件夹,那就说明OK了。这步骤仅仅是为了高速进入文件夹进行编译!

到这里,NDK和Cygwin都安装OK了。以下打开Eclipse,安装CDT。

这一步主要是为了方便进入文件夹进行编译,不设也行。

三.安装CDT

CDT,是Eclipse的C/C++编辑插件。由于是JNI,会编写C/C++,装一下挺好的。假设你不想装,也是OK的,你能够记事本写,或者Visual Studio写。哪怕你用针刻出C的代码,仅仅要能写对即可。

安装Eclipse插件的方法都一样,help->Install New Software。

以下是输入CDT下载地址:http://download.eclipse.org/tools/cdt/releases/kepler。勾选Main的,Optional的看自己的须要。

然后就一直下一步,什么允许协议啦,什么restart啦,都听他的。

restart之后,新建project时,看看有没有C/C++ Project。假设有,说明安装OK。

參考:http://my.oschina.net/lifj/blog/176916

如有问题请留言,转载注明出处。

Android NDK 简单介绍、工具安装、环境配置的更多相关文章

  1. Mahout学习之Mahout简单介绍、安装、配置、入门程序測试

    一.Mahout简单介绍 查了Mahout的中文意思--驭象的人,再看看Mahout的logo,好吧,想和小黄象happy地玩耍,得顺便陪陪这位驭象人耍耍了... 附logo: (就是他,骑在象头上的 ...

  2. idea npm vue java开发工具安装 环境配置

    感谢此链接内容作者,从前往后流程较完整详细,助我成功配置好(不知道在这之前做的一些尝试有没有影响) https://blog.csdn.net/qq_42564846/article/details/ ...

  3. Android Studio(一):介绍、安装、配置

    Android Studio相关博客: Android Studio(一):介绍.安装.配置 Android Studio(二):快捷键设置.插件安装 Android Studio(三):设置Andr ...

  4. Android发展简单介绍

    Android一词的本义指“机器人”,同一时候也是Google于2007年11月5日宣布的基于Linux平台的开源手机操作系统的名称,该平台由操作系统.中间件.用户界面和应用软件组成,号称是首个为移动 ...

  5. CocoaPods的简单介绍及安装和使用

    CocoaPods的简单介绍及安装和使用   一.CocoaPods是什么? 当你开发iOS应用时,会常常使用到非常多第三方开源类库.比方JSONKit.AFNetWorking等等. 可能某个类库又 ...

  6. 详解LUA开发工具及其环境配置

    LUA开发工具及其环境配置是本文要介绍的内容,主要是来了解并学习lua开发工具的使用和环境的配置,第一次接触LUA的话,就跟本人一起学习吧.看我能不能忽悠到你. LUA是语言,那么一定有编写的工具.第 ...

  7. Android 服务端开发之开发环境配置

    Android 服务端开发之开发环境配置 这里是在Eclipse的基础上安装PhpEclipse插件方法,PHPEclipse是Eclipse的 一个用于开发PHP的插件.当然也可以采用Java开发a ...

  8. 安卓app开发-01-开发工具及环境配置

    安卓app开发-01-开发工具及环境配置 请大家根据推荐指数和自己的意愿选择 使用 Android Studio 1.可以使用 Android Studio 下载地址:http://www.andro ...

  9. openresty开发系列10--openresty的简单介绍及安装

    openresty开发系列10--openresty的简单介绍及安装 一.Nginx优点 十几年前,互联网没有这么火,软件外包开发,信息化建设,帮助企业做无纸化办公,收银系统,工厂erp,c/s架构偏 ...

随机推荐

  1. stm32之GPIO

    stm32有5组GPIO口,GPIOA GPIOB GPIOC GPIOD GPIOE 每个GPIO端口有: 2个配置寄存器GPIOx_CRL, GPIOx_CRH(32位): 2个数据寄存器GPIO ...

  2. [Swust OJ 1084]--Mzx0821月赛系列之情书(双线程dp)

    题目链接:http://acm.swust.edu.cn/problem/1084/ Time limit(ms): 1000 Memory limit(kb): 65535   Descriptio ...

  3. BZOJ 3407: [Usaco2009 Oct]Bessie's Weight Problem 贝茜的体重问题( dp )

    01背包... ----------------------------------------------------------------------- #include<cstdio&g ...

  4. STL中deque

    以下学习一下STL中另一种序列容器——deque. deque表示double-ended queue,即双向队列,deque是通过作为动态数组的方式实现的,这样可以在两端插入元素.因此,deque可 ...

  5. Android学习笔记:ListView简单应用--显示文字列表

    在activity中的编写如下代码: final List<String> items = new ArrayList<String>(); //设置要显示的数据,这里因为是例 ...

  6. 【每日一摩斯】-Shared Pool优化和Library Cache Latch冲突优化 (1523934.1)-系列3

    减轻Shared Pool负载 Parse一次并执行多次        在OLTP类型的应用中,最好的方法是只让一个语句被解析一次,然后保持这个cursor的打开状态,在需要的时候重复执行它.这样做的 ...

  7. What’s New in Python 2.7 — Python 3.4.0b2 documentation

    What's New in Python 2.7 - Python 3.4.0b2 documentation What's New in Python 2.7¶

  8. Android大放送干:书籍、过程、工具等各种全

    完全干燥分享,本文收集Android制定必要的书籍.过程.具.新闻和杂志各种资源.它们能让你在Android开发之旅的各个阶段都受益. 入门 <Learning Android(中文版)> ...

  9. Android 实现在线程中联网

    其实我们要牢记的是,对数据流的操作都是阻塞的,在一般情况下,我们是不需要考虑这个问题的,但是在Android 实现联网的时候,我们必须考虑到这个问题.比如:从网络上下载一张图片: Java代码: pu ...

  10. BZOJ 2287: 【POJ Challenge】消失之物( 背包dp )

    虽然A掉了但是时间感人啊.... f( x, k ) 表示使用前 x 种填满容量为 k 的背包的方案数, g( x , k ) 表示使用后 x 种填满容量为 k 的背包的方案数. 丢了第 i 个, 要 ...