安卓|安卓迎来“归档”功能,无需担心存储空间不足了

安卓|安卓迎来“归档”功能,无需担心存储空间不足了

文章图片

安卓|安卓迎来“归档”功能,无需担心存储空间不足了

文章图片

【安卓|安卓迎来“归档”功能,无需担心存储空间不足了】安卓|安卓迎来“归档”功能,无需担心存储空间不足了

文章图片


不久前 , Android 13的首个开发者预览版亮相 , 也标志着Android又一次进入到了功能大幅更新的周期 。 而谷歌在宣布了即将于Android系统上推出隐私沙盒技术、降低广告追踪用户的力度后 , 近日在最新的一篇官方博文中透露 , 正在为Android系统开发一种工具 , 可以让用户“应用归档(App Archiving)”某些应用程序 , 以帮助释放设备的存储空间 。



Google Play产品经理Lidia Gaymond在博客中表示 , App Archiving功能旨在解决手机存储空间不足的问题 。 据官方透露的信息显示 , 使用App Archiving可释放多达60%的存储空间 , 但该功能并不会卸载应用、也不会删除用户的个人数据 , 而是通过删减应用的某些功能组件、并将这些功能组件存档 , 以此来达到给手机“瘦身”的目的 。
并且谷歌通过创建一种新的APK格式 , 来实现这一目标 , 而官方则将其称之为Archived APKs 。 据谷歌方面透露 , 相比于传统的APK , Archived APKs要小得多 , 并会保存用户的所有数据、直到用户恢复它 。 该功能将在Bundletool 1.10版本中提供给开发者 , 但在“今年晚些时候”向用户推出该功能前 , 它将不会发挥作用 。



事实上从某种意义上来说 ,  App Archiving是谷歌此前推行的Android App Bundle(简称ABB)格式升级版本 。 而ABB则是谷歌在2018年推出的开源应用安装包格式 , 并且在2021年8月其就已宣布 , 所有提交到Google Play的新应用必须采用AAB格式、不再允许使用APK格式 。
然而对于开发者来说 , AAB仍有两个问题有待解决 。 其一 , 就是ABB只有Google Play使用 , 所以在为其他应用商店推出APP时 , 就需额外花时间来将APP改为APK版本;其二 , 则是开发者将ABB格式的APP导出为APK时 , 需要向谷歌分享极为敏感的签署密钥 , 这则是许多开发者都不太愿意的 。
所以有观点认为 , App Archiving的推出也意味着ABB格式的升级版 , 或将全面推广到Google Play之外的所有Android应用分发渠道 。



要想知道App Archiving是如何实现号称节省60%的存储空间 , 就需要了解其前身ABB格式的实现方式 。 据悉 , ABB是谷歌推动模块化应用开发技术的组成部分 , 它将一个传统的APP拆分成三个不同部分 , 分别为包含了所有其他拆分APK都可以访问的代码和资源 , 并提供了应用的基本功能Base APK、适配当前手机屏幕分辨率资源的Configuration APK , 以及包含应用中某项功能代码和资源的Dynamic feature APK 。
简单来说 , 就是开发者可以在开发平台Android Studio中构建一个应用束 (App Bundle) , 然后再通过被称之为Dynamic Feature Module的工具 , 向设备交付必要资源 。 这一逻辑其实非常像目前相当多游戏使用的按需加载模式 , 只有当玩家到了某个新地图才开始下载地图资源一样 。 同理 , 在APP上有的用户可能很久都不会用到的一部分功能 , 就可以放在Dynamic Feature Module , 一直到需要用时再进行下载 。



而App Archiving的原理 , 则是由于开发者基本都会遵守谷歌提供的开发指南来打造APP , 这就导致了相当多APP调用的库、使用的函数 , 以及应用的功能都是一样的 。 再加上Android APP的底层和中间层架构虽然不能说是一模一样 , 但也八九不离十 , 那么既然大家都要使用同样的资源 , 将多出来的“支持部分”卸载无疑就能够节约大量的空间 。