最近在做一个手表项目,由于手表平台对于应用的更新方式有限制,流程比较繁琐,所以考虑使用热更新框架来做,市面上面比较火的就是
(表格1来自Tinker官网)
功能 | Tinker | QZone | AndFix | Robust |
---|---|---|---|---|
类替换 | yes | yes | no | no |
So替换 | yes | no | no | no |
资源替换 | yes | yes | no | no |
全平台支持 | yes | yes | yes | yes |
即时生效 | no | no | yes | yes |
性能损耗 | 较小 | 较大 | 较小 | 较小 |
补丁包大小 | 较小 | 较大 | 一般 | 一般 |
开发透明 | yes | yes | no | no |
复杂度 | 较低 | 较低 | 复杂 | 复杂 |
gradle支持 | yes | no | no | no |
Rom体积 | 较大 | 较小 | 较小 | 较小 |
成功率 | 较高 | 较高 | 一般 | 最高 |
表格2来自sophix官网
平台 | 阿里云移动热修复 | A** | T** | Q** | R** |
---|---|---|---|---|---|
即时生效 | yes | yes | no | no | yes |
性能损耗 | 较小 | 较小 | 较大 | 较大 | 较小 |
侵入式打包 | 无侵入式打包 | 无侵入式打包 | 依赖侵入式打包 | 依赖侵入式打包 | 依赖侵入式打包 |
Rom体积 | 较小 | 较小 | 较大 | 较小 | 较小 |
接入复杂度 | 傻瓜式接入 | 比较简单 | 复杂 | 比较简单 | 复杂 |
补丁包大小 | 较小 | 较小 | 较小 | 较大 | 一般 |
全平台支持 | yes | yes | yes | yes | yes |
类替换 | yes | yes | yes | yes | no |
so替换 | yes | no | yes | no | no |
资源替换 | yes | no | yes | yes | no |
总体相对来说,Tinker和Sophix比较有优势,并且都提供布丁部署服务,不过从售后还有成本上面来讲,Sophix相对比较符合我们的预期。具体报价可以参考他们的官网。
选型确定以后,接下来是要预演接入了。本身Sophix的官方文档就介绍的比较清楚了,我把链接贴到这里,大家可以看Sophix快速接入文档
我说一下我在接入过程中遇到的坑,希望大家能够少走冤枉路。
- 一定要仔细按照文档来,不要看一眼,自以为就懂了。大部分坑就是这样掉进去的,我就遇到打了patch,并且上传到控制台,但是就是忘记发布,导致怎么着都更新不成功。我当时也没有耐心看文档,直接使用官网提供的debug工具测试,发现可以正常加载本地的patch……一脸懵逼,总觉得哪里不对,最后我还厚脸皮的提了一个阿里工单,通过跟对方解释,才意识到自己在控制台的patch,但是没有点击发布……。给阿里技术支持五星好评
其实本来想写一堆的……,但是考虑到都是自己不仔细导致的,就算了。给自己提个醒,文档以后还是一行行看。别急……