#背景
在做安卓逆向工程的时候,有时候需要引入三方开发好的jni库,这些库可能非常老旧,甚至是32位的,本文记录引入的过程,便于快速查找
1.把so库拷贝到工程中
一般是如下两个目录
app\src\main\jniLibs\armeabi-v7a
或者
app\src\main\jniLibs\arm64-v8a
2.拷贝原工程中的jni函数定义到新工程中,注意,包名不能变!即文件路径不能变化
例如:

3.在工程任意处加入加载so的代码,一般放到MainActivity.java中
static {
System.loadLibrary("xxx");
System.loadLibrary("play");
}
注意,不要带lib,不要带后缀,上述so实际文件名是libplay.so
4.需要在 app/build.gradle 中配置:
android {
defaultConfig {
ndk {
abiFilters 'armeabi-v7a', 'arm64-v8a', 'x86'
}
}
}
5.完成上述步骤后,即可在java文件中通过Jni.xxx引用so库中的静态方法了
enjoy!