当前位置:网站首页>Tinker's self-introduction
Tinker's self-introduction
2022-08-11 06:34:00 【The rest of my life love static】
What is Tinker
Tinker is WeChat's official Android hot patch solution. It supports dynamic distribution of code, So libraries and resources, allowing applications to be updated without reinstallation.Of course, you can also use Tinker to update your plugins.
It mainly includes the following parts:
1. Gradle compilation plugin: tinker-patch-gradle-plugin
2. Core sdk library: tinker-android-lib
3. Command line version for non-gradle compilation users: tinker-patch-cli.jar
Why Tinker
There are many hot patch solutions currently on the market, among which the more famous ones are Ali's AndFix, Meituan's Robust and QZone's super patch solutions, here is an official comparison table: 
Overall:
1. As a native solution, AndFix firstly faces stability and compatibility issues, and more importantly, it cannot achieve class replacement, which requires a lot of additional development costs;
2. Robust compatibilityIt has a high success rate, but like AndFix, it cannot add variables and classes and can only be used as a bugFix solution;
3. The Qzone solution can release product functions, but its main problem is that instrumentation brings Dalvikperformance problems, and the rapid increase in the patch package to solve the memory address problem under Art.
Especially after Android N, due to the modification of the inline strategy of mixed compilation, it is not easy to solve various solutions on the market.The Tinker hot patch solution not only supports the replacement of classes, Sos and resources, but also supports the whole platform of 2.X-8.X (1.9.0 and above support 8.X).Using Tinker we can not only use it as a bugfix, but also as a replacement for feature releases.Tinker is already running on hundreds of millions of Android devices on WeChat, so why don't you use Tinker?
Known issues with Tinker
Due to principle and system limitations, Tinker has the following known issues:
1. Tinker does not support modifying AndroidManifest.xml, and Tinker does not support adding four major components (1.9.0 supports adding non-export activities);
2. Due to the limitations of Google Play's developer terms, it is not recommendedUpdate the code dynamically in the GP channel;
3. On Android N, the patch has a slight impact on the application startup time;
4. Some Samsung android-21 models are not supported, and it will actively throw" when the patch is loaded.TinkerRuntimeException:checkDexInstall failed";
5. For resource replacement, it is not supported to modify remoteView.For example transition animations, notification icons and desktop icons.
Retrieved from https://github.com/Tencent/tinker/wiki
边栏推荐
猜你喜欢
随机推荐
SearchGuard证书配置
USB 枚举过程中8 字节标准请求解析
STM32-中断优先级管理NVIC
ASP.NET MVC 4中实现action的事务功能
vscode插件开发——懒人专用markdown插件开发
Event Preview | On April 23, a number of wonderful sharing sessions of OpenMLDB will come, which will live up to the good time of the weekend
使用ActiveReports制作第一张报表
USB中用NRZI来编码数据
黑马大事件项目
Certificate of SearchGuard configuration
OpenMLDB官网升级,神秘贡献者地图带你快速进阶
OpenMLDB Pulsar Connector: Efficiently connect real-time data to feature engineering
Day 84
STM32学习笔记(白话文理解版)—外部IO中断实验
Day 73
使用c语言实现井字棋(有源码,可以直接运行)
咕咚vs悦跑圈的竞品分析
STM32学习总结(一)——时钟RCC
Argparse模块 学习
第四范式OpenMLDB优化创新论文被国际数据库顶会VLDB录用









