注意 说明官方demo的使用接入指南裏面的使用步骤详解
小弟也是刚刚毕业,如有问题还望大神指正
而我们要做的就是在findClass的时候让类加载找到的是我们修复过后的类,而不昰未修复的类
至于是如何做到的暂时还没有深究,个人理解大概是通过反射替换了ClassLoader通过自定义的ClassLoader去加载更新之后的类文件从而完成替換
关于热更新介绍和机制,网上很多介绍这里简单记录一下小白使用Tinker热更新的经历
需要将app 下的gradle 中 gitRev 字段自己赋值因為在没有配置git的情况下,无法获取这个值作为Tinker 的Id,我好像没感觉这个玩意有啥用应该是唯一的即可,然后这个项目就可以根据编译打包啦(即带有bug需要修复的线上版本)
比如给随便一个按钮点击事件中多打印一个Toast
首先在Gradle中配置带有bug的apk路径以及资源文件txt路径,以便让Tinker新咾apk进行比较生成差异包
,可在Gradle中尝试打开警告忽略
即可然后将程序关闭,重新打开就执行的是新的代码啦~
附上我的完整gradle文件,注意一定要配置签名文件
好啦,你的工程可以和Demo工程一样愉快的使用了具体加载Patch清除Patch 看Demo就可以了
版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。