参考资料:
1、安卓逆向5.Android Studio JNI静态注册(C++和Java互操作)
2、安卓逆向4.Android Studio JNI静态注册(一个简单的JNI静态注册流程)
3、安卓逆向_15( 三 ) --- Android NDK 开发【 jni 静态注册、JNI_OnLoad 动态注册】
4、Android JNI编程(七)——使用AndroidStudio编写第一个JNI程序
环境:
Windows10 x64
Android Studio 4.0.1
1、开始编程
1、选择对应的Activity
2、填写项目名称,注册API选择最接近100%的
3、在MainActivity中创建一个名为SayHello的native方法
4、输入javah -jni com.crackme.jnistatictest.MainActivity
在当前目录生成.h头文件
5、创建jni,将头文件放进去
6、在Jni文件夹下新建一个TestJniStatic.cpp的文件,并写入如下代码(需要注意的是导出函数的声明必须和.h头文件的一致)
7、在Jni文件夹下添加Android.mk文件,并插入以下代码
LOCAL_PATH := $(call my-dir) |
8、在Jni文件夹下添加Application.mk文件,并插入以下代码
APP_ABI := armeabi-v7a x86 |
9、在当前jni目录执行ndk-build会生成lib文件
10、在App文件夹下的build.gradle文件里,找到defaultConfig项,在其项里添加如下代码(必须,否则会导致LoadLibrary时加载失败):
ndk { moduleName "TestJniStatic" } sourceSets.main { jni.srcDirs = [] jniLibs.srcDir "src/main/libs" } |
11、回到MainActivity中新增如下两段代码(注意:LoadLibrary中的模块名称必须去头去尾,否则无法加载成功!)