当前位置:网站首页>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
边栏推荐
猜你喜欢
随机推荐
精彩联动 | OpenMLDB Pulsar Connector原理和实操
栈stack
JS advanced web page special effects (pink teacher notes)
Jetpack之dataBinding
微文案也能提升用户体验
C语言实现简易扫雷(附带源码)
STM32 基于固件库的工程模板的建立
The Summer of Open Source 2022 is coming | Welcome to sign up for the OpenMLDB community project~
Promise 中状态改变和回调执行先后顺序 和promise多次回调
Regular expression replacement for batch quick modification code
JS案例练习(pink老师经典案例)
STM32学习笔记(白话文理解版)—外部IO中断实验
关于openlayer中swipe位置偏移的问题
电商机会:私域
产品经理的基础知识
Argparse模块 学习
Use c language to implement tic-tac-toe chess (with source code, you can run it directly)
场景驱动的特征计算方式OpenMLDB,高效实现“现算先用”
openlayer中实现截图框截图的功能
IIC 和 SPI