关于ndk jni网上的介绍很多,其实我了解这个主要是因为自己是做嵌入式的,一则是对C语音有感情 二则是知道jni 可以绕过framework 框架直接操作硬件抽象层。
1、概述
对于ndk, jni的理解,我是比较肤浅含糊的。我就这么理解把,JNI是Java Native Interface的缩写,中文为JAVA本地调用。可以调用本地的c、c++。而ndk就是谷歌提供的实现jni的包,开发环境了。说起来比较抽象就是NDK 是真实存在的要去下载的,和SDK一样。而jni就是一种java 本地调用技术。管他呢?就是那么回事,目的就是为了使用c/c++ 提高代码效率 或者绕过framework 操作hal层 或 kernel层。
2、环境搭建
windows linux 两个都试了下。参考了很多网上的材料,总结出来就是windows的安装方式比较麻烦,前前后后,有好几种版本。低版本要模拟Linux环境,高版本不要。比较麻烦,我个人比较偏向Linux下的ndk搭建,我也相信纯Linux的环境比模拟出来的效果好。
2.1、 windows 现在安装应该是不用在装cygin了 参考:
http://blog.csdn.net/leilu2008/article/details/12495273
个人感觉,最后处理上直接把错误删除了,是不是有点问题。c++库是不是没指定的原因。
note: 谷歌给的adtbunlder是集成 adt cdt 的所以也省去了安装cdt的步骤。
2.2、 Linux版本下搭建ndk环境
步骤比较简单
参考:http://blog.csdn.net/yxz329130952/article/details/7429124
如果在jni的 c++文件里提示错误<instream> cout 都不能解析
sudo apt-get install build-essential 安装gcc g++ 编译器 C++库。
还提示<instream>警告
把gcc 卸载了重新装一边。重复了几次就行了。