最近QQ偷偷删图。有网友观察到,在EMUI手机ROM中,会提示QQ尝试删除图片,而这张图片是近期与腾讯利益相关的“阅文新合约”截图。网友怀疑QQ会监控图片内容,试图删除对腾讯不利的图片文件。但事实真的是这样吗?当然不是。腾讯和华为迅速回应,表示QQ删除的是缓存文件,不是用户手动保存的图片,QQ不会删除具体图片。这种误解是由于QQ没有遵循Android规范,导致缓存图片被误判为普通图片。
其实除了QQ之外,安卓APP不定期使用安卓存储是很常见的。我们经常可以观察到安卓相册里都是莫名其妙的图片,或者安卓存储目录里都是乱七八糟的文件夹。为什么会变成这样?今天就来说说安卓目录的乱象。
就像QQ删图造成的误会一样,安卓存储目录的混乱也是APP的不规范行为造成的。先说安卓对图像存储的规范。
在安卓相册中,出现各种乱七八糟的图片是因为安卓扫描存储目录,将扫描到的图片显示在相册中。很多用户认为这种机制不太合理,因为扫描整张图片会导致APP的缓存,比如杂牌、头像广告图片等被扫描显示在相册中。不过安卓已经想到这一点了,安卓这个相册乱七八糟的锅,真的不应该背。
在Android规范中,如果某个目录的图片不想被相册扫描,可以在该目录中生成一个. nomedia文件,表示该目录中没有媒体文件,图片不会在相册中显示。但是很多app没有做到这一步,导致安卓相册被添加了很多素材。
这次QQ被提示尝试删除图片,就是这个原因。QQ没加。nomedia到缓存图片的文件夹,导致EMUI将QQ缓存图片识别为普通图片。QQ自动清理缓存时,EMUI自然会提示其删除图片。
换句话说,只要QQ加。nomedia文件到缓存目录根据Android规范,不会出现这个问题。
乱七八糟的安卓存储目录还能省吗?
与iOS相比,Android的优势之一是其更加开放的文件系统,用户可以在Android的存储目录中随意读写文件。然而,这也带来了问题。很多人发现安卓用久了之后,存储目录里会出现很多奇怪的文件夹。这是哪里来的?
这些文件夹其实是各种app创建的,很多app会在Android存储目录下生成自己的目录。百花齐放,Android的存储目录越来越耀眼。
然而,Android并没有坐以待毙。其实Android也有APP建立存储目录的规范。比如Android系统规定,APP要在内部存储空间建文件夹,需要建在/data/directory,在外部存储空间,需要建在/sdcard/Android/data/directory。在这些目录下创建文件夹的好处是,当APP卸载后,对应的文件夹也会被删除,而不是像现在这样,当APP卸载后,它创建的乱七八糟的文件夹依然存在,很烦。
安卓APP为什么不遵循规范?有历史遗留的问题。Android的内部存储目录曾经非常小。比如经典的Milestone ROM只有512M,需要使用sdcard来扩展存储空间。所以安卓APP往往会把文件保存在外存目录(也就是SD卡目录)。在4.3版本之前,Android没有提供外部存储目录的规范。APP以前会随意在sdcard目录下创建自己的文件夹,这个习惯一直保持到现在。
现在虽然Android已经建立了sdcard目录的存储规范,但是这个规范并不是强制性的。由于使用第三方SDK等各种原因,很多app仍然在sdcard目录下自建文件夹,导致安卓存储目录混乱。
不过,在新版Android中,这种现象有望得到改变。在Android 9和Android 10中,Android开始限制APP创建的文件夹;到了Android 11,系统将不再允许app在sdcard中创建目录和文件,app只能将数据写入特定目录的私有文件夹。目前一些app已经开始为此做准备。比如新版QQ把存储目录从/sdcard/tencent/改成了/SD card/android/data/com . Tencent . mobile QQ/Tencent/,就是为了适应Android新的存储机制。
摘要
总的来说,目前的Android存储目录还是比较混乱的,但是随着Android 11的发布,这种现象有望得到改善。不是所有安卓机都能用安卓11。也希望各类app尽快抛弃历史包,规范自己的存储目录,少带垃圾文件,避免“偷删图”的误区。
标签:
免责声明:本文由用户上传,如有侵权请联系删除!