android studio修改jar包中的class文件

问题:
在java开发中经常用到第三方的jar包,在使用中会遇到jar包中的包名冲突、jar包中的程序需要修改等问题,诸如此类问题就需要对jar包中的java字节码程序进行修改,本文探讨在安卓as开发环境中修改jar包中的class文件。
思路:
我们无法在as反编译出的代码中直接修改源文件,那就把class反编译出的java源程序复制到我们的项目中,比照反编译出的java源程序中包名创建一个包名类似的java包,如原来包名是“com.myjar,我们创建一个包名叫“com.myJar”的包(注意只有j大小写的区别),然后在这个包下创建和jar包中同名的java类“MyCreateJar”,并把android studio反编译class的源程序拷贝到新建的类中,接下来按我们的需求修改这个类,修改完毕后,重新生成apk,在“\app\build\intermediates\classes\debug\com\myJar”目录下包含了“MyCreateJar.class”文件,这个class文件包含了我们新修改的代码,然后用这个新的class替换原来jar包中的文件就可以了,因为生成这个文件时我们用了“com.myJar”这个包名,把“j”换成了“J”,“MyCreateJar.class”直接打到jar包中是不能使用的,为此我们用“010 Editor”修改“MyCreateJar.class”中的常量池,把“J”在替换成“j”,然后重新打包成jar文件。​​​​​​​

文档及测试源码地址:
优快云icon-default.png?t=M276https://mp.youkuaiyun.com/mp_download/manage/download/UpDetailed


 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

绝知此事要躬行

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值