Android中的热修复我目前只接触过Tinker,其实以后可能用不到热更新了,因为Android9.0以后就用不了了,hook底层代码禁了。不过还是需要知道的,下面就是我在集成tinker中的过程以及遇到的问题
首先当然是添加依赖:在project的build.gradle里面
project的build.gradle在app的build.gradle里面
app的 build.gradle然后先不要着急sync now因为会报错:Error:Execution failed for task ':tinkerdemo:tinkerProcessDebugManifest'.
> tinkerId is not set!!!
接下来就需要在app的build.gradle里面配置tinker了 具体看这里 Tinker配置
除了图上三个箭头所示的地方需要更改还要在project的gradle.properties里面加上
TINKER_VERSION=1.0
TINKER_ID=1.0
TINKER_ENABLE=true
然后就可以sync now了,接下来就要继承tinker的DefaultApplicationLike实现自己的Application了
继承application接下来就可以测试了首先写一个简单的布局和MainActivity
布局文件 activity写完之后点击运行
运行然后打开app目录下的build里面会有一个bakApk文件夹
bakApk然后复制app-debug-0228-18-53-39.apk(这个apk名字是随机生成的)到app的bulid.gradle的
复制名字然后再sync now一下,接下来就是最后一步了把原先的main.xml布局文件改动一下删掉最后一个button
删除button接下来双击运行
双击运行运行完成后你会在app目录下的build目录下的outputs目录下发现生成了一个tinkerPatch文件夹,里面会有三个apk文件
复制复制后重命名为你在MainActivity中的名字就是xxx.patch,然后放在你手机的根目录下
以上步骤完成后你就可以点击修复一下,你会发现项目会闪退一下 然后你再打开最后一个button已经消失了,说明简单的热修复已经成功了
最后不要忘了高版本手机上加动态读写权限
想看demo的可以去我的GitHub
网友评论