为什么安卓移动的应用缓存被扔的到处都是,而不是像windows那样放到program files里?

论坛 期权论坛 知乎     
匿名知乎用户   2019-4-15 20:22   12896   5
转载声明:本文由互联网用户自发贡献,部分转载来源来自知乎(zhihu.com),强烈建议您访问知乎查看完整内容。本社区不拥有所有权,也不承担任何法律责任。如有侵权,请联系optbbs@163.com。一经查实,即刻删除。
安卓手机整理手机存储文件夹时发现不同的app都会在根目录创建一个文件夹写入数据或缓存,部分应用甚至会创建多个文件夹。为什么不统一写入android文件夹中方便管理?究竟是技术问题还是态度问题?
分享到 :
0 人收藏

5 个回复

正序浏览
知乎可爱用户  11级专家 | 2019-4-15 20:22:38 发帖IP地址来自
产品要求:我们这个应用要把一下数据写入本地,方便下次使用时快捷载入。
程序员:好,我把它写入Android/data/应用专属目录,
产品经理,你这个写法应用卸载后数据还在不在。
程序员:当然不在了。
产品经理:那不行,你得保证卸载后重装依然能够读取恢复。
程序员:行吧,我在存储空间里单独建个目录,不和其他应用冲突。

知乎可爱用户  11级专家 | 2019-4-15 20:22:37 发帖IP地址来自
技术问题,不存在的。
安卓至少给了两个文件夹让应用放数据和缓存,读写这两个文件夹是不需要权限的,然而国内的应用有多少遵守的
现在google都忍不住了,最新的Q版本已经加入了一个名为“App-scoped storage”的特性,你可以查看我这个回答:https://www.zhihu.com/question/317726480/answer/635546403
如果实在忍不住了,你可以试试存储重定向

知乎可爱用户  11级专家 | 2019-4-15 20:22:36 发帖IP地址来自
这个问题其实很好理解。
因为android系统提供的两个应用目录,卸载app后自动清空。
那么问题就来了,以下情况怎么办:
1,app下载的资源,比如歌曲,视频,图片
2,同一个厂的多个app想要共享资源
3,app写的log,有些app闪退崩溃用户会卸载重装,要定位问题需要拿到卸载之前的log
4,播放器类app要扫描全盘的资源文件

所以解决方案就是不使用应用目录,换一个不会被删的sd卡自建目录。
Android Q强制搞了沙盒模式,并给上面问题提供了解决方案,我认为是不错的方案。
知乎可爱用户  11级专家 | 2019-4-15 20:22:35 发帖IP地址来自
1.Windows的缓存按照标准应该在环境变量的TEMP文件夹,一般在用户目录。
2.Android的缓存按照标准应该在android文件夹,绝大部份软件都按照这个标准。部分国产软件(主要是bat)不遵守,原因可能是他们要共用一些资源。
另外阴谋论一下,写入android是不用存储权限的(大概),写入其他目录就有理由要权限了?
知乎可爱用户  11级专家 | 2019-4-15 20:22:34 发帖IP地址来自
你知道 Windows 的 AppData 目录吗,通常位于 C:\Users\你的用户名\AppData\Local(AppData 目录被设为隐藏了,需要打开“显示隐藏的文件夹”选项才能看到),让我们来看看这个目录里面有些什么:


怎么样,现在你还觉得 Windows“干净整洁”吗?顺便再说一下,这些文件在你卸载软件的时候大部分都不会被自动删除哦。
所以,Windows 和安卓的缓存文件夹乱象根本没有区别,唯一的区别只是 Windows 把“AppData”文件夹隐藏了,普通用户感受不到罢了。普通用户只会发现系统用一段时间后C盘可用空间变少了,而且怎么也找不到原因。
绝大部分磁盘清理工具不能帮我们清理 AppData 文件夹。
手动清理 AppData 也非常困难。因为命名不规范,很多时候根本不知道哪些文件夹和哪些软件有关。意外删除某些文件夹还可能导致某些软件不工作,这简直比安卓还糟糕(删除安卓存储卡中的文件夹至少不会导致app不工作)。
此外,类似 AppData 文件夹的地方可不止一个哦,还有另一个叫 ProgramData 的地方(也是隐藏的,位于 C:\ProgramData),让我们来看看里面有些什么:


随便进入一个文件夹看看里面有什么:

怎么样,惊不惊喜,意不意外,是不是和安卓一毛一样?这些文件夹在软件卸载时也不会被自动删除哦。
所以,任何可以自由创建文件夹的存储系统最终都会走向混乱,这似乎在某种程度上符合了“热力学第三定律”:孤立系统的熵永不减小。
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

积分:27300
帖子:5460
精华:0
期权论坛 期权论坛
发布
内容

下载期权论坛手机APP