android ndk是款功能非常强大的安卓原生开发工具集合,通过这款软件,可以快速的帮助用户进行开发您需要的C或者C++的动态库,而且还可以将so、java应用进行打包成为APK;还对交叉的编译器进行了快速的集成,也为大家进行提供了相对应CPU、mk文件隔离平台等差异的地方,是您可以进行快速的修改MK文件,轻松的创建so等;软件还支持32位和64位的操作系统。
软件功能
使用原生SDK编程相比Dalvik虚拟机也有一些劣势,比如程序更加复杂,兼容性难以保障,无法访问Framework API,Debug难度更大等。开发者需要自行斟酌使用。
众所周知,Android程序运行在Dalvik虚拟机中,NDK允许用户使用类似C / C++之类的原生代码语言执行部分程序。
NDK包括了:
从C / C++生成原生代码库所需要的工具和build files。
将一致的原生库嵌入可以在Android设备上部署的应用程序包文件(application packages files ,即.apk文件)中。
支持所有未来Android平台的一些列原生系统头文件和库。
软件特色
那么java层怎么就能访问到c/c++层并将数据传输过去:c/c++又怎么能将数据传回java层呢。出来在java层通过native标记某个方法是本地方法外,重要是需要NDK这个android 本地开发工具集
什么是NDK(android native develop kits ):android 本地开发工具集 ,可以把c/c++ ->编译成一个 linux下可以执行的二进制文件 java代码里面就可以通过jni 调用执行二进制的文件.
什么是JNI :java本地开发接口,JNI是一个协议这个协议用来沟通java代码和外部的本地代码(c/c++).通过这个协议,java代码就可以调用外部的c/c++,代码外部的c/c++代码也可以调用java代码。
JNI开发用途:驱动开发 (wifi-hoTSPot) 2.3无线热点共享 ,Native code效率高,数学运算,实时渲染的游戏上,音视频处理(极品飞车,opengl,ffmpeg),复用代码(文件压缩,人脸识别…)等。
使用方法
1,下载ndk。这里推荐使用as内部下载,Google在中国也部署了服务器,所以不用翻墙也可以下载。
2,配置as中ndk路径。如果ndk路径没有自动添加,则点击select即可。并在local.properties配置文件中检查是否正确配置路径。
配置文件里是你所下载ndk的路径,我这里是E:sdk dk-bundle
3,配置ndk系统环境变量,并检测
dos下命令:ndk-build;出现以下信息说明配置成功
4,设置as。将ndk版本差异检测过滤掉,要不然项目无法编译。添加:android.useDeprecatedNdk=true
5,编写调用c的java代码。注意:这里如果方法名报错,不用管他。
常见问题
Android NDK 是什么?Android NDK全称:Native Development Kit,即本地开发包。
1、NDK是一系列工具的集合。
NDK提供了一系列的工具,这些工具对开发者的帮助是巨大的。它们能帮助开发者快速开发C(或C++)的动态库,并能自动将so库和java应用一起打包成apk。
NDK集成了交叉编译器,并提供了相应的mk文件隔离CPU、平台、ABI等差异,开发人员只需要简单修改mk文件(指出"哪些文件需要编译"、"编译特性要求"等),就可以创建出so库。NDK可以自动地将so和Java应用一起打包,极大地减轻了开发人员的打包工作。