首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

关于太极的模块生效范围

大约一个月前,太极更新的 6.0 版本带来了一个新功能——模块生效范围;由于这段时间一直在忙,没空给大家介绍;但实际上这个功能是非常有用的,今天就详细说明一下。

在过去,Xposed 框架是全局生效的,实际上它在 zygote 启动的时候就把框架和所有的模块都加载到内存中来了;同样地,框架里面的模块也是全局生效的,任何一个模块都可以在它想要生效的范围内生效。这种设计带来了很多问题。比如说,全局生效的框架导致其很容易被检测,虽然市面上出现了很多隐藏框架的插件,但是,把一张纸褶皱然后抹平跟一张完好的纸是有天壤之别的;另外,Xposed 框架的模块可以在任意进程内生效,这就导致了模块无法被约束,进而产生一系列问题。比如说,应用控制器作为一个系统模块,大家都把它作为一个系统管家来用,它却跑去在微信里面刷文章(详情可以见关于暂停支持应用控制器的通知)还有一些毫不相干的模块之间竟然会发生冲突,一些模块甚至会去干涉另外一些模块的运行;诸如此类的情况经常发生。

太极在设计之初就做到了「仅在需要使用框架的 App 内运行框架」。这种方式带来的好处显而易见;后期加入的全局模式,其实现方式与原来的 Xposed 也有着本质上的不同;因此它可以避免框架全局生效带来的各种问题。但是,太极的模块在之前也是全局生效的,这个问题并没有得到解决。而「模块生效范围」就是致力于填补这一块空白的。

这个功能最早源自于一位热心用户,感谢他的这个建议,让我得以把这个功能实现。

好了接下来我们就重点介绍一下这个功能如何用,以及在什么场景用。

功能使用

在模块管理里面长按某个模块会弹出一个菜单,在这个菜单里面有一个选项「设置生效范围」,如下图:

点击这个菜单项之后,会跳转到另外一个界面,在这个界面里面勾选或者取消特定的 App 之后,就可以为这个模块设置它的生效范围,如下:

功能说明

这功能使用起来是非常简单的,但是仅仅这两个简单的使用步骤,很多童鞋可能还比较懵逼,还有一些详细情况需要说明一下:

针对某个模块设置了生效范围之后,那么这个模块只会对你选择范围内的 App 生效;比如说你给模块 A 设置了仅仅对应用 B 生效,那么应用 C 在启动的时候,模块 A 不会被加载,因此模块 A 也不会对 C 也生效。

如果你没有给模块设置生效范围,那么为了兼容以前的运行模式,它是全局生效的;因此对于不想使用这个功能,或者不知道如何选择生效范围 App 的童鞋来说,你可以不设置生效范围。

设置了生效范围之后,模块的对勾会变成绿色,没有设置生效范围的模块会保持原来的蓝色

这个功能太极·阴和太极·阳都可以使用,虽然它们的实现方式完全不同。

如果模块生效范围设置不当,可能会导致模块无法正常运行,因此在使用之前,最好自己探索或者向其他人请教某个特定模块的生效范围。

在太极阳里面,额外会多出两个 App:Android 系统和系统 UI,这两个 App 通常是某些全局生效或者系统模块的生效范围。

说了这么多,那使用这个功能会有哪些好处呢?我简单列举一下:

你可以将某些对系统生效的高权限模块的生效范围设置为 Android 系统 和 系统 UI;这样系统模块就基本无法干涉其他 App 的内部行为,彻底杜绝应用控制器类似情况的发生。

你可以将某些对特定应用的模块(比如防撤回模块)设置为仅对那个特定的应用生效,这样其一它无法通过系统来获取高权限做类似锁机等操作,其二各个模块仅仅在自己的范围内生效,再也不会出现冲突的问题。

如果你使用了众多的模块(超过20个)或者你使用了全局模式,那么为每个模块设置好生效范围,它还可以略微提升一点系统的流畅性。毕竟,在以前的时候,每个 App 都会加载众多的模块,设置了生效范围之后,大量的 App 只会加载少数几个模块。

如果你使用了某些不稳定的模块,设置生效范围之后,可以极大地提高你系统的稳定性;比如无障碍 Daemon 这个模块在某些系统上会导致卡开机,再比如对话框取消模块可能会导致一些应用闪退;通过设置生效范围都可以解决。

好了再做个小调查:

最后祝大家周末愉快啦~

  • 发表于:
  • 原文链接https://kuaibao.qq.com/s/20200320A0U0X900?refer=cp_1026
  • 腾讯「腾讯云开发者社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 cloudcommunity@tencent.com 删除。

扫码

添加站长 进交流群

领取专属 10元无门槛券

私享最新 技术干货

扫码加入开发者社群
领券