每日一博 | React Native 资源更新增量包的优化实践
本文首发于微信公众号“Shopee技术团队” 。 作者:Pei,来自 Shopee 商家服务前端团队。 1. 背景 Shopee 的许多手机应用是原生与 React Native(下文简称 “RN”)的混合(hybrid)应用。在用户打开 App 时,客户端会发起请求查看是否有新版 RN 资源。若有,则后台静默下载最新资源,重新加载 RN,以实现 RN 更新。这样的更新过程免却了用户去 Google Play/App Store 重新下载 App 的麻烦,也能迅速把最新资源推送给所有用户。 另一方面,RN 资源虽会更新迭代,但新旧版的差异其实只占小部分,让用户下载全量资源不仅浪费用户流量,也影响用户对 App 的使用体验(因为后台静默更新仍然会挤占带宽资源)。 自然而然,我们会想到“增量(差量)更新”,客户端仅下载新旧 RN 资源的差异部分。这个差异部分汇总到一个文件里,这个文件被称之为增量包(或补丁包)。下载完成并验证补丁包的合法性后,方可与旧版本合并为新版本,以此节约流量。 考虑到 Shopee 主要市场的网络条件,数据流量的节约尤为重要。但这个增量包应该是怎样的呢?本文会以循序渐...