【环境配置】配置ndk
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的更多相关文章
- 在eclipse里配置Android ndk环境 适用于windows mac 和linux(转)
在eclipse里配置Android ndk环境 适用于windows mac 和linux(转) 2012-02-27 13:02:16| 分类: android | 标签:java prog ...
- eclipse里配置Android ndk环境,用eclipse编译.so文件
做Android NDK开发时,c代码需要用ndk-build来进行编译,而java代码则需要用Android sdk编译. 编译c代码有两种方法: 一.写好c代码后,然后用cygwin搭建ndk-b ...
- cocos2d-x学习记录第一篇-环境变量配置
最近准备学习cocos2d-x,之前一直是做iOS开发的,算是零基础开始学习吧. (此条后来修改,不用配置下面这些东西,下载一个cocosstudio就可以了,直接在里边就创建工程了) 本人用Mac电 ...
- Android开发环境变量配置总结
每次重装系统或者拿到一台新电脑都得重配Android的环境变量,每次都得上网查,索性就记在这儿吧. “系统属性->高级系统设置->环境变量” 打开环境变量配置窗口. JDK配置: 新建JA ...
- win7(x64)+VS2012+cocos2d-x环境的配置以及试运行
原地址:http://blog.csdn.net/gf771115/article/details/20740993 转自:http://blog.sina.com.cn/s/blog_62df697 ...
- Ubuntu 下的环境变量配置
网上很多配置jdk环境变量的方法,但是几乎都会下次重启电脑就失效,或者时不时的失效.下面教你一招 JDK环境变量配置如下: 执行命令sudo gedit /etc/environment,在打开的编辑 ...
- Linux 下android环境的配置
Linux 下android环境的配置 1. JDK下载 http://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads- ...
- Linux安装LAMP开发环境及配置文件管理
Linux主要分为两大系发行版,分别是RedHat和Debian,lamp环境的安装和配置也会有所不同,所以分别以CentOS 7.1和Ubuntu 14.04做为主机(L) Linux下安装软件,最 ...
- 1.JAVA基础复习——计算机基础与环境变量配置
软件开发的了解 软件开发: 软件:一系列按照特定组织的计算机数据和指令的集合. 开发:制作软件. 程序:一系列有序指令的集合. 人机交互 人机交互的方式有两种:图形化界面和命令行方式. 图形化界面:简 ...
- java环境变量配置
1.打开我的电脑--属性--高级--环境变量 2.新建系统变量JAVA_HOME 和CLASSPATH 变量名:JAVA_HOME 变量值:C:\Program Files\Java\jdk1.7.0 ...
随机推荐
- 【docker】centOS7上部署的mysql和spring boot服务,要求,mysql的时间、java程序服务的时间和宿主机的时间完全保持一致【修改mysql时区,临时和永久】【修改spring boot配置文件时区】【修改docker启动spring boot实例程序时区】
要求:centOS7上部署的mysql和spring boot服务,要求,mysql的时间.java程序服务的时间和宿主机的时间完全保持一致: ============================ ...
- python笔记29-队列Queue
前言 Python的Queue模块提供一种适用于多线程编程的FIFO实现.它可用于在生产者(producer)和消费者(consumer)之间线程安全(thread-safe)地传递消息或其它数据,因 ...
- Struts2 S标签 数目字格式化成金额输出(保留两位小数)
JSP: <s:property value="%{formatDouble(price)}" /> Action:添加 //格式化数字显示 public String ...
- Objective—C中的排序及Compare陷阱
campare陷阱 NSString有多个compare相关方法: - (NSComparisonResult)compare:(NSString *)string; - (NSComparisonR ...
- css3 transform方法常用属性
css3中transform方法是一个功能强大的属性,可以对元素进行移动.缩放.转动.拉长或拉伸等功能. transform中最为常用的4个属性分别是:rotate();.scale();.skew( ...
- strncpy实现
#include<stdio.h> char *my_strncpy(char *dest,char *src,int n) { int i; ;i<n && src ...
- 高效的数据压缩编码方式 Protobuf
一. protocol buffers 是什么? Protocol buffers 是一种语言中立,平台无关,可扩展的序列化数据的格式,可用于通信协议,数据存储等. Protocol buffers ...
- crtmpserver实现防盗流和流推送验证 之二
IV. Catching the thieves 抓住小偷 Well, we have just added a secure mechanism to our little streaming se ...
- Bootstrap学习js插件篇之提示框
案例 受到Jason Frame开发的jQuery.tipsy插件的启发,我们才把这个工具提示插件做的更好,而且此插件不依赖图片,只是使用CSS3来实现动画效果,并使用data属性存储标题. 将鼠标悬 ...
- 理解闭包的微观世界和JS垃圾回收机制
function a() { ; function b() { alert(++i); } return b; } var c = a(); c(); 一.闭包的微观世界 如果要更加深入的了解闭包以及 ...