Android NDK 配置:

网上有很多教程,但大部分是旧版本的内容,最新版本的已经改变,为了让大家少走弯路,在这里针对r9的配置进行记录分享。

要玩NDK,你或多或少要用到以下一些东西,所以先做一下准备

  1. 有关Eclipse下的Android与NDK配置,请网上搜,不再描述,不用Eclipse的同学请忽略。简单提示一下:网上凡是用Help>Install New Software的方法基本正确;
  2. 有关NDK的下载,当然是google官方的,搜索Android NDK即可,我都懒得贴出地址了;
  3. 如果在Windows下,会用到Cygwin,模拟Linux/Unix/Mac命令行,不管你爱不爱,必须下载安装,地址我也懒得贴出了。方法也是网上搜即可,简单提示下:Cygwin的setup-x86xxx.exe 其实是个包管理器,想要安装或卸载组件随时打开它,记得安装Devel组件,很重要。Cygwin的安装也很费时间,主要是下载需组件要时间,其home目录在Cygwin安装目录下,各盘符号表示为cygdrive/<小写盘符>形式,如E盘: cygdrive/e 没用过unix命令? 你要学一下,可能会花上一到两个小时时间。

上面步骤准备好了吗?Android NDK r9的配置就是不用配置,呵呵。好吧,我再说详细一点,其实网上说的一些设置啊,make啊,都已经不需要,直接把下载回来的包解压即可。存放目录不要有空格,这点很重要,让你省去很多麻烦,信我。

在r4版本之前,要求你进行

  1. build/host-setup.sh

现在已经没有了,即使你要找也找不到这个脚本;

在Cygwin里记得设置好ndk目录变量,例如输入cd $NDK就直达NDK目录,很方便,信我,你会在之后经常用到它。

NDK怎么使用?

先要在Android项目下新建jni目录,把c或c++脚本写成组件,例如mymodule.c,同时写一个Android.mk来描述它,mymodule.c和Android.mk其实都是文本文件,用你喜欢的编辑器编辑它们,但具体怎么弄,看别人写的:《关于Android NDK中调用第三方的动态库》

http://android100.cnblogs.com/p/android-sdk-config.html

或者网上找找,学会写这两个文件和写Java接口就可以了。

编译C组件

完成上一步后,才可到达这里,相信你在网上其它地方看到很多教程方法并且实践了,来到里是很不容易的,但如果没有,你看到这里是没有意义的。

编译C组件的方法其实也很简单,如果只是入门,只要把c文件和mk文件放在Eclipse项目下的jni即可,不要放到别的地方,至少目前不要。方法是:

通过Cygwin进入项目目录,就是那个AndroidManifest.xml所在的项目根目录。在Cygwin上一个一个输入目录名很费时,教你一个快捷方法,把目录拖到Cygwin中就可以得到正确的字符串,cd进去就可。记住,一定要进入项目根目录,然后,执行ndk目录下的ndk-build,因为上面设置了目录别名,所以我只要这样即可:

  1. $NDK/ndk-build

接着就会出现类似

Compile xxxxxx

的信息,没错误的话,项目根目录下会生成libs/libxxxx.so文件。

非ARM架构CPU的编译

运行项目用的如果是Genymotion或者非ARM架构CPU的模拟器,会报错,不怕,只要编译时加上APP_ABI=x86 即可:

  1. $NDK/ndk-build APP_ABI=x86

结语

至此,ndk的使用就是如此简单,关键还是$NDK/ndk-build 脚本。过程可能会出现一些错误,多做一些功课和给些耐心是都可以解决的。

Android NDK r9的配置与使用的更多相关文章

  1. Android NDK R9 安装配置 无需Cygwin

    转自:http://www.cr173.com/soft/66623.html NDK是一个工具集,可让您实现您的应用程序使用本机代码的语言,如C和C + +.Android NDK 是在SDK前面又 ...

  2. Android NDK 安装与配置

    本文主内容: 1.  Android NDK 安装 2.  安装Cygwin与使用NDK编译 3.  在Eclipse中集成C/C++开发环境CDT 4.  安装Sequoyah插件 5.  JNI编 ...

  3. Android NDK开发 环境配置(一) 之多重CPU的兼容性

    今天我学习Android Studio当中的NDK,为什么要学习NDK呢,是因为领导给我提了一个BUG,这个BUG就是Android 多重CPU怎样兼容性,我现在先说一下,Android Studio ...

  4. Ubuntu 32下Android NDK+NEON的配置过程及简单使用举例

    1.  利用VMware在Windows7 64位下安装Ubuntu13.10 32位虚拟机: 2.  从 https://developer.android.com/tools/sdk/ndk/in ...

  5. Android NDK 环境变量配置

    NDK_ROOT = C:\__S_D_K__\AndroidNDK\android-ndk-r20 在path 中加入  %NDK_ROOT% 我的路径在C盘 //个别的程序可能需要 NDK_ROO ...

  6. Android NDK r8 Cygwin CDT 在window下开发环境搭建 安装配置与使用 具体图文解说

    版权声明:本博客全部文章均为原创.欢迎交流.欢迎转载:转载请勿篡改内容,而且注明出处,谢谢! https://blog.csdn.net/waldmer/article/details/3272500 ...

  7. Mac os x下配置 Android ndk 开发环境

    1.阅读下面之前,请确保你android sdk的开发环境已经搭建好,ADT也最好是目前最新的. 2.到http://developer.android.com/tools/sdk/ndk/index ...

  8. Android NDK R9d 安装

    NDK是一个工具集,可让您实现您的应用程序使用本机代码的语言,如C和C + +.Android NDK 是在SDK前面又加上了“原生”二字,即Native Development Kit,因此又被Go ...

  9. [cocos2d-x3.0]Android+NDK+Eclipse环境搭建及编译步骤~

    1: 必要准备 1): jdk&jre 2): adt-bundle 3): android ndk r9 4): python2.7 5): cocos2d-x 3.0 alpha0 2: ...

随机推荐

  1. 递归的隐含限制——处理对象小的可以、大的不可以

    最近自己编写了一个求n阶行列式的值的C程序,编译成功,并且使用了一个3阶行列式进行了测试,测试也成功了.以为这样就万事大吉了,可是后来在实际应用中调用该函数时却导致程序无法运行.注意到,实际应用中要求 ...

  2. JMX入门开发

    什么是JMX?或者是JMX是做什么的?我的理解是:可以远程管理/编辑JAVA对象.如图: 上面的SchemaName属性就是可以动态修改的,那么是如何做到的哪?下面咱们逐步分析. 一.首先假设咱们有个 ...

  3. JERSEY中文翻译(第一章、Getting Started、2.2)

    前言 这是jersey2.2的用户向导,我们会尽力维护它的更新并且也会增加新的章节.当阅读本用户指南的时候,也要参阅Jersey API 文档,额外的信息补充JERSEY的新特性和API 如果你想要为 ...

  4. SpringBoot 分页处理

    开始主要是要使用已经设计好的数据库 -- ---------------------------------------------------- -- 用户 -- ----------------- ...

  5. 【Fanvas技术解密】HTML5 canvas实现脏区重绘

    先说明一下,fanvas是笔者在企鹅公司开发的,即将开源的flash转canvas工具. 脏区重绘(dirty rectangle)并不是一门新鲜的技术了,这在最早2D游戏诞生的时候就已经存在. 复杂 ...

  6. Calling a PL/SQL procedure in ODI

    新建procedure 新建一个测试表格EMP: CREATE TABLE EMP ( ) CONSTRAINT PK_EMP PRIMARY KEY, ENAME ), JOB ), MGR ), ...

  7. Configuring the launch of the remote virtual machine to debug

    Options need to be added to the standard launch of a virtual machine (VM) to enable the debugging ar ...

  8. 通过Navicat Premium迁移Oracle到EDB迁移实战

    1.1 DB migration analysis   在从Oracle向EDB迁移数据之前,须要做非常多准备工作.比方须要分析源数据库数据量大小.数据是否稳定.异构数据库兼容.编码方式.业务逻辑(存 ...

  9. 一次dns缓存引发的慘案

    时间2015年的某个周六凌晨5点,公司官方的QQ群实用户反馈官网打不开了,但有的用户反馈能够打开.客服爬起来自己用电脑试了一下没有问题,就给客户反馈说.可能是自己网络的问题,请过会在试试.早点8点,越 ...

  10. 【AIX】在命令前显示完整路径

    登录到AIX系统,发现在#前没有目录展示,这样我们在查看当前目前时很不方便,需要借助命令PWD才可以实现 解决方案: 在.profile文件中添加命令:export PS1="[LONGNA ...