Tinker的最佳实践?

为了使补丁的成功率更高,我们在Sample中还做了以下工作:

  • 由于合成进程可能被各种原因杀死,使用UpgradePatchRetry.java来做重试功能,提高成功率;
  • 防止补丁后程序无法启动,使用SampleUncaughtExceptionHandler.java做crash启动保护。这里更推荐的是进入安全模式,使用配置的方式强制清理或者升级补丁;
  • 为了防止BuildConfig的改变导致大量类的变更,使用BuildInfo.java非final的变量来中转。
  • 为了加快补丁应用同时保持用户体验,在SampleResultService.java在应用退入后台或手机灭屏时,才杀掉进程。你也可以在杀掉进程前,直接通过发送broadcast或service intent的方式尽快的重启进程。
  • 把jumboMode打开,防止由于字符串增多导致force-jumbol,导致更多的变更。
  • 使用zip comment方式生成渠道包。更多的使用范例,大家请仔细阅读Sample。Tinker框架支持高度自定义,若使用过程中有任何问题或建议,欢迎联系我们!