Skip to content

手动编辑规则

GuhDoy edited this page Nov 2, 2023 · 10 revisions

挂载规则是怎么来的?

上一页已经介绍了挂载,挂载规则就是一系列挂载的组合。

为什么质感清理要把挂载规则作为存储重定向设置的核心?

有人认为挂载规则看起来不直观,应该按照禁止应用访问共享存储空间、允许应用读取访问存储空间的部分文件、改变应用保存文件的位置、共享文件夹等功能来分别提供设置选项。为什么质感清理要把挂载规则作为存储重定向设置的核心?

  1. 挂载是一个知名系统调用。相比于发明一个新的概念,使用知名概念能够降低用户的学习成本;

  2. 挂载规则中的每一条做的都是同样的事情,非常和谐统一,而一系列挂载的组合具有足够高的自由度,能实现上述绝大多数需求,十分简洁和优雅;

  3. 挂载规则更容易满足未来可能出现的潜在的用户需求,而不是为了一些很少使用的新需求不断增加设置选项,让设置界面越来越臃肿,最终膨胀成一个丑陋的耦合物;

  4. 这些需求描述之间存在重叠与冲突,使用挂载规则来描述更加准确、严谨。例如使用挂载改变应用保存文件的位置后,应用就能访问对对应文件夹,如果再设定禁止访问这个文件夹,逻辑就出现了冲突,这说明这些功能不能正确描述它们的实际效果。要解决这个冲突,只有两种办法,要么修改文件系统来真正实现此业务逻辑,要么增加一些奇怪的限制禁止用户进行此类设置。对于前者,如果用户的需求增加则可能又要成倍增加设置选项,与上一点有异曲同工之“妙”;对于后者,则是因噎废食行为。

实际上,上述需求与挂载规则之间是高级接口与低级接口的关系。在我看来,这些高级接口在使用方面实在没有比低级接口简化多少,反而使得新需求无法实现或者让事情更加复杂了。因此质感清理的设计思路是以挂载规则为核心,然后在其基础上增加一些辅助功能以简化编写过程。

质感清理为编写挂载规则增加了哪些辅助功能?

  1. 测试挂载规则:您可以输入一些感兴趣的路径,然后查看挂载规则会对应用访问这些路径产生怎样的影响;

  2. 规则制作向导:对于大部分应用,向导可以减少编辑规则所需要的操作次数;

  3. 冗余挂载规则检查:冗余的规则有两种情况,一种是没有改变任何路径的跳转位置,另一种是后面的规则覆盖了前面的。当出现冗余的挂载规则时,质感清理会将它们标灰,如下图所示; Screenshot_2023-03-18-23-25-18-033_me gm cleaner

  4. 重新挂载:质感清理能够在不停止应用运行的情况下重新挂载以立即应用新的挂载规则,所以您无须担心使用应用的进度丢失。我们可以设想一个场景,您正在使用聊天应用准备发送一张图片,但是受存储重定向影响,聊天应用无法读取图片,您需要修改存储重定向设置,这时重新挂载功能就能派上用场。如果质感清理不支持此功能,那么当您修改挂载设置并回到聊天应用后会发现它仍然无法读取图片,您需要重启应用并重新打开发送图片的界面。