Releases: Tencent/tinker
Releases · Tencent/tinker
v1.9.13.2
v1.9.13.1
Bugfix & ChangeLog
- Fix #1074 ( 感谢 @noproxy !)
- Fix Android Q上因为App的默认ClassLoader可能不为PathClassLoader导致补丁加载失败。
- Fix #1084 ( 感谢 @noproxy !这里他提供了一个临时方案,即对每个Dex都尝试移除loader pattern中指定的class,并忽略关于loader class变化的警告。切记不要在minSDK < 21的情况下开启此方案!!)
- 增加对AGP 3.4+上R8的支持。(感谢 @lizhangqu !)
- 暂时回退为使用startService来启动Patch进程,解决部分系统禁用JobScheduler的问题。
- Fix #1093
v1.9.13
Bugfix & ChangeLog
- 将Patch Apply的重试次数增加到20;
- 将Tinker运行时库对support-annotations的依赖改为compileOnly,避免接入时引入整个appcompat包;
- 修复加固模式下patch无法加载成功的问题;
- 修复Android P下patch无法加载成功的问题;
- 修复后台进程在patch加载时偶尔发生ANR的问题(主进程对patch.info的更新改为先做oat再更新);
- 修复P中因apache类被内联导致的crash;(感谢@lizhangqu)
- 引入shadowJar插件,彻底解决生成的Tinker CLI工具报ClassNotFound的问题。
注意,对于主dex中的类数量莫名变大的问题,目前已确定是minSDK=21时AGP启用了native-multidex,导致gradle中配置的maindex list参数被忽略引起的。在找到通用的规避方案之前暂时只能通过给dx附加参数指定main dex class file的方式规避了。
v1.9.12
v1.9.11
2019年2月23日 更新:
JobIntentService在部分机型上并不可靠,导致补丁合成大量失败,最近打算回退这部分变更。使用独立SDK Jar对外提供补丁生成服务的用户请更新代码到1.9.12再运行buildTinkerSdk生成新版本jar修复一个安全漏洞,其他用户请暂时回退到1.9.9,等待1.9.13版本发布。
Bugfix
- 引入JobSchedulerService重新实现了TinkerPatchService和TinkerPatchResultService。
- 修复加固模式下崩溃的问题。
- Demo和插件的Android Gradle Plugin版本统一改成了3.2.1,gradle version统一改为了4.6。建议App将gradle wrapper配置中的版本也改成4.6或4.7,Android Gradle Plugin版本改为3.2.1。
- TinkerApplication中对ApplicationLike的反射调用增加了Method缓存,避免性能问题。
!!注意!!
- 覆盖率偏低时请检查App中实现TinkerPatchResultService的类在manifest中是否有声明android.permission.BIND_JOB_SERVICE权限。
v1.9.9
Bugfix
- 彻底隔离了Application和ApplicationLike,避免内联导致的各种问题。
- 修复了华为反馈的apache legacy引起inline ClassLoader check失败的问题。
- 修复了资源中的tools:前缀导致patch生成失败的问题。
- 修改了JobScheduler的task id,避免与app业务中使用的task id冲突导致在SDK >= 26的机器上补丁生成失败的问题。
- 加固模式下拆分了包含变更类的Dex,避免变更过多导致65536错误。
Enhancement
- 新增aapt2支持。(由@lizhangqu贡献实现,非常感谢!!)
!!注意!!
- 由于ApplicationLike已彻底与Application隔离,为了避免AndroidNClassLoader继续将相关的类当成loader类而回滚到系统ClassLoader去加载,ApplicationLike、DefaultApplicationLike、ApplicationLifeCycle的包名也做了修改。升级到此版本后请将代码中对这三个类的全名引用中的包名从“com.tencent.tinker.loader.app.XXX”改成“com.tencent.tinker.entry.XXX"
v1.9.8
v1.9.6 (Bugfix for 1.9.5)
v1.9.5
v1.9.2 bugfix for 1.9.1
- 修复与keepDexApply有关的编译失败问题;
- 适配keepDexApply使其支持Android Gradle Plugin 3.0;
- 修复了一些coverity扫出的bug;
- 修复manifest中tinker_id变化导致无法打出patch包的bug。