手动编辑规则 - MaterialCleaner/MaterialCleaner GitHub Wiki
挂载规则是怎么来的?
在上一页已经介绍了挂载,挂载规则就是一系列挂载的组合。
为什么要把挂载规则作为设置?
有人认为挂载规则看起来不直观,应该按照禁止应用访问共享存储空间、允许应用读取访问存储空间的部分文件、改变应用保存文件的位置、共享文件夹等功能来分别提供设置选项。为什么 Cleaner 不这样做,而是把挂载规则作为存储重定向的设置?
-
挂载规则中的每一条做的都是同样的事情(访问目标路径及其子路径时跳转到来源指定的文件系统),十分统一和优雅,而一系列挂载的组合能实现上述绝大多数需求;
-
挂载规则能轻松做到上述以外的需求,例如允许访问一个文件夹,但是禁止访问其子文件夹,如果按照功能提供设置选项,则需要额外增加选项才能实现此需求;又如某应用在共享存储空间的根目录保存用户需要的文件,但同时又会创建一些非标准文件夹滥用存储空间,则又需要增加设置选项才能解决此问题;假如某天用户又出现其它需求,则需要继续增加设置选项,没完没了;
-
这些功能描述之间存在重叠与冲突,例如使用挂载改变应用保存文件的位置后,应用就能访问对对应文件夹,如果再设定禁止访问这个文件夹,逻辑就出现了冲突,这说明这些功能不能正确描述它们的实际效果。要解决这个冲突,只有两种办法,要么修改文件系统来真正实现此业务逻辑,要么增加一些奇怪的限制禁止用户进行此类设置。对于前者,如果用户的需求增加则可能又要成倍增加设置选项,与第 2 点有异曲同工之“妙”;对于后者,则是因噎废食行为。
Cleaner 做了哪些努力来降低挂载规则的使用难度?
挂载规则虽然有上一节所说的优点,但是当规则条数较多时会出现的理解困难和编辑操作复杂问题也确实存在。为此,我们推出了以下功能:
-
测试挂载规则:您可以输入一些感兴趣的路径,然后查看挂载规则会对应用访问这些路径产生怎样的影响;
-
规则制作向导:对于大部分应用,向导可以减少编辑规则所需要的操作次数;
-
冗余挂载规则检查:冗余的规则有两种情况,一种是没有改变任何路径的跳转位置,另一种是后面的规则覆盖了前面的。当出现冗余的挂载规则时,Cleaner 会将它们标灰,如下图所示;
-
重新挂载:Cleaner 能够在不停止应用运行的情况下重新挂载以立即应用新的挂载规则,所以您无须担心使用应用的进度丢失。我们可以设想一个场景,您正在使用聊天应用准备发送一张图片,但是受存储重定向影响,聊天应用无法读取图片,您需要修改存储重定向设置,这时重新挂载功能就能派上用场。如果 Cleaner 不支持此功能,那么当您修改挂载设置并回到聊天应用后会发现它仍然无法读取图片,您需要重启应用并重新打开发送图片的界面。