最新微信Tinker 热修复平台接入教程(超详细)

目录

Tinker接入文档

1 Tinker简介

1.1Tinker优点

1.2 Tinker缺点

2 Tinker 接入过程

2.1 配置过程

2.2 使用过程

2.3 注意事项


Tinker接入文档

1 Tinker简介

1.1Tinker优点

1.2 Tinker缺点

1.Tinker不支持修改AndroidManifest.xml,Tinker不支持新增四大组件(1.9.0支持新增非export的Activity);

2.由于Google Play的开发者条款限制,不建议在GP渠道动态更新代码;

3.在Android N上,补丁对应用启动时间有轻微的影响;

4.不支持部分三星android-21机型,加载补丁时会主动抛出"TinkerRuntimeException:checkDexInstall failed";

5.对于资源替换,不支持修改remoteView。例如transition动画,notification icon以及桌面图标。

   关于Tinker运行机制和详细对比请参考“微信Android热补丁实践演进之路”

2 Tinker 接入过程

2.1 配置过程

注意:本文基于完全新建项目之上,加粗文字是重点。

相关资源地址:https://download.csdn.net/download/sw1995126/10706198

 

最新微信Tinker 热修复平台接入教程(超详细)_第1张图片

第一步在build.gradle添加

classpath ("com.tinkerpatch.sdk:tinkerpatch-gradle-plugin:${TINKERPATCH_VERSION}") { changing = true }

如下:

最新微信Tinker 热修复平台接入教程(超详细)_第2张图片

并同时在gradle.properties中添加

TINKERPATCH_VERSION=1.2.6

如下:

最新微信Tinker 热修复平台接入教程(超详细)_第3张图片

否则会出现错误:

原因:

没有指定TINKERPATCH_VERSION版本号

补充:

建议使用最新版本地址:http://tinkerpatch.com/Docs/changelog,目前是1.2.8,改版本不用变其它的但是不同版本之间不能使用。

第二步在app/build.gradle加入Tinker的sdk

compile("com.tinkerpatch.sdk:tinkerpatch-android-sdk:${TINKERPATCH_VERSION}") { changing = true }

如下:

最新微信Tinker 热修复平台接入教程(超详细)_第4张图片

第三步在app目录下添加tinkerpatch.gradle

 如下:

最新微信Tinker 热修复平台接入教程(超详细)_第5张图片

可以将我提供的tinkerpatch.gradle直接复制过去。具体sdk配置参考

http://tinkerpatch.com/Docs/SDK

然后在app/build.gradle加入

apply from: 'tinkerpatch.gradle'

如下:

第四步 添加初始化 TinkerPatch SDK的类

 这里我们使用的是一键接入功能,也就是官方的Application 类。如需自定义请参考

http://tinkerpatch.com/Docs/SDK的“第四步 初始化 TinkerPatch SDK”

 可以将我提供的SampleApplication.java直接复制到app的Java目录下即可

 如下:

最新微信Tinker 热修复平台接入教程(超详细)_第6张图片

然后需要在app/build.gradle加入代码

multiDexEnabled true

如下:

最新微信Tinker 热修复平台接入教程(超详细)_第7张图片

否则会出现错误:

在SampleApplication.java中

最新微信Tinker 热修复平台接入教程(超详细)_第8张图片

如果还有问题就加入

compile 'com.android.support:multidex:1.0.1'

接着在app/AndroidManifest.xml加入

android:name=".SampleApplication"

如下:

最新微信Tinker 热修复平台接入教程(超详细)_第9张图片

 

2.2 使用过程

为方便查看补丁效果和加快更新速度添加一个Toast和Button。

最新微信Tinker 热修复平台接入教程(超详细)_第10张图片

 

注意:如需在Debug模式调试程序将tinkerpatch.gradle中的

tinkerEnable变为false 就是关闭Tinker功能

设置如下:

最新微信Tinker 热修复平台接入教程(超详细)_第11张图片

 

第一步配置签名

推荐Android studio自带签名工具,否则可能会出现不识别签名的情况

简单介绍下:

在Android studio的菜单栏File下选择Project Structure的Signing

如图:

最新微信Tinker 热修复平台接入教程(超详细)_第12张图片

 

然后在Build Types中选择release

如图:

最新微信Tinker 热修复平台接入教程(超详细)_第13张图片

第二步登录Tinker Platform平台,注册账号进入之后,点击新增app,名字可以随便起如下:

最新微信Tinker 热修复平台接入教程(超详细)_第14张图片

记住appKey,之后点击添加APP版本,版本号不能乱填,这个也要记住,我填的是1.0

如图:

最新微信Tinker 热修复平台接入教程(超详细)_第15张图片

第三步根据在平台上获取到的信息修改tinkerpatch.gradle里的配置

如图:

最新微信Tinker 热修复平台接入教程(超详细)_第16张图片

第四步生成release包(也就是基包)

在Android Studio右上角点击Gradle,然后双击assembleRelese

如图:

最新微信Tinker 热修复平台接入教程(超详细)_第17张图片

 

按照如下路径找到apk,复制并安装到测试工具上

如图:

最新微信Tinker 热修复平台接入教程(超详细)_第18张图片

 

可以观察到如图现象

最新微信Tinker 热修复平台接入教程(超详细)_第19张图片

 

第五步创建补丁包

按照apk的路径修改tinkerpatch.gradle里的配置

如图:

最新微信Tinker 热修复平台接入教程(超详细)_第20张图片

然后修改app的代码

这里把Toast改了

Toast.makeText(this,"这是补丁",Toast.LENGTH_LONG).show();

最后生成补丁包

双击如下图的tinkerPatchRelese

最新微信Tinker 热修复平台接入教程(超详细)_第21张图片

没看见tinker刷新一下

按下图路径找到patch_signed_7zip.apk

最新微信Tinker 热修复平台接入教程(超详细)_第22张图片

第六步发布补丁,最后到平台发布就可以了,点击提交就好了。

如图:

最新微信Tinker 热修复平台接入教程(超详细)_第23张图片

第七步看效果,这里使用Button强制更新,记住一定要打开关闭再打开app才能看到效果。

如图:

最新微信Tinker 热修复平台接入教程(超详细)_第24张图片

2.3 注意事项

1.Tinker的更新是只能针对同一个版本的app更新,时间越久更新包越大,它不能更新app版本。

2.更新的成功率不是100%,有一定的失败率可以通过后台查看

如图:

最新微信Tinker 热修复平台接入教程(超详细)_第25张图片

 

你可能感兴趣的:(Android)