360 java插件设置_关于360插件化Replugin Activity动态修改父类的字节码操作

近期在接入360插件化方案Replugin时,发现出现崩溃情况。

大概崩溃内容如下:

aused by: java.lang.ClassNotFoundException: Didn't find class "x.x.x.xActivity" on path:

我自己在插件代码里书写的Activity,我是全部继承了PluginActivity。不过由于在插件中还使用了其他第三方的SDK,后来去查看插件APK的DEX发现第三方SDK的Activity的父类还是Activity. 后来想起来之前由于在插件app的build.gradle有句配置因为编译不通过给删除了

// 这个plugin需要放在android配置之后,因为需要读取android中的配置项

apply plugin: 'replugin-plugin-gradle'

这个gradle插件是做什么用的呢?

经过资料查找大概明白了情况。

这个gradle作用于插件apk,主要是在插件app编译期间利用Transform api在class文件转换为dex文件之前对Java 字节码文件进行操作,利用Java字节码库Javassist进行代码注入,从而达到不修改插件apk工程源码前提下载编译器对插件apk进行动态修改的目的。

修改内容包括:

a. 将插件中所有的XXXActivity类中的顶级XXXActivity父类修改为插件库replugin-plugin-library中的XXXPluginActivity类,反编译看看就能发现最终插件apk的各个Activity继承了XXXPluginActivity父类。

查找的资料:

https://blog.csdn.net/hellogmm/article/details/79056660

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值