前言:
从事Android开发工作有一段时间了,天天跟布局、原生控件打交道,用着别人的轮子,好用是好用,就是感觉自己没什么提升,脑子里思来想去,考虑到还得靠这行生存下去,现状不利于自己职业的发展,也实现不了自身的理想,故从今开始,尝试着记录下自己学习的过程,一来当做学习的总结与技术点的备份,二来试着分享一下自己的学习经验,希望从今天开始与诸君共勉!
准备工作:
- 下载并配置NDK开发工具包,我使用的是Android Studio自带的,需下载的可去NDK 下载(PS:自备梯子)
- 配置NDK路径,windows下快捷键Ctrl + Alt + Shift + S或File->Project Struture进入设置界面,如图:
步骤
1. 创建Android工程X-JniDemo。
2. 在Module的build.gradle对应位置添加以下代码:
ndk {
moduleName "NdkTools"
ldLibs "log", "z", "m"
abiFilters "armeabi", "armeabi-v7a", "x86"
}
3. 在gradle.properties文件添加代码。
android.useDeprecatedNdk=true
4. 在app/src/main节点下创建jni和jniLIB文件夹。
5. 新建Class文件NdkTools,编写代码装载库文件和声明native方法,这里的“NdkTools”就是第二步在build.gradle文件中配置的ModuleName,也将决定生成的.so文件的命名。
6. 直接Make Project,编译通过后会在app/build/intermediates/classes/debug/包名下生成NdkTools.class文件。
7.进入Terminal,依次输入
cd app\build\intermediates\classes\debug
javah -jni -encoding UTF-8 包名.NdkTools