Android 给了用户足够的权限去管理和利用存储空间,这使得文件管理相对方便。当我们拿到一台崭新的手机,在没有安装和使用任何第三方应用的前提下打开文件管理器,一般会看到这几个文件夹:
- Alarms (闹铃文件)
- Pictures (图片)
- DCIM (相机拍摄的图片)
- Documents (文档)
- Download (下载的文件)
- Movies (影片)
- Music (音乐)
- Notifications (通知音)
- Ringtones (铃声)
而一段时间之后,当我们再次翻阅内部存储空间,往往会发现这里已经杂乱无章地放着二三十个文件夹。这时如果想在这当中找刚收到的文件,就需要较好的眼力了。
如果你也有类似的体验,本文要介绍的这款 App 或能拨乱反正,让秩序重回内部存储。
注:本文适用于 root 用户。
存储空间本不该这么乱首先我们要了解一些基本知识。
Android 应用的数据主要储存在两个地方,应用私有文件夹和内置存储空间:前者在一般情况下不需要用户去干涉,后者则是你一打开文件管理器就所在的目录,任何拥有存储权限的应用都可以在此随意读写文件。
Google 设想了一个关于内部存储空间的美好愿景——所有 App,尤其是第三方 App, 只要分门别类地把文件放到相应的文件夹就好,这样内部存储空间就能在视觉上井井有条,索引文件也方便快捷。
但 Google 这个非强制性的设想注定是「防君子不防小人」。实际情况是,不少应用仰仗着用户授予的存储权限,肆意在内部存储空间建立自己的文件夹,在一些应用中保存下来的音乐、图片或下载的文档,很有可能会被应用擅作主张藏在相当深的路径里。
这使得我们查找,浏览,整理文件的成本直线上升,用户体验极差;同时完全的读写权限也让部分隐私敏感的用户担心个人隐私问题,个人文件和敏感信息处于「任君采撷」的状态。
由著名网红 Android 开发者 Rikka 开发和维护的存储重定向则能完美地解决以上问题。我们曾在不同文章中对这款应用进行过简单介绍,鉴于当前它在稳定性和用户引导方面都已经做得相当完备,尤其是在社区的助力下大多数常用 App 都有现成的规则可用,用户只消手指一点,开箱即用。这里我们不妨对这款「神器」进行一次全面而细致的认识。
正所谓「无图无真相」,同样一台手机,使用存储重定向重新修剪内部存储之后,我们的内部存储空间长这个样子:
效果可谓是立竿见影。
「重定向」时发生了什么在存储重定向主界面的「应用管理」中为某款应用开启「存储空间隔离」后,这款应用能够访问到的存储空间就不再是真实的存储位置了。
此时,应用在存储空间中进行的读写操作会像 Android Q 那样被隔离到独立的「沙箱」当中,其中:
- 应用的私有数据按照 Google 的官方标准存放至 /SDCARD/Android/data/xxx.xxx.xxx/sdcard 目录下(但应用本身并不会意识到这一点),隔离存储空间 /sdcard 无法再与共享存储空间 /SDCARD 直接交互。
- 被隔离开的应用之间数据相互独立,A 应用的数据 /SDCARD/Android/data/aaa.aaa.aaa/sdcard 与 B 应用的数据 /SDCARD/Android/data/bbb.bbb.bbb/sdcard 不互通。
这两条规则互为补充,构成了存储重定向的核心工作原理。举个例子,当我们为微信开启「存储空间隔离」后,微信原本所认知到的存储空间目录变成了 /SDCARD/Android/data/com.tencent.mm/sdcard,此前会直接在存储空间根目录创建的 /tencent 文件夹自然也会跑到这个文件夹里去。其他应用开启「存储空间隔离」后也会应用类似的规则。
换句话说,如果你有 100 个开启了「存储空间隔离」的应用,那你的手机里就会生成 100 个类似 /SDCARD/Android/data/xxx.xxx.xxx/sdcard 这样的存储空间。
不过这种「沙盒」机制其实也会带来问题,我们不妨举两个与上述两条规则相对应的例子:
- 启用存储空间隔离的微信无法直接与共享存储空间中的文件夹(如 /SDCARD/DCIM 中的照片)交互。当我们在微信中尝试分享照片时,会发现微信根本读取不到任何照片。
- 在启用了存储空间隔离的应用中所保存的文件,均位于隔离存储空间当中。埋藏过深有违「提高文件索引效率」的初衷。
为此,存储重定向又引入了配套的解决方案。
首先是共享存储空间访问机制。
这一部分决定了被隔离的应用能够访问哪些共享存储空间目录。如果你喜欢用微信分享音乐,在为微信启用重定向后,可能就需要允许微信访问来自共享存储空间的 /Music 文件夹。
其次是「同步文件夹」规则。
这一部分让开启了重定向的应用存储在隔离存储空间的数据直接与共享存储空间中的特定文件夹进行关联,这样一来,我们就能直接在共享存储空间中访问那些实际埋藏在隔离存储空间中的应用了。
「重定向」实操看到这里你可能会开始觉得「有点绕」了。别怕,我们这就用一个实际的例子告诉你,拿到一个应该进行重定向操作的应用时我们该如何设置。
这里用到的例子还是微信。
在对微信开启了存储空间隔离的同时,微信就不能像以往那样直接在存储空间根目录下随意创建文件了。
但为了保证微信聊天的过程中还能正常「斗图」,我们得让微信拥有读取共享存储空间中常见图片文件夹的权限;于是我们下划在「可访问的文件夹」设置中打开「来自共享存储空间的文件夹」选项,然后按需选择可访问的共享存储空间文件目录。