Android 热修复入门- Tinker Demo

最初写过Android 热修复入门-Demo实例
这是个理解热修复的很好的例子。
现在想介绍一下 腾讯热修复 Tinker 的实例,也相对简单,并未涉及原理介绍.

1. 下载代码

https://github.com/Tencent/tinker/tree/master

项目结构图.png

项目结构如上图所示, 有Tinker 的源码 和 示例代码

2. 使用AndroidStudio 打开实例项目

实例项目是: tinker-sample-android 根目录下的 build.gradle

File - Open - 选择 tinker-
tinker sample 工程.png

3. 编译apk

Build - build apk
会提示 build error:

Execution failed for task ‘:app:tinkerProcessD‘ . tinkerId is not set!!!

解决办法:
在根目录的 gradle.properties 配置中 , 设置 TINKER_ID 参数

TINKER_ID=1.0
TINKER_ENABLE=true

完整如下:


tinker id 添加.png

重新编译则可以成功, 安装apk

参考:https://blog.csdn.net/shulianghan/article/details/116050746

4. 加载补丁包

打开应用, 点击Load patch ,然后点击 show info ,并没有起效。


app 界面.png
patch 没加载.png

日志提示:

2022-10-30 09:33:29.822 9703-9703/tinker.sample.android V/Tinker.SamplePatchListener: receive a patch file: /storage/emulated/0/patch_signed_7zip.apk, file size:0
2022-10-30 09:33:29.824 9703-9703/tinker.sample.android I/Tinker.DefaultLoadReporter: patch loadReporter onLoadPatchListenerReceiveFail: patch receive fail: /storage/emulated/0/patch_signed_7zip.apk, code: -2

明显,我们并没有生成 patch 文件

5. 生成补丁包(Patch 文件)

Android Studio -> View ->Tool Windows -> Gradle
找到 Tasks -> tinkerPatchDebug -> 双击即可运行生成操作


patch 生成的gradle task.png

这时报错:

tinker-sample-android\app\build\bakApk/app-debug-0424-15-02-56.apk is not exist

原因是旧的apk 信息不对。

解决办法:
(1) 打开文件夹 :tinker-sample-android\app\build\bakApk
里面有几个文件,前缀都是 app-debug-1030-09-16-49

bakapk.png

把这个值替换掉 app/build.gradle 下的(共4处):

ext {
    //for some reason, you may want to ignore tinkerBuild, such as instant run debug build?
    tinkerEnabled = true

    //for normal build
    //old apk file to build patch apk
    tinkerOldApkPath = "${bakPath}/app-debug-1030-09-16-49.apk"
    //proguard mapping file to build patch apk
    tinkerApplyMappingPath = "${bakPath}/app-debug-1030-09-16-49.txt"
    //resource R.txt to build patch apk, must input if there is resource changed
    tinkerApplyResourcePath = "${bakPath}/app-debug-1030-09-16-49.txt"

    //only use for build all flavor, if not, just ignore this field
    tinkerBuildFlavorDirectory = "${bakPath}/app-debug-1030-09-16-49"
}

然后重新双击 tinkerPatchDebug

则在路径 tinker-sample-android\app\build\outputs\apk\tinkerPatch\debug
生成 app-debug-patch_signed_7zip.apk


生成的patch apk.png

参考:https://developer.aliyun.com/article/863912

6. 拷贝补丁包到手机根目录下

先将上面生成的文件 app-debug-patch_signed_7zip.apk 重命名为 patch_signed_7zip.apk
(因为代码里用到的是 patch_signed_7zip.apk)

即确保存在 storage/emulated/0/patch_signed_7zip.apk


拷贝patch apk到手机根目录.png

7.重新build apk

Build ->Build apk

8. 再次加载补丁包

进入App -> load patch -> show info
(如果不起效,请尝试先 Kill self 然后再 Load patch -> show info)
成功则会显示 : patch is loaded ...

成功了 patch is load.png

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 215,539评论 6 497
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 91,911评论 3 391
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 161,337评论 0 351
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 57,723评论 1 290
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 66,795评论 6 388
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 50,762评论 1 294
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 39,742评论 3 416
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 38,508评论 0 271
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 44,954评论 1 308
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 37,247评论 2 331
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 39,404评论 1 345
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 35,104评论 5 340
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 40,736评论 3 324
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 31,352评论 0 21
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,557评论 1 268
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 47,371评论 2 368
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 44,292评论 2 352

推荐阅读更多精彩内容