如何简单修改Android的so文件

如何简单修改Android的so文件,第1张

so文件是动态链接库,是个二进制文件,相当于windows系统下的dll

二进制文件基本没法修改的,除非有它的源代码,修改以后,重新编译。

当然,so可以在一定程度上反编译,但是很麻烦。

参考 http://billhoo.blog.51cto.com/2337751/1125559

在 http://www.jianshu.com/p/5bebc6dfbdec

这篇文章中征程的apk:JniTest.apk把后缀改为JnitTest.zip,打开这个文件,在lib下面会有生成好的.so文件,copy出来。

可以发现这个.so文件叫libMyTest.so。

然后把这个so文件copy到新的项目的libs\armeabi下,使用和正常的.so文件一样。然后修改app的gradle中的android节点中加入:

然后在main\java 建立生成.so文件那个项目的包名, 把NdkJniUtils文件copy过来。当然封装成jar包更好啦。

到此完成,调用NdkJniUtils的方法即可获得.so文件中的内容。

APP开发时,可能会碰到引入第三方so文件的需求,可以根据以下步骤引入

一、新建jnilibs目录,或者直接放入libs目录

二、修改build.gradle文件,添加sourceSets jniLibs.srcDirs配置,如果放入libs,那么srcDirs应配置为libs

前两步已经说明如何引入so文件,那么如何调用.so文件里面的方法呢?拷贝或新建调用类,注意包名,在类中创建相应方法,假设C文件的方法为Java_a_b_c_JniUtils_test,需创建的类及方法:


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/tougao/11627558.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-17
下一篇 2023-05-17

发表评论

登录后才能评论

评论列表(0条)

保存