随着手机app占据的存储空间越来越大,目前安卓手机基本已经不再推出64GB版本的手机了,很多厂商的手机都是128GB起步,并开始推出512GB,甚至1TB存储空间的手机。其中一方面是软件厂商的app功能越来越丰富需要占据的空间越来越大,另一方面则是因为安卓系统本身对于系统组件所占用存储空间的计算存在着问题。
近日,安卓专家Mishaal Rahman通过实验发现谷歌对安卓系统组件所占空间的计算是有缺陷的。
实验中,Rahman通过执行shell命令,在/ data / media / 0存储目录下创建了一个3GB的文件,事实上这个目录并不是用于存放安卓系统文件的,而手机的存储空间分析却显示,在系统类别下增加了3GB的空间占用,安卓系统文件突然变大了。通常安卓手机是通过系统自带的存储空间分析来查看文件和应用的占用情况,然后通过文件管理应用对多余的应用或文件进行删除,但是系统文件一般是无法删除的,也就是说安卓的这种错误识别会导致系统文件越变越大,用户却没法处理。
实验前后对比 资料来源:Mishaal Rahman/X
而之所以发生这种情况,是因为安卓系统的存储计算将除了音频、视频、图片、文档、回收站和游戏之外的所有文件都算作系统文件所占空间,Android 14的存储空间分析正是使用了这种有缺陷的逻辑来计算存储使用情况。
目前其他基于安卓系统的UI都存在同样的问题,会将在分类之外的其他文件都算作系统文件,根据相关报道,只有三星在其One UI 6更新中修复了这个问题,进行相同的实验后,增加的文件显示在了其他文件类别下。
三星One UI 6进行相同实验对比 资料来源:Mishaal Rahman/X
而除了这种错误的存储空间计算方式之外,还有个非常重要的原因会导致手机存储空间不足的问题,PC端也存在这个问题,那就是存储器制造厂商与软件厂商所使用的容量单位不同。存储器制造商是以10进制来计算容量,一个千兆字节(GB)只有1000³个字节,而软件厂商则是以2进制来计算容量,1吉比字节(GiB)有1024³字节,手机厂商所宣传的手机容量用的是存储器制造商的单位。因为1GB等于0.93GiB,所以一个512GB的手机按照软件厂商的单位来算只能存储大概476 GiB的文件,这其中还要去掉真正的系统文件占用空间,用户实际可以存储的文件只有约460 GiB。
EDN小编的512GB电脑
其实这种单位的问题是很早就存在的,买过硬盘的朋友都知道到手的硬盘容量都会“缩水”,标称容量缺少的那部分容量叫OP,全称Over-Provisioning,也叫预留空间,一方面是由于单位换算的差异,另一方面这个预留空间是厂商在生产硬盘时用于垃圾回收GC、存储主控固件和备用数据块等用处的,可以提高硬盘的耐用性和保障硬盘运转的性能。
因此谷歌需要对安卓系统的存储计算进行改进,一方面需要改变安卓计算系统文件占用空间的逻辑,确保系统文件计算的准确性,另一方面也应该尽可能的使用对消费者更加友好的方式标注容量,比如以统一的GB为单位来量化所有内容,不过目前到升级到Android 14这两个问题还没有被解决,估计还需要很长一段时间才能等到谷歌的更新。