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