Lufs's Blog

Life feeds on negative entropy.

关于微信、QQ 存储目录变更的一些思考

Lufs's Avatar 2020-04-20 思考

  1. 1. 微信、QQ 的改动
    1. 1.1. 个人对此改动的看法
    2. 1.2. 该改动的实际表现
    3. 1.3. 我对此的期望
  2. 2. 尾巴

在 Android 上,在各类大厂应用和一堆 SDK 联合下,Android 的内置存储文件夹「日益增长」着。

与 iOS 的 沙盒机制 不同,Android 拥有更加开放、互通的模式,但这也带来了非常严重的问题,比如各类第三方 SDK 争先恐后的将各种用户标识文件(唯一用户 ID)、实时缓存甚至应用数据都往「内置存储」的根目录下塞着,成百上千个文件夹便充斥着手机的内置存储。

微信、QQ 的改动

2020.03.02 QQ 发布了「关于 QQ 文件本地存储路径变更的公告」,即 QQ 将其原先在内置存储中的文件夹统一迁移到 QQ 的应用私有文件夹 /Android/data/com.tencent.mobileqq/

微信则在 7.0.13.2 内测版中,也像 QQ 一样将其在内置存储中的文件迁移到微信的应用私有文件夹 /Android/data/com.tencent.mm/

个人对此改动的看法

微信、QQ 的改动虽然在一定程度上「遵循」了规范,且在改动上为用户带来了不便,即查看微信、QQ 所保存的文件由原先的 /Tencent/ 变更为 /Android/data/应用包名 的对应目录下,大大降低了文件搜寻效率。而且在应用写在时,所下载、接受的文件也会一并消失,这显然是不对的。

完全遵守规范应该将应用所要存储的文件、图片、文档、音乐等保存在对应的「标准文件夹下」。依照用户使用习惯,更好的做法是在「标准文件夹」下创建一个能识别对应用名称的文件夹,再将应用文件保存在此目录下。

微信、QQ 非常精明的避开了「完全遵循规范」,只是说明「根据规范」而作出改动,这种不完全遵守可不是什么好现象。。。不仅如此,这还容易让对此感到不便的人把矛头从应用本身指向「规范」,实在是「高明」的话术啊。

该改动的实际表现

将原先的文件夹原封不动的移动到应用私有文件夹,且在私有文件夹下,原来的文件目录、结构完全不变,这就是 腾讯团队 所偷的懒,在应用私有文件夹下,分明可以将日志缓存等文件完全移动至其私有文件夹下的 cache 文件夹下,以便用户或系统在存储空间不足的情况下轻松释放空间

但是,在授予 QQ 存储权限后,便原形毕露,在存储空间里疯狂「拉屎」。也就是说,对于 QQ 来说此改动只是能让你选择拒绝存储权限使用而已。

最严重的是,在 Android 11 DP 上(目前最新为 DP2.1),用户无法通过「常规手段」访问 /Android/ 目录(包括 root shell),且对于目标 SDK 为 11 的应用,/Android/ 便是真正的私有文件夹,应用只能访问属于自己的那一份。

我对此的期望

真正难以抑制的是各类应用疯狂使用的第三方 SDK 所产生的文件,众多应用都接入一个 SDK,那么那些应用所产生文件,即使在你删除后,也会迅速都重建,几乎与无法删除划等号。

现在也有许多 SDK 滥用 /Android/ 文件夹,在这里面建立起用户标识文件推送日志等「垃圾」。比如「友盟」便会在 /Android/data/.um//Android/obj/.um/ 等目录下建立用户标识文件,以便与跟踪用户。淘宝甚至还会在 /Android/data/pushSdk/ 下存储推送日志文件。

希望各类应用能将所接入 SDK 产生的文件重定向至私有文件夹,例如「MT 管理器」、「纯纯写作」都将支付宝 SDK 所产生的文件重定向至应用私有文件夹中,这不仅避免了内置存储的混乱,也让第三方 SDK 功能能够正常使用。最根本的应该是第三方 SDK

Android 生态虽说在慢慢改善,但力度总是不够大,鉴于 Android 的性质以及它所涉及到的庞大领域,各种应用不能有效的、及时的适配。也由于 Android 的开放性和非强制性,大厂们自觉的推行新规范是极其缓慢的,而不像隔壁 iOS 那样的 App Store 强制审核那么激进,iOS 每代都有大改,却因强制措施使得其应用们「与时俱进」。Android 在慢慢的收紧权限的管控、慢慢的规范应用行为,这次期待 Android 11 的改变。

尾巴

这篇文章是一时兴起写的,仅仅写些个人对这些东西的思考,写的可能有所遗漏、不准确。

本文作者 : Lufs
本文采用 CC BY-NC-SA 4.0 许可协议。转载和引用时请注意遵守协议!
本文链接 : https://blog.isteed.cc/post/think-about-change-of-tencent/

本文最后更新于 天前,文中所描述的信息可能已发生改变