Android中的热修复我目前只接触过Tinker,下面就是我在集成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