Google采用档对档修补技术,Android程序更新档最多可减肥90%
扫描二维码
随时随地手机看文章
档对档的修补即是奠基在侦测原始内容的相异处,先将新、旧压缩档解压缩,找出不同之处并进行修补之后,再重新压缩。平均可减少65%的更新档案大小,有些时候甚至可减少90%以上。
你曾担心Android程式更新让传输流量破表吗?Google在本月初发表了新型态的Android程式更新技术,采用了档对档修补(File-by-File patching)平均可减少65%的更新档案大小,有些时候甚至可减少90%以上。
File-by-File patching源自于Archive-patcher开放源码专案,它能够逐个检查压缩档案中的个别档案以进行修补,因此极为节省空间,也支援各种有效的压缩档。
Google Play软体工程师Andrew Hayden举例,假设某本书的作者想要变更书中的一段话,只告诉编辑需要修改的部份比重新寄出整本新书要容易得多,换言之,只进行修补要比下载完整的APK更小也更快速。
Hayden说明,包括APK(Android程式副档名)在内的许多压缩档都是利用Deflate技术进行压缩,Deflate是个很好的资料压缩技术但却很难辨识原始内容的改变,原始内容的一丁点变更都会让压缩版本大为不同,要找出原始内容的不同之处相对容易,但要找出压缩版本的不同之处却很难,让修补没效率。
档对档的修补即是奠基在侦测原始内容的相异处,先将新、旧压缩档解压缩,找出不同之处并进行修补之后,再重新压缩。
有鉴于此一程序将会耗费装置上更多的处理资源,因此需要较新的装置,例如2015年以后出货的行动装置,重新压缩1MB可能需要1秒,若在低阶或旧机种上则会更久一些。
Google实际列出了某些程式采用File-by-File patching之后的更新档案大小差异,例如Google Maps原始档案为32.7MB,但透过File-by-File patching的尺寸则会缩小至9.6MB,Kindle原始档案为52.4MB,利用File-by-File patching即变成8.4MB,而原本16.2MB的Netflix以File-by-File patching方式修补则只需下载1.2MB。
现阶段此一修补技术只适用于启用程式自动更新的Android装置,通常会在手机插上电源且未使用时于背景进行更新,以确保使用者不必等待更新。