1. 背景

Android平台从诞生起,就已经支持C、C++开发。

众所周知,Android的SDK基于Java实现。这意味着基于Android SDK进行开发的第三方应用都必须使用Java语言。但这并不等同于“第三方应用仅仅能使用Java”。在Android SDK首次公布时,Google就宣称其虚拟机Dalvik支持JNI编程方式。也就是第三方应用全然能够通过JNI调用自己的C动态库,即在Android平台上,“Java+C”的编程方式是一直都能够实现的。

只是,Google也表示。使用原生SDK编程相比Dalvik 虚拟机也有一些劣势,Android SDK文档里,找不到不论什么JNI方面的帮助。即使第三方应用开发人员使用JNI完毕了自己的C动态链接库(so)开发,可是so怎样和应用程序一起打包成apk并公布?这里面也存在技术障碍。比方程序更加复杂。兼容性难以保障。无法訪问Framework API。Debug难度更大等。开发人员须要自行斟酌使用。

于是NDK就应运而生了。

NDK全称是Native Development Kit。

NDK的公布,使“Java+C”的开发方式最终转正,成为官方支持的开发方式。NDK将是Android平台支持C开发的开端。

NDK是由Android提供的编译本地代码(C、C++)的工具,主要用于使用JNI开发Android app。


2. 配置

(1) 下载

从android ndk官网http://developer.android.com/sdk/ndk/index.html下载ndk,眼下最新版本号为android-ndk-r6b-linux-x86.tar.bz2

(2) 解压ndk到工作文件夹

$ tar -xvf android-ndk-r6b-linux-x86.tar.bz2

$ sudo mv android-ndk-r6b /usr/local/ndk

(3) 环境变量设置

$ sudo vim /etc/profile

export PATH=/usr/local/ndk:$PATH

编辑完毕后保存退出,并重新启动生效。

(4) 验证安装

$ cd /usr/local/ndk/samples/hello-jni/

$ ndk-build

Gdbserver : [arm-linux-androideabi-4.4.3] libs/armeabi/gdbserver

Gdbsetup : libs/armeabi/gdb.setup

Install : libhello-jni.so => libs/armeabi/libhello-jni.so

【环境配置】配置ndk的更多相关文章

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

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

  2. eclipse里配置Android ndk环境,用eclipse编译.so文件

    做Android NDK开发时,c代码需要用ndk-build来进行编译,而java代码则需要用Android sdk编译. 编译c代码有两种方法: 一.写好c代码后,然后用cygwin搭建ndk-b ...

  3. cocos2d-x学习记录第一篇-环境变量配置

    最近准备学习cocos2d-x,之前一直是做iOS开发的,算是零基础开始学习吧. (此条后来修改,不用配置下面这些东西,下载一个cocosstudio就可以了,直接在里边就创建工程了) 本人用Mac电 ...

  4. Android开发环境变量配置总结

    每次重装系统或者拿到一台新电脑都得重配Android的环境变量,每次都得上网查,索性就记在这儿吧. “系统属性->高级系统设置->环境变量” 打开环境变量配置窗口. JDK配置: 新建JA ...

  5. win7(x64)+VS2012+cocos2d-x环境的配置以及试运行

    原地址:http://blog.csdn.net/gf771115/article/details/20740993 转自:http://blog.sina.com.cn/s/blog_62df697 ...

  6. Ubuntu 下的环境变量配置

    网上很多配置jdk环境变量的方法,但是几乎都会下次重启电脑就失效,或者时不时的失效.下面教你一招 JDK环境变量配置如下: 执行命令sudo gedit /etc/environment,在打开的编辑 ...

  7. Linux 下android环境的配置

    Linux 下android环境的配置 1. JDK下载 http://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads- ...

  8. Linux安装LAMP开发环境及配置文件管理

    Linux主要分为两大系发行版,分别是RedHat和Debian,lamp环境的安装和配置也会有所不同,所以分别以CentOS 7.1和Ubuntu 14.04做为主机(L) Linux下安装软件,最 ...

  9. 1.JAVA基础复习——计算机基础与环境变量配置

    软件开发的了解 软件开发: 软件:一系列按照特定组织的计算机数据和指令的集合. 开发:制作软件. 程序:一系列有序指令的集合. 人机交互 人机交互的方式有两种:图形化界面和命令行方式. 图形化界面:简 ...

  10. java环境变量配置

    1.打开我的电脑--属性--高级--环境变量 2.新建系统变量JAVA_HOME 和CLASSPATH 变量名:JAVA_HOME 变量值:C:\Program Files\Java\jdk1.7.0 ...

随机推荐

  1. 【centOS】centos7 查看和关闭防火墙

    查看防火墙状态 firewall-cmd --state running代表防火墙正在运行 停止firewall systemctl stop firewalld.service 禁止firewall ...

  2. Android - 警告Nested weights are bad for performance

    Android - 警告Nested weights are bad for performance 本文地址: http://blog.csdn.net/caroline_wendy 原因: Lay ...

  3. [翻译] MZTimerLabel 用作秒表或者倒计时

    MZTimerLabel 用作秒表或者倒计时 https://github.com/mineschan/MZTimerLabel A handy class for iOS to use UILabe ...

  4. wikioi 1163 訪问艺术馆 树形dp

    递归建树,由题知该树是一棵二叉树,且除根节点外其它点的度为0或2. dp[i][j]表示来到第i个走廊(还未走过这条走廊)还剩下j时间,能拿到最大的画的数量. dp[i][j]=max(dp[i][j ...

  5. JAVA常见算法题(三十四)---计算加密之后的电话号码

    某个公司采用公用电话传递数据,数据是四位的整数,在传递过程中是加密的, 加密规则如下: 每位数字都加上5,然后用和除以10的余数代替该数字, 再将第一位和第四位交换,第二位和第三位交换. 求加密之后的 ...

  6. #line 的作用是改变当前行数和文件名称

    #line 的作用是改变当前行数和文件名称,它们是在编译程序中预先定义的标识符命令的基本形式如下:   #line number["filename"]其中[]内的文件名可以省略. ...

  7. mongodb实现远程连接

    mongodb远程连接配置分为以下4步: 1. 添加管理员账户 > use admin switched to db admin > db.addUser('tank','test'); ...

  8. Octave下操作CH341

    #include <octave/oct.h> #include <windows.h> #include <cstdint> #include <fstre ...

  9. 多个程序对sql server中的表进行查询和插入操作导致死锁

    最近在做一个项目,是要用多个程序对sql server中的相同的数据库进行操作(查询和插入),所以在开始的时候常会出现死锁问题,后来在网上进行了咨询,发现了一些解决方法,留作大家参考: 并发去操纵一张 ...

  10. Informatica 常用组件Aggregator之三 使用排序输入

    可以使用排序输入选项改善聚合转换性能.使用排序输入时,PowerCenter 会假定所有数据已按组排序.PowerCenter 读取某组的行时,它将执行聚合计算.需要时,它会将组信息存储在存储器中.要 ...