校导周鹏 | 安卓主流热更新机制的简单对比分析
发布时间:2023-08-23 15:17:39 作者:百成计划 浏览量:866
1.什么是热更新?
热更新,是对hot update 或者 hot fix的翻译,计算机术语,表示在不停机的前提下对系统进行更改。此技术通常用于服务端软件的实时更新中。随着移动应用的普及,各类中、大型应用逐渐出现,为了缩短APP更新时间和减少流量,这一软件部署实施机制也随之引入APP中。
2.热更新的优势
我们对比一下使用几种更新机制的流程(原始APK总大小17M)
◆ 常规流程(无热更新)
◆ 自动更新(无热更新)
◆ 热更新流程
优势很明显:
◇ 流程更少;
◇ 更新时间更短;
◇ 无需切换APP即可完成更新,持续交互体验更好。
最终带来的好处:实时修复bug和发布新版本、推广新功能成本更低,效果更明显。
3.行业关于热更新方案机制对比
目前热更新技术各大APP厂商都在持续高度关注,这里简单分析对比一下比较有代表意义的实现机制。
◆ Facebook的React Native for Android和阿里巴巴的LuaViewSDK
Facebook 于 2015 年 9 月 15 日发布了 React Native for Android, 把 Web 和原生平台的JavaScript 开发技术扩展到了 Google 的流行移动平台。APP端将一些功能性组件封装好,提供给react js调用,具体的业务逻辑由js脚本实现,在热更新的时候,只需更新js脚本文件即可,实现热更新机制比较简单,支持跨平台。
阿里巴巴集团聚划算无线开发团队于2015年8月30日开源其在手机淘宝、手机天猫中的聚划算模块,和俪人购客户端中使用的核心框架LuaViewSDK,主要解决客户端开发中的两个常见问题:
◇ 相同的业务逻辑需要在 IOS 和 Android 平台各实现一次,除了开发成本高,也会引入体验的细微差别。是否有一种技术方案可以做到一份代码,两个平台运行,行为相同 ?
◇ 移动 APP 开发领域,要极致体验发布就不灵活(Native),要灵活发布就没有极致体验(H5)。有没有一种技术方案可以兼顾极致的体验和灵活的发布?
这两种开源实现机制基本一样,特性也完全一样,不同之处就是脚本所使用的语言不一致。
优势:实现热更新机制成本很低
缺点:迁移项目成本较高,包括人力资源成本和时间成本,项目开发流程和测试流程都需调整。
◆ QQ空间团队使用的HotFix框架
实现机制简单点说就是用ClassLoader加载机制,覆盖掉有问题的方法,然后我们所谓的补丁就是将有问题和需要更新的类打成一个包。该实现机制基本和本文所述的热更新吻合,适用场景更偏重bug的修复。
优势:实现成本相对较低
缺点:兼容性和稳定性有待检验
◆ 阿里巴巴的AndFix
AndFix是通过比较dex文件,替换类中的方法来实现更新,适合bug的修复。
优势:更新前后占用内存相差无几,性能损失最小。
缺点:技术要求高,兼容性和稳定性不够。
以上简单介绍了热更新的三种主流实现机制,各有利弊,选择技术方案时需进一步根据团队和项目情况考虑,切勿盲从,每一次的技术升级都是对团队和项目管理者的考验。
作者简介:周鹏,英文名Ideson,校导Android Team Leader,在嵌入式应用、服务端、移动应用开发领域有着丰富的开发和项目管理经验,曾任北京某创业公司技术总监。
收藏