企业🤖AI Agent构建引擎,智能编排和调试,一键部署,支持私有化部署方案 广告
一、简述 Tinker 是微信官方的Android 热补丁解决方案,它支持动态下发代码、So 库以及资源,让应用能够在不需要重新安装的情况下实现更新。当然,你也可以使用Tinker 来更新你的插件。 上面是Tinker 官方Wiki 的原话,意思嘛相信大家都看得明白,但注意啦,它并没有说Tinker 可以让补丁实时生效(也叫无感知更新),它必须在打上补丁后重启App(重启进程),补丁才会发挥作用,这跟阿里的热修复方案有着本质的区别。在开始集成Tinker 之前,我们有必要了解清楚,Tinker 有那些不足,下面是Tinker 的已知问题: 1.Tinker 不支持修改AndroidManifest.xml,Tinker 不支持新增四大组件(1.9.0支持新增非export 的Activity); 2.由于Google Play 的开发者条款限制,不建议在GP 渠道动态更新代码; 3.在Android N 上,补丁对应用启动时间有轻微的影响; 4.不支持部分三星android-21 机型,加载补丁时会主动抛出"TinkerRuntimeException:checkDexInstall failed"; 5.对于资源替换,不支持修改remoteView。例如transition 动画,notificationicon 以及桌面图标。 上述不足是由于原理与系统限制,我们在编程中要清楚这些,尽量避免以上问题的出现。 尽管Tinker 有着这些“小缺点”,但也丝毫不影响Tinker 在国内众多热修复方案中的地位,一方面Tinker 是开源的(这意味着Tinker 本身免费),另一方面则是Tinker 已运行在微信的数亿Android 设备上(说明该方案相当稳定)。下面 开始进行对Tinker 的集成与使用。