仅提供最基本的NDK的入门方法
最开始就是 下载NDK 解压(路径中不能有空格) 然后配置path啦
1.定义Native方法
public static native String getStringName();
新建一个名字为jni的文件夹 和 src res libs文件夹同级
- 生成头文件
cmd cd 进入当前项目路径
javah -classpath bin/classes; (Android.jar path) -d jni (Native方法所在类的包名+类名) 生成头文件
3.编写实现文件
刷新项目,根据刚才生成的头文件新建并编写实现文件(.c .cpp 等)
include
include
include “xxx.h” //头文件全名
例如头文件中 方法:
JNIEXPORT jstring JNICALL Java_com_iven_base_Config_getName
(JNIEnv *, jclass);
则实现文件为:
JNIEXPORT jstring JNICALL Java_com_iven_base_Config_getName(
JNIEnv * env, jclass jclass) { //env为指针
return (*env)->NewStringUTF(env, “这是一Name”); // NewStringUTF 为创建一个JNI层能读懂的字符串
}
4. 改写Android.mk文件
打开Android.mk文件
将下面两行代码 更改为
LOCAL_MODULE := getStringInfo //实现文件的文件名
LOCAL_SRC_FILES := getStringInfo.c // 实现文件的文件名带后缀
5.再配置Application.mk文件 (可选)
APP_ABI := all # 运行平台 默认全部 arm arm-v7a mips x86 #为注释注释 注释了这行编译的话 只生成在arm-v7a平台上的.so文件了
APP_PLATFORM := android-8 #最低兼容android版本
6.编译生成.so文件
cmd cd 进入当前项目路径
ndk-build 开始编译 不提示 表示编译成功 进入项目中刷新查看 会多出来一个obj文件夹
如果提示了错误 根据错误排除问题
NDK适用
1. 对计算量很大的运算
2. 存放加密的key 以及相关重要信息
等等…
有任何意见或者疑问 欢迎留言或者联系作者:1056816512