为什么你的 Android 系统比 Windows 还大?
2023-2-9 15:59:3 Author: sspai.com(查看原文) 阅读量:27 收藏

为什么你的 Android 系统比 Windows 还大?

三星 S23 Ultra 刚发布不久,先用上的国外网友就 发现了一些蹊跷 :在 512GB 版本的设备上,三星的「操作系统占用空间」竟然高达 68.94GB,相比之下,隔壁 Pixel 7 Pro 的「系统」占用仅为 15GB,桌面端的 Windows 11 在安装完成后不过也只占用了约 30GB 的空间。

如果是 128GB 版本的手机,岂不是刚到手的设备就有一大半的存储空间不能使用?

外媒 Arstechnica 也报道了这一问题并将 矛头直指系统的预装应用 (Bloatware)。毕竟在三星手机上随机「附赠」的除了三星自家、微软、谷歌、Meta、Netflix 的全套应用,还有双份的输入法、应用商店、浏览器、语音助手等,这些预装应用均被写入了系统分区,只可停用不可卸载。内含这样大份的「全家桶」,系统体型飙升至 68GB 似乎也不足为奇?

但真实原因却没这么简单。

三星的预装应用多不是什么新鲜事了,如此巨量的空间占用肯定有它们的一份「贡献」,但想要达成 68GB 的成就并非易事。另外,三星 S23 系列仍未采用 A/B 分区的方式来支持系统无缝更新,换句话说,One UI 的系统数据依然以单分区的形式存在,而不像其他现代 Android 设备那样「一式两份」,理论上来说系统占用的存储空间应该更少。

拓展阅读:

在继续探寻「这 68GB 里都装了啥?」之前,我们必须先搞清楚一个最基本的问题:Android 设置菜单中的系统(System)存储空间占用项是如何计算的?

你以为 Android 系统在统计时会像一位耐心的管家,一件一件打点、记录所有系统文件的占用空间,然后将它们计算相加后的结果呈现给你?不然。Android 系统在这里选择的是一种比较省事的办法: 计算其他非系统文件,比如音频、图像、视频、应用等的占用空间,然后用获取到的已使用存储空间总数与之相减

换句话说,你看到的「系统」占用空间,计算方法实际是:系统占用 = 已使用的存储空间 - 其余子项占用。

以文章开头的三星存储空间截图为例,S23 Ultra 512GB 版本截图时已使用的存储空间总数为 70.46GB,因此「系统」占用的空间会被统计为 70.46-0.31-1.19-0.02 = 68.94GB。

AOSP 开源项目中的 相关代码 也可以证实这一推测的合理性。此外,围绕外媒 Arstechnica 这篇报道网友们还发现了更多问题 —— 上面提到的公式中,被减数「已使用的存储空间」总是通过设备的总存储空间减去剩余空闲存储得来的

这乍听起来没有问题,但经常购买电子产品的朋友就会回想起设备外包装上常见的一句话:「1GB = 10 亿字节;格式化后的实际容量会少一些」。换句话说,硬件在制造时存储空间是按 10 进制计算的,但手机系统在计算时却是以二进制为基础的。

1GB 为 2 的 30 次方字节,即 1073741824 字节,但实际仅有 10 亿字节,对宣传物料和大家一般观念中的 512GB 版本手机而言,Android 系统在统计时能够得到的实际存储空间可能仅有 476.84 GB,光是差距就有 35.16GB 之多。

  1. 系统占用 = 已使用的存储空间 - 其余子项占用
  2. 已使用的存储空间 = 总存储空间 - 剩余空闲空间
  3. 系统占用 = (总存储空间 - 剩余空闲空间) - 其余子项占用

在上述公式中,总存储空间是系统通过声明文件直接获取的 512GB,并非实际存储空间 476.84 GB。而剩余空闲空间、其余子项占用和已使用存储空间则是通过计算得到的 。这种取值方式的差异必然会带来误差:

这中间凭空消失的 35.16GB,代入上面的计算逻辑后最后归入了「系统」部分。还是以这台 512GB 存储空间的设备为例,当你的剩余空闲空间只有 400GB 时,通过第二条公式计算出来的已使用存储空间为 112GB —— 但实际上应该是 76.84GB。其余子项不变的情况下,多出来的这 35.16GB 经过计算就被打包并入了「系统」部分。

这其实也能解释为什么不同存储版本的手机系统占用各不相同,1TB 版本手机的系统占用就要凭空多出 92.68GB(实际总存储约为 931.32GB),512GB 版本则是多出 35.16GB。

当然,上面所有的讨论前提均为「AOSP 开源项目」,在此基础上,厂商当然可以对这些代码进行修改,设计出对自己设备而言 更有利的算法。这也导致对比不同厂商手机系统占用存储的绝对值意义不大。

至于三星手机的「系统」存储空间占用,在使用《文件极客》中的一键缓存清理功能后,手机给出的「系统」占用居然还减少了 0.04GB—— 显然部分应用的缓存占用也被计算进去了,这明显也与我们认知中机内自建、只读、占用空间固定的「系统存储」概念不太一样了。

至此,我们算是明白了为什么三星 Galaxy S23 Ultra 的「系统」那么大(文章开头提到的 Arstechnica 报道目前也已经进行了类似的内容更新)。一言以蔽之:什么都「爱省事做减法」的 Android 系统,最后「算」出了一个体型巨大的「系统空间」存储占用。

最后,如果你确实想知道三星手机系统的真实存储占用,最靠谱的手段当然是直接去挨个统计系统文件 ——HN 网友 @chenxiaolong 就上传了一份 S23 Ultra 固件解包后的 存储占用一览表 ,从这份表格中我们可以大致统计出的结果其实是 38GB。

最后也欢迎对此话题感兴趣的朋友在评论区晒出你的系统存储占用或聊聊你的看法。

> 下载 少数派 2.0 客户端、关注 少数派公众号,解锁全新阅读体验 📰

> 实用、好用的 正版软件,少数派为你呈现 🚀

© 本文著作权归作者所有,并授权少数派独家使用,未经少数派许可,不得转载使用。


文章来源: https://sspai.com/post/78205
如有侵权请联系:admin#unsafe.sh