分享是原生 Android 功能最为强大但同时使用体验也最为糟糕的一个特性——我们几乎可以在任何场景下将任何内容以任意方式分享到任意一个已安装的其他应用当中,但 Android 6.0 开始一项名为 Direct Share 特性的加入,却压垮了这个本已承载了太多分享对象的弹出菜单。
所以当下 Android 的分享菜单是臃肿且反应迟滞的。具体原因 @KennyMacCormick 当初在介绍 Sharedr 这款应用时已经已经讲得非常清楚了:Direct Share 就像是一个「临时抱佛脚」的考生,在我们点击「分享」按钮的那一刻才开始在支持这一特性的应用中索引快速分享对象。这个索引过程本身耗费性能不说,Android 系统在等待 Direct Share 索引完成的过程中更是暂时禁用了分享菜单的点击反馈。
那些常年对 Android 进行定制的 OEM 厂商自然知道分享菜单「不跟手」这个问题,如果你是三星或者 LG 用户,在设置中搜索 分享
这样的关键词就能找到关闭 Direct Share 这个「罪魁祸首」的开关,非常方便。
华为、OPPO 等厂商,则是直接对分享菜单进行了重做,在性能表现并不理性的前提下,暂时放弃了对 Direct Share 特性的支持,分享菜单样式也更加统一。
原生用户或 OEM 厂商没有针对分享菜单进行优化又该怎么办?
如果你的手机还没有获取 root 权限,Sharedr 应该是除了换机或等待 Android Q 推送以外的唯一选择。
对 root 用户而言则要好办多。
首先,我们需要使用任意文本编辑器创建一份 Direct Share 的禁用规则,这一步你可以在电脑端使用 Notepad++ 或在手机端使用 Solid Explorer 这类自带文本编辑器的文件管理器完成。规则内容如下:
<rules>
<service block="true" log="true">
<intent-filter>
<action name="android.service.chooser.ChooserTargetService" />
</intent-filter>
</service>
</rules>
将以上内容保存为 .xml
后缀文件,文件名随意(但不建议使用中文),我们这里不妨将它命名为 nodr.xml
。
打开任意支持 root 文件管理的文件管理器,然后将 nodr.xml
放入 /data/system/ifw
这一目录下。
恭喜,Direct Share 菜单就此成功禁用了——我们甚至不用重启,这里用到的 /data/system/ifw
目录源于 Android 4.4 时代就已经埋藏于系统当中的 Intent Firewall 特性,这个特性一直没有被 Google 官方给予正式的 API 接口,但任何放入 ifw 文件夹的正确规则都会被立即扫描、解析并执行。
当然,我们最近也分享了不少与 Magisk 相关的内容,针对上述禁用 Direct Share 的需求和办法,Magisk 自然也提供了更为无痛的 Magisk 模块可供使用(下载地址见文末),使用方法可以参考过往文章。
最后祝分享愉快,也期待 Android Q 最终能为我们带来更好的分享体验!
关联阅读:
参考链接:
> 特惠、好用的硬件产品,尽在 少数派 sspai 官方店铺 🛒