Skip to content

开始使用存储重定向

GuhDoy edited this page Oct 31, 2023 · 3 revisions

您可以在安卓开发者文档中找到与存储空间相关的各种名词的解释。

初始配置

新用户可以先应用模板到所有有需要的第三方应用(当然您也可以使用别人分享的规则),默认的模板会将应用对共享存储空间的访问重定向到它们的外部缓存。如果您使用的部分应用会在共享存储空间保存有用的数据(如地图应用可能保存离线地图、翻译应用可能保存离线词典),则需要打开对应应用的设置,打开应用会在共享存储空间保存有用的数据选项,如下图所示。稍后,您还需要手动迁移这些应用保存的文件,或者在这些应用中重新下载,这些操作无法由质感清理自动完成。

1

这样,初始配置就完成了。

还有什么?

完成初始配置之后,您会发现所有的应用都无法使用共享存储空间,这看起来不对劲。那么问题来了,什么情况下应用需要使用共享存储空间?

这个问题可以分成两部分来考虑,首先是哪些文件应该存放在共享存储空间?根据安卓开发者文档,共享存储空间存放的是媒体内容和文档等用户知道且易于共享的文件。在初始配置中提到的离线地图、离线词典文件通常只有保存这些文件的应用可以打开,所以这些文件应该保存在对应应用的专属存储空间而不是共享存储空间;对于用户需要的文件,您可以编写改变应用所看到的文件层次结构规则来指定应用保存这些文件的位置。

第二部分是应用需要读取共享存储空间中的哪些文件?对于主要用例,安卓系统提供了Storage Access FrameworkMedia Store API,如果应用已采用这些有利于保护隐私的做法,您无需增加任何规则。然而,一些应用会为了统一的界面风格而放弃使用存储访问框架,或者通过媒体存储查询媒体文件路径然后通过路径打开文件(后者其实是可选的正确做法,只是由于技术层面原因,您需要为此增加规则),在这些情况下,您需要增加可直接访问的文件夹规则,否则这些应用将无法访问其所需的文件,您也无法正常使用应用的相关功能。另外,您还可以在此基础上增加不可访问的路径规则来允许应用访问一个文件夹但是禁止访问其子路径。如果应用是文件管理器等需要访问所有文件的应用,建议您只编写不可访问的路径规则或者使用只读功能。

与媒体存储整合

安卓系统提供了媒体存储用来方便应用快速检索设备中的媒体文件,当您使质感清理获得足够的能力之后(安装 Zygisk 模块),质感清理就能够知道这样的行为发生,并在存储重定向妨碍应用与媒体存储交互时弹出提示。这样,您就可以快速创建大量规则,同时无需再为错误的挂载规则打断当前操作。与媒体存储整合之后,使用存储重定向就像使用运行时权限一样轻松。

2 3