Loading...

文章背景图

Tinker:Android 热修复框架接入与补丁打包指南

2026-10-23
0
- 字
- 分钟

Tinker:Android 热修复框架接入与补丁打包指南

一、项目官方信息

项目 信息
GitHub 仓库 Tencent/tinker
中文文档 Tinker Wiki
开源协议 BSD-3-Clause
主要语言 Java
Star 数 约 9.5k
最新版本 v1.9.15.1

Tinker 是腾讯开源的 Android 热修复(hot-fix)解决方案库,支持在不重新安装 APK 的情况下更新 dex、.so 库与资源。它已通过微信审核,广泛用于线上 Bug 紧急修复。Tinker 提供 gradle 插件、命令行工具与示例工程,支持差分补丁、多渠道与灰度发布。

Tinker 仓库封面

二、官方图片

上图为 Tinker 仓库在 GitHub 上的社交预览图。

三、环境要求

  • Android Studio + Gradle;
  • JDK 8;
  • minSdk 与 support library 按 Tinker 要求;
  • 补丁打包需要配置 tinker-gradle-plugin。

四、接入步骤

1. 根 build.gradle 加入插件

buildscript {
    dependencies {
        classpath ('com.tencent.tinker:tinker-patch-gradle-plugin:1.9.1')
    }
}

2. app/build.gradle 应用插件与依赖

dependencies {
    provided('com.tencent.tinker:tinker-android-anno:1.9.1')
    compile('com.tencent.tinker:tinker-android-lib:1.9.1')
}
apply plugin: 'com.tencent.tinker.patch'

3. 改造 Application

用注解生成 Application 是推荐做法:

@DefaultLifeCycle(
    application = "tinker.sample.android.app.SampleApplication",
    flags = ShareConstants.TINKER_ENABLE_ALL)
public class SampleApplicationLike extends DefaultApplicationLike {
    // 原 Application 的 onCreate 等逻辑放这里
}

或手写 TinkerApplication 子类:

public class SampleApplication extends TinkerApplication {
    public SampleApplication() {
        super(
            ShareConstants.TINKER_ENABLE_ALL,
            "tinker.sample.android.app.SampleApplicationLike");
    }
}

4. 加载补丁

TinkerInstaller.install(this, patchPath);

5. 生成差分补丁

用 tinker-gradle-plugin 基于基准包与新包生成差分包;Ark 编译器可用 bash build_patch_dexdiff.sh old=xxx new=xxx。

五、使用方法

  • 修复 dex:修复 Java 代码 Bug;
  • 修复 so 库:更新 native 库;
  • 修复资源:更新 layout、图片等;
  • 补丁差分:基于新旧 APK 生成差分包,体积小;
  • 灰度发布:可按比例下发补丁;
  • ProGuard:自动生成 multiDex keep 混淆配置。

六、常见问题 FAQ

  1. Tinker 能修复什么? dex、so 库、资源三类更新,无需重装 APK。

  2. 为什么要改造 Application? Tinker 需要在加载补丁后再初始化 Application 逻辑,故用 ApplicationLike 代理。

  3. 补丁包怎么生成? 用 tinker-gradle-plugin 基于基准包与新包生成差分包。

  4. 支持哪些资源修复? 支持 res、assets 等资源更新。

  5. 微信能用吗? 已通过微信审核,是官方推荐方案之一。

  6. 混淆怎么处理? Tinker 自动生成 multiDex keep 的 proguard 文件。

七、跳转链接

评论交流

文章目录