初识 tinker

2016-09-25 Roger 更多博文 » 博客 » GitHub »

Tinker

原文链接 http://www.rogerblog.cn/2016/09/25/tinker/
注:以下为加速网络访问所做的原文缓存,经过重新格式化,可能存在格式方面的问题,或偶有遗漏信息,请以原文为准。


初识 Tinker

昨天中午微信开源了动态修复解决方案 tinker :https://github.com/Tencent/tinker

是不是激动人心的想要试一下呢?下面记录一下如何运行 tinker 的 Demo 工程。

首先下载 tinker 的工程,打开 tinker-sample-android 工程,打开后如下图:

image

阅读 WIKI ,里面有各种参数的说明和 Demo 的运行方法 Wiki

看到 Demo 使用方法 LINK

运行 1、2 步,应该都不会有大问题,but 第三步需要一点提示,在修改 gradle 文件后,如何调用 tinkerPatchDebug 呢? 方法是使用在 Terminal 中运行 ./gradlew tinkerPatchDebug ,如图所示:

image

在运行时你应该会碰到一个错误:

[ignoreWarning is false, but resources.arsc is changed, you should use applyResourceMapping mode to build the new apk, otherwise, it may be crash at some times]

这个错误的原因是你没有指定 applyResourceMapping 的 R.txt 的文件,所以需要将之前生成的 R.txt 赋值到 ext 中的 applyResourceMapping 中,如下图所示:

image

解决这个问题后就能按照 WIKI 的提示完成挣个热修复的工作,but 注意在 push apk 的时候有的手机 sd 卡的位置是不同的,避免推送失败。

以上就是运行 tinker Demo 所有需要注意的点,牛刀小试后,接下来就好好解析和拆解其中的原理了~! Frighting !