[Android热修复] 简要设计方案

2017-01-14 10:24:03来源:http://www.jianshu.com/p/9a1534981434作者:YoKey人点击

第七城市

经过上一篇的热修复技术选型之后,我们需要设计一个热修复结构方案。下面提供的方案虽然是针对RocooFix,但仍适用于大部分热修复技术库,欢迎探讨。


注意事项

1、patch.jar应该尽可能存储在本机内存,而不是在SD卡等外置内存;


2、patch.jar每次启动都会加载,所以不能在第一次加载完成后删除补丁(QQ空间方案);


3、每次patch的开发应该在在线上版本的TAG基础上修改。


客户端加载patch

在下载完patch后,根据请求查询patch信息时返回的字段,决定是否需要弹出对话框,提示类似:


“修复了一个BUG,是否需要退出重新进入?”的对话框。


若确定,则直接退出进程;否则,在正常退出App时,改为退出进程。


热修复结构设计

重点解决4个方面的问题:


1、网络通道:使用pull还是push。目前暂定pull,即每次进入app时请求是否有patch信息,后续可以通过channel走push;


2、patch信息管理:包括覆盖率,运行状态等等;


3、安全校验:校验补丁文件,暂定用md5校验;


4、回滚设计:在App进入时若发生崩溃,则可以回滚到上个patch的状态或者线上版本。


设计图如下:



热修复设计图

暂时想到这些,若有未考虑周全的地方,欢迎留言探讨~




第七城市

最新文章

123

最新摄影

微信扫一扫

第七城市微信公众平台