高德车载导航的差分更新优化实践

高德车载导航为解决车载设备性能限制导致的更新问题,采用bsdiff差分更新方案并进行性能优化。原方案存在内存消耗大、耗时长的问题。通过引入Chromium的bsdiff优化版,内存消耗降低,但耗时仍较长。进一步优化包括内存优化和算法优化,如使用滑动窗口缓冲区和RLE压缩算法,最终将更新时间缩短至3~5秒,内存消耗控制在2MB以内,提升了用户体验。
摘要由CSDN通过智能技术生成

导读

随着车载设备联网化,越来越多的车载设备从离线走到了线上。高德车载导航也早已从过去的离线安装包更新演进到了在线迭代更新。但原车载设备的Android硬件配置远低于手机,主要表现在处理器主频低、内存和存储空间有限,导致车载导航在车机上会出现无法下载新版本数据包、更新过程耗时长导致卡顿的情况,对导航应用的性能提出了要求。

为提高用户体验,高德技术团队立项解决了该问题。本文小结了高德车载导航在版本自更新演进过程中二进制差分解决方案的性能优化实践。

差分更新方案比较

对于应用程序的版本更新迭代,除了分发全量的安装包,还有一种更低成本的方式是分发增量包,即通过下发前后两个版本的差异部分(这个过程下面简称Diff),然后在客户端对原版本进行补丁更新(这个过程下面简称Patch)。因此也叫差分更新。

业内比较流行的差分方案主要有: bsdiff、Xdelta3和Courgette。最后一个方案Courgette来自于谷歌,主要解决的是可执行文件的差分,而导航更新资源不仅包含可执行文件,还包含了图片等各种资源文件。所以,我们主要对比bsdiff和Xdelta3方案。

bsdiff和Xdelta3方案比较

下面是我们对选取的几个文件做的bsdiff和Xdelta3差分性能对比:

<
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值