AndroidStudio_安卓逆向之JNI开发_流程总结
经验积累 无标签 2020-04-18 21:35:00
阅读:1686
JNI开发_流程总结
安卓NDK开发:总结
1.jni接口:java native interface
2.作用:用于javahe /c++代码的交互
3.使用方法:jni静态注册和jni动态注册
1).Jni静态注册
a).流程如下:
1.在java代码中定义nativef修饰的方法
2.来到指定路径(scr路径)执行javah -jni,根据java中native修饰的方法生成.h头文件
3.编写c、C++代码,导入头文件,同时实现我门.h头文件中的方法
4.编写两个mk文件:android.mk文件,aaplication.mk文件(把这四个文件放到jni目录)
5.来到到指定路径(jni文件夹所在路径)ndk-build生成so文件
2).Jni动态注册
a).流程如下:
1.在java代码中定义nativef修饰的方法
2.新建C/C++文件,导入jni.h头文件,编写c代码,实现java层被native修 饰的方法
3.通过JNINativeMethod结构体绑定java和c、c++方法
4.通过RegisterNatives方法注册java相应的类以及方法
5.把c/c++注册方法写入到JNI_onload(两个参数);注意:JNI_onload,是系统调用
6.来到到指定路径(jni文件夹所在路径)ndk-build生成so文件
4.两种注册方法有确定的对比
a).静态注册:
1.编写不方便,jni方法名字必须遵守而且名字长
2.运行效率不高,不安全
b).动态注册:
1.流程清晰可控的;运行效率高
在浏览的同时希望给予作者打赏,来支持作者的服务器维护费用.一分也是爱~
如果觉得我的文章对你有用,请随意赞赏