java层和native层交互
Native层:一些本地服务和链接库,通过C和C++语言实现(加密/加速)
JNI(java native interface),Java代码和其它语言写的代码进行交互
jni实现流程
1. 编写Java类代码
2. 编译成字节码.class (javac)
3. 产生头文件.h (javah)
4. 编写JNI代码.cpp
5. 编译成链接库文字.so (ndk-build)
NDK
native develop kit,开发C++代码的工具
下载: http://developer.android.com/tools/sdk/ndk/index.html
文件:
1. samples:demo
2. platforms:平台
3. toolchains:交叉编译工具
4. docs:文档
配置NDK环境
ndk目录配置:SDK Location —> Android NDK location
在gradle.properties中添加android.useDeprecatedNdk=true
动态库
Android支持的CPU架构:armv5/armv7(2010)/x86(2011)/mips(2012)/armv8,mips64,x86_64,arm64-v8a(2014)
只编译指定平台的so:在gradle中添加:abiFilters “x86”,否则默认生成所有平台的so
so存放目录:在build/intermediates/ndk/debug/lib
Android.mk目录:在build/intermediates/ndk/debug/obj/Android.mk