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

2024-02-29 06:32

本文主要是介绍最新微信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

 

第一步在build.gradle添加

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

如下:

并同时在gradle.properties中添加

TINKERPATCH_VERSION=1.2.6

如下:

否则会出现错误:

原因:

没有指定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 }

如下:

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

 如下:

可以将我提供的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目录下即可

 如下:

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

multiDexEnabled true

如下:

否则会出现错误:

在SampleApplication.java中

如果还有问题就加入

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

接着在app/AndroidManifest.xml加入

android:name=".SampleApplication"

如下:

 

2.2 使用过程

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

 

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

tinkerEnable变为false 就是关闭Tinker功能

设置如下:

 

第一步配置签名

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

简单介绍下:

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

如图:

 

然后在Build Types中选择release

如图:

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

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

如图:

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

如图:

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

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

如图:

 

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

如图:

 

可以观察到如图现象

 

第五步创建补丁包

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

如图:

然后修改app的代码

这里把Toast改了

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

最后生成补丁包

双击如下图的tinkerPatchRelese

没看见tinker刷新一下

按下图路径找到patch_signed_7zip.apk

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

如图:

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

如图:

2.3 注意事项

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

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

如图:

 

这篇关于最新微信Tinker 热修复平台接入教程(超详细)的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/757864

相关文章

Knife4j+Axios+Redis前后端分离架构下的 API 管理与会话方案(最新推荐)

《Knife4j+Axios+Redis前后端分离架构下的API管理与会话方案(最新推荐)》本文主要介绍了Swagger与Knife4j的配置要点、前后端对接方法以及分布式Session实现原理,... 目录一、Swagger 与 Knife4j 的深度理解及配置要点Knife4j 配置关键要点1.Spri

Spring IoC 容器的使用详解(最新整理)

《SpringIoC容器的使用详解(最新整理)》文章介绍了Spring框架中的应用分层思想与IoC容器原理,通过分层解耦业务逻辑、数据访问等模块,IoC容器利用@Component注解管理Bean... 目录1. 应用分层2. IoC 的介绍3. IoC 容器的使用3.1. bean 的存储3.2. 方法注

MySQL 删除数据详解(最新整理)

《MySQL删除数据详解(最新整理)》:本文主要介绍MySQL删除数据的相关知识,本文通过实例代码给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友参考下吧... 目录一、前言二、mysql 中的三种删除方式1.DELETE语句✅ 基本语法: 示例:2.TRUNCATE语句✅ 基本语

Python设置Cookie永不超时的详细指南

《Python设置Cookie永不超时的详细指南》Cookie是一种存储在用户浏览器中的小型数据片段,用于记录用户的登录状态、偏好设置等信息,下面小编就来和大家详细讲讲Python如何设置Cookie... 目录一、Cookie的作用与重要性二、Cookie过期的原因三、实现Cookie永不超时的方法(一)

Qt QCustomPlot库简介(最新推荐)

《QtQCustomPlot库简介(最新推荐)》QCustomPlot是一款基于Qt的高性能C++绘图库,专为二维数据可视化设计,它具有轻量级、实时处理百万级数据和多图层支持等特点,适用于科学计算、... 目录核心特性概览核心组件解析1.绘图核心 (QCustomPlot类)2.数据容器 (QCPDataC

深度解析Java DTO(最新推荐)

《深度解析JavaDTO(最新推荐)》DTO(DataTransferObject)是一种用于在不同层(如Controller层、Service层)之间传输数据的对象设计模式,其核心目的是封装数据,... 目录一、什么是DTO?DTO的核心特点:二、为什么需要DTO?(对比Entity)三、实际应用场景解析

SpringBoot整合liteflow的详细过程

《SpringBoot整合liteflow的详细过程》:本文主要介绍SpringBoot整合liteflow的详细过程,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋...  liteflow 是什么? 能做什么?总之一句话:能帮你规范写代码逻辑 ,编排并解耦业务逻辑,代码

Go语言中nil判断的注意事项(最新推荐)

《Go语言中nil判断的注意事项(最新推荐)》本文给大家介绍Go语言中nil判断的注意事项,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友参考下吧... 目录1.接口变量的特殊行为2.nil的合法类型3.nil值的实用行为4.自定义类型与nil5.反射判断nil6.函数返回的

浏览器插件cursor实现自动注册、续杯的详细过程

《浏览器插件cursor实现自动注册、续杯的详细过程》Cursor简易注册助手脚本通过自动化邮箱填写和验证码获取流程,大大简化了Cursor的注册过程,它不仅提高了注册效率,还通过友好的用户界面和详细... 目录前言功能概述使用方法安装脚本使用流程邮箱输入页面验证码页面实战演示技术实现核心功能实现1. 随机

java向微信服务号发送消息的完整步骤实例

《java向微信服务号发送消息的完整步骤实例》:本文主要介绍java向微信服务号发送消息的相关资料,包括申请测试号获取appID/appsecret、关注公众号获取openID、配置消息模板及代码... 目录步骤1. 申请测试系统2. 公众号账号信息3. 关注测试号二维码4. 消息模板接口5. Java测试