Android 热修复Tinker(一)
该文章主要是运行Tinker运行官方demo
项目需要用到了Tinker,自己接入了一下,记录一下遇到的问题!
官网指南
步骤一:下载
下载官网demo,只需要在Android studio中运行该demo即可
官网demo.png
步骤二:在Android studio中运行该demo
1,assembleDebug解释,环境变量配置 gradle
assembleDebug
是一个 gradle 编译命令,使用该命令需要下载(https://gradle.org/releases/)解压,并在电脑的 环境变量 中配置解压的目录:例如我的目录为:D:\Android\gradle-4.10.2\bin
在命令提示符中,输入
gradle -v
,显示如下信息即为配置成功!gradle验证.png
看到如上信息,你就可以快乐的使用官网 所说的
调用 assembleDebug
进行编译了。注:该命令的完整为:
gradlew assembleDebug
,如下图:在项目的Terminal中输入该命令.png
2,按照官网步骤执行即可:
修改代码,例如将MainActivity中
修改build.gradle中的apk名称.pngI am on patch onCreate
的Log打开。然后我们需要修改build.gradle中的参数,将步骤一编译保存的安装包路径拷贝到tinkerPatch
中的oldApk
参数中。如下图:
注:需要将步骤1中生成的apk,按照上图修改。
3,官网的调用tinkerPatchDebug解释
最开始没找到tinkerPatchDebug
在哪里,有两种方式可以找到tinkerPatchDebug
- 方式1,Android studio 项目右侧 gradle中,直接双击运行
AS中直接可视化运行.png - 方式2,可以在Android Studio Terminal命令行中输入
gradlew tinkerPatchDebug
如下图
gradlew tinkerPatchDebug命令.png
等待执行完成,出现下图,即为成功:
命令gradlew tinkerPatchDebug运行完成.png
下图的文件,就是官网所说的patch_signed_7zip.apk文件:
4,将生成的patch_signed_7zip.apk推送到手机
- 可以直接粗暴的拷贝到SD卡
- 也可以执行,官网的命令
adb push ./app/build/outputs/tinkerPatch/debug/patch_signed_7zip.apk /storage/sdcard0/
5,然后按照官网的4 ,5步骤
点击LOAD PATCH按钮, 如果看到patch success, please restart process的toast,即可锁屏或者点击KILL SELF按钮
我们可以看到的确出现了I am on patch onCreate日志,同时点击SHOW INFO按钮,显示补丁包的确已经加载成功了。
上面记录了,官网demo运行起来中遇到的坑,也是记录一下,方便查阅。