Thanox 中文文档 下载 App

Thanox 情景模式规则引擎入门:什么时候干什么

情景模式是什么

情景模式(Profile)是 Thanox 最强大的功能,也是它和其他工具拉开差距的地方。

简单理解,情景模式就是:

什么时候(触发条件 condition),干什么(执行动作 actions)。

这是一个完整的规则引擎,基于 MVEL(MVFLEX Expression Language)表达式语言。规则引擎的好处是——你不需要每一个自动化场景都写一个独立的功能开关,而是用同一套框架实现无数种自动化:

和 Tasker 的对比

如果你用过 Tasker 或 MacroDroid,对这种"触发条件 + 执行动作"的模式一定不陌生。Thanox 情景模式和 Tasker 的区别:

维度Thanox 情景模式Tasker
运行位置system_server 进程(system 权限)普通 app 进程
能做什么杀进程、锁屏、启动 Activity、Hook 系统 APIUI 点击、启动 app、通知、系统设置(部分)
触发粒度Activity 级别的 Created / Resumed / Paused粗粒度(app 启动、屏幕开关)
动作粒度可以直接调用 Android SDK 的 API需要 AutoInput / SecureSettings 等插件
学习成本MVEL 表达式(接近 Java)图形化界面,直观
权限依赖Xposed / Magisk普通权限 + 可选择 Accessibility + Shizuku

简单说:Tasker 易用但受限于 app 层权限;Thanox 情景模式难学但能力更强——因为它跑在 system_server 里。

一条规则长什么样

情景模式可以用 JSON 格式编写。最小可用的规则:

[
  {
    "name": "Current pkg",
    "description": "应用切换时,Toast 显示当前应用包名",
    "priority": 2,
    "delay": 2000,
    "condition": "frontPkgChanged == true",
    "actions": [
      "ui.showShortToast(activity.getFrontAppPackage());"
    ]
  }
]

规则参数解释

参数类型含义注意事项
nameString规则名称,英文,多条不能重名重名会被覆盖
descriptionString任意描述可以写中文,方便自己看
priorityint优先级,决定多条规则的执行顺序数字越大越优先?或越小越优先?官方未明确,建议保持合理区分
delayint动作执行的延迟时间(毫秒)2000 = 触发后等 2 秒再执行动作
conditionString触发条件,MVEL 表达式双引号需要转义 \"
actionsArray执行动作,多个字符串,每个是一条 MVEL 调用双引号需要转义 \"

两大核心:Facts 和 Handle

情景模式规则引擎的所有能力来自两个组件:

Facts(事实与参数)

Thanox Framework 层会在各种事件发生时发布"事实",并注入相关参数。比如:

condition 条件就是通过判断某个 facts 参数来触发的。

Handle(执行能力)

Thanox 提供了一组叫 handle 的能力接口,每个 handle 代表一类操作:

Handle 名能力范围
killer杀进程
activity启动 Activity / 获取前台 app
power锁屏 / 亮屏 / 亮度
task最近任务管理 / 清理后台
uiToast 提示 / 点击界面元素
hw硬件控制(GPS、蓝牙等)
io文件读写
data数据库操作
ringtone铃声 / 通知音设置
shShell / su 命令
input模拟按键输入
pkg应用安装 / 卸载
Log日志输出
Audio音频焦点控制
Battery电量读取
ContextContext 对象
ThanosThanox 核心能力(冻结、隐匿等)

在 actions 里,你就是在调用这些 handle 的方法。比如 killer.killPackage("com.tencent.mm") 就是用 killer handle 杀掉微信。


下一页:创建你的第一条情景模式规则。