前言
Sophix收钱,Tinker能修复资源,robust只能修复代码。这期先弄robust,下期弄Tinker,之后是插件化。其实热修复跟插件化的原理是差不多的,只不过一个是新增加载,一个是替换。
网上关于热更新的资料很多,具体过程就不列出来了,总结下我遇到的问题。
高版本build:gradle报错
robust 0.4.99
com.android.tools.build:gradle:4.0.2(这里我用4.1一直报错)
读写权限
PatchManipulateImp里会有文件的复制操作,需要加权限。
同时 targetSdkVersion 30最好替换setTempPath跟setLocalPath的路径(context.getExternalFilesDir(Environment.DIRECTORY_DOCUMENTS))
setTempPath是实际加载的代码路径,在官方demo中,他会把我们放在setLocalPath路径里的patch.jar拷贝成setTempPath路径里的patch_temp.jar。
xxx被另一程序占用
我这里签名打包,反复生产补丁跟apk的过程中,总会出现这个被占用的问题,手动关闭java.exe进程就可以了