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

更多相关文章

  1. 有关android加快开机速度
  2. Android生成Market分享链接
  3. Android开机自动启动Wi-Fi热点的方法
  4. Android中一张图片加载后所占用内存大小的获取与测试
  5. android httpClient 支持HTTPS的处理方式
  6. android AVD 4.0 下解决中文输入问题
  7. 11、从头学Android之Android布局管理:LinerLayout线性布局
  8. Android(安卓)虚拟机常用快捷键
  9. Android启动Activity的两种方式

随机推荐

  1. Android(安卓)用groovy在gradle自定义字
  2. android中四大引用的区别,强引用、软引用
  3. 直播软件开发关于Android、iOS中的视频采
  4. 初学android-调用百度api显示地图(出现显
  5. Android透明度数值记录
  6. Android(安卓)盒子开发,TV开发,经验总结NO.
  7. 百度Android语音合成(TTS)SDK使用方法
  8. Android(安卓)ListView页眉页脚效果
  9. 制作一款简单的网络图片查看器
  10. 三星Tizen手机官网现身 上市或面临风险