【环境配置】配置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 ...
随机推荐
- 【centOS】centos7 查看和关闭防火墙
查看防火墙状态 firewall-cmd --state running代表防火墙正在运行 停止firewall systemctl stop firewalld.service 禁止firewall ...
- Android - 警告Nested weights are bad for performance
Android - 警告Nested weights are bad for performance 本文地址: http://blog.csdn.net/caroline_wendy 原因: Lay ...
- [翻译] MZTimerLabel 用作秒表或者倒计时
MZTimerLabel 用作秒表或者倒计时 https://github.com/mineschan/MZTimerLabel A handy class for iOS to use UILabe ...
- wikioi 1163 訪问艺术馆 树形dp
递归建树,由题知该树是一棵二叉树,且除根节点外其它点的度为0或2. dp[i][j]表示来到第i个走廊(还未走过这条走廊)还剩下j时间,能拿到最大的画的数量. dp[i][j]=max(dp[i][j ...
- JAVA常见算法题(三十四)---计算加密之后的电话号码
某个公司采用公用电话传递数据,数据是四位的整数,在传递过程中是加密的, 加密规则如下: 每位数字都加上5,然后用和除以10的余数代替该数字, 再将第一位和第四位交换,第二位和第三位交换. 求加密之后的 ...
- #line 的作用是改变当前行数和文件名称
#line 的作用是改变当前行数和文件名称,它们是在编译程序中预先定义的标识符命令的基本形式如下: #line number["filename"]其中[]内的文件名可以省略. ...
- mongodb实现远程连接
mongodb远程连接配置分为以下4步: 1. 添加管理员账户 > use admin switched to db admin > db.addUser('tank','test'); ...
- Octave下操作CH341
#include <octave/oct.h> #include <windows.h> #include <cstdint> #include <fstre ...
- 多个程序对sql server中的表进行查询和插入操作导致死锁
最近在做一个项目,是要用多个程序对sql server中的相同的数据库进行操作(查询和插入),所以在开始的时候常会出现死锁问题,后来在网上进行了咨询,发现了一些解决方法,留作大家参考: 并发去操纵一张 ...
- Informatica 常用组件Aggregator之三 使用排序输入
可以使用排序输入选项改善聚合转换性能.使用排序输入时,PowerCenter 会假定所有数据已按组排序.PowerCenter 读取某组的行时,它将执行聚合计算.需要时,它会将组信息存储在存储器中.要 ...