最新微信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

相关文章

修复已被利用的高危漏洞! macOS Sequoia 15.6.1发布

《修复已被利用的高危漏洞!macOSSequoia15.6.1发布》苹果公司于今日发布了macOSSequoia15.6.1更新,这是去年9月推出的macOSSequoia操作... MACOS Sequoia 15.6.1 正式发布!此次更新修复了一个已被黑客利用的严重安全漏洞,并解决了部分中文用户反馈的

Python与MySQL实现数据库实时同步的详细步骤

《Python与MySQL实现数据库实时同步的详细步骤》在日常开发中,数据同步是一项常见的需求,本篇文章将使用Python和MySQL来实现数据库实时同步,我们将围绕数据变更捕获、数据处理和数据写入这... 目录前言摘要概述:数据同步方案1. 基本思路2. mysql Binlog 简介实现步骤与代码示例1

基于C#实现PDF转图片的详细教程

《基于C#实现PDF转图片的详细教程》在数字化办公场景中,PDF文件的可视化处理需求日益增长,本文将围绕Spire.PDFfor.NET这一工具,详解如何通过C#将PDF转换为JPG、PNG等主流图片... 目录引言一、组件部署二、快速入门:PDF 转图片的核心 C# 代码三、分辨率设置 - 清晰度的决定因

Java中HashMap的用法详细介绍

《Java中HashMap的用法详细介绍》JavaHashMap是一种高效的数据结构,用于存储键值对,它是基于哈希表实现的,提供快速的插入、删除和查找操作,:本文主要介绍Java中HashMap... 目录一.HashMap1.基本概念2.底层数据结构:3.HashCode和equals方法为什么重写Has

Java Scanner类解析与实战教程

《JavaScanner类解析与实战教程》JavaScanner类(java.util包)是文本输入解析工具,支持基本类型和字符串读取,基于Readable接口与正则分隔符实现,适用于控制台、文件输... 目录一、核心设计与工作原理1.底层依赖2.解析机制A.核心逻辑基于分隔符(delimiter)和模式匹

Java使用正则提取字符串中的内容的详细步骤

《Java使用正则提取字符串中的内容的详细步骤》:本文主要介绍Java中使用正则表达式提取字符串内容的方法,通过Pattern和Matcher类实现,涵盖编译正则、查找匹配、分组捕获、数字与邮箱提... 目录1. 基础流程2. 关键方法说明3. 常见场景示例场景1:提取所有数字场景2:提取邮箱地址4. 高级

Unity新手入门学习殿堂级知识详细讲解(图文)

《Unity新手入门学习殿堂级知识详细讲解(图文)》Unity是一款跨平台游戏引擎,支持2D/3D及VR/AR开发,核心功能模块包括图形、音频、物理等,通过可视化编辑器与脚本扩展实现开发,项目结构含A... 目录入门概述什么是 UnityUnity引擎基础认知编辑器核心操作Unity 编辑器项目模式分类工程

spring AMQP代码生成rabbitmq的exchange and queue教程

《springAMQP代码生成rabbitmq的exchangeandqueue教程》使用SpringAMQP代码直接创建RabbitMQexchange和queue,并确保绑定关系自动成立,简... 目录spring AMQP代码生成rabbitmq的exchange and 编程queue执行结果总结s

Springboot项目构建时各种依赖详细介绍与依赖关系说明详解

《Springboot项目构建时各种依赖详细介绍与依赖关系说明详解》SpringBoot通过spring-boot-dependencies统一依赖版本管理,spring-boot-starter-w... 目录一、spring-boot-dependencies1.简介2. 内容概览3.核心内容结构4.

MySQL中优化CPU使用的详细指南

《MySQL中优化CPU使用的详细指南》优化MySQL的CPU使用可以显著提高数据库的性能和响应时间,本文为大家整理了一些优化CPU使用的方法,大家可以根据需要进行选择... 目录一、优化查询和索引1.1 优化查询语句1.2 创建和优化索引1.3 避免全表扫描二、调整mysql配置参数2.1 调整线程数2.