Tinker Versions Save

Tinker is a hot-fix solution library for Android, it supports dex, library and resources update without reinstall apk.

v1.9.14.26.3

3 months ago

Bugfix & ChangeLog

  1. 回退: 改用新的资源注入方式避免patch加载后多消耗两份resources.apk的虚拟内存。(此方法在部分机器上存在兼容性问题,会导致资源查找失败)
  2. 回退: 系统主题发生变化时避免接入的App自杀。(不自杀会导致App资源id和资源内容错配)
  3. 将Tinker的service改为no-sticky方式启动,避免自动拉起进程以满足“App未经用户操作禁止自启动”的合规要求。
  4. 编译时问题修复:避免当所有满足loader pattern的class都被分到了非主dex时编译失败。

v1.9.14.26

5 months ago

Bugfix & ChangeLog

  1. 改用新的资源注入方式避免patch加载后多消耗两份resources.apk的虚拟内存。
  2. 兼容 Android 14 对动态加载产物的强制只读要求。
  3. 在收到APPLICATIO_INFO_CHANGED消息后重新注入patch 资源,避免部分ROM上更换壁纸或主题后导致加载了patch的app自杀的问题。
  4. 修复了一些导致多进程间代码版本不一致的问题。

v1.9.14.25.3

8 months ago

Bugfix & ChangeLog

  1. 修复了App提前向LoadedApk 和 Application 中注入ApplicationContext的情况下在 API 28 机器上启动时卡死的问题。
  2. 修复了Patch资源在resources.apk中没有按四字节对齐,导致patch加载后内存开销变大的问题。

v1.9.14.25.2

10 months ago

Bugfix & ChangeLog

  1. 修复了部分机型上无法加载新增资源及修改资源不生效的问题(flutter加载asset时必现)。
  2. 新增了异步触发patched dex的dex2oat并且不等待其执行完毕的patch合成接口,以满足开启时长较短的App紧急修复问题时需要Patch能快速生效的需求。

v1.9.14.25.1

1 year ago

Bugfix & ChangeLog

  1. 修复了 anim 资源新增、修改检测逻辑,在 anim 资源发生新增或修改时会中断编译。
  2. 获取当前进程名的方法在 api level >= 18 的机器上优先使用反射 ActivityThread 的方式实现,若失败则改用 BufferedReader 读 proc 的方式实现。

v1.9.14.25

1 year ago

Bugfix & ChangeLog

  1. 增加了32位 Android N 及更旧的系统上使用解释模式触发 dexopt 的开关以帮助减少 32位上 VmSize 的开销。
  2. 修复部分机型上资源有变更时 patch 失败的问题。
  3. base包更新或有新 patch 合成成功后删除老 patch 的逻辑改为异步实现以降低启动耗时。
  4. dexopt 触发重试次数缩减到 10 次,避免部分机型 apply patch 耗时太长。

v1.9.14.24

1 year ago

Bugfix & ChangeLog

  1. 修复了 R8 生成的特殊 DebugInfo 导致编译失败的问题。
  2. 增加 performSecondaryDexOpt 的重试次数,在重试失败后再尝试 registerDexModule,以尽量减小 Android R 上 odex 没有生成导致的性能开销。
  3. 在 performSecondaryDexOpt 重试无效前不在 OPPO、VIVO、XIAOMI、REDMI 的 Android S 或更新的系统上调 registerDexModule,规避已知的性能问题。
  4. 更新 getProcessName 的实现,在 Android P 及更新的系统上优先尝试 Application.getProcessName() 方法。

v1.9.14.23.1

1 year ago

Bugfix & ChangeLog

  1. 修复了 Android 4.4 设备上 getCurrentInstructionSet() 失败的问题。

v1.9.14.23

1 year ago

Bugfix & ChangeLog

  1. 优化了判断 resources.apk 被意外修改导致资源 patch 失效的检测逻辑。
  2. 修复了连续两次 patch 中间更新了 base 包时可能导致最后一次 patch 失效的问题。
  3. 在 Patch 加载不成功时 installNativeLibraryABIWithoutTinkerInstalled() 方法不再注入 patch so 路径,避免 dex 和 so 不一致的问题。

v1.9.14.22

1 year ago

Bugfix & ChangeLog

  1. 修复了偶现的 Tinker ID 注入失败导致 Patch 包编译失败的问题。