gkd 中文文档 下载 App

gkd 选择器属性匹配:节点属性筛选与逻辑表达式

属性选择器决定「什么样的节点算命中」。GKD 的属性选择器和 CSS 很像,但表达能力更强:方括号里可以写完整的逻辑表达式。本页只讲属性部分,层级关系留给下一页。

方括号里的表达式

每个 [] 内部是一个逻辑表达式,可以包含多个条件:

@TextView[a=1][b^='2'][c*='a'||d.length>7&&e=false]

拆解这段示例能看到全部要素:

常用操作符

GKD 的属性比较操作符一共 14 个,写规则最常用的是这几个:

操作符含义示例
= / !=等于 / 不等于[text="跳过"]
*= / !*=包含 / 不包含[text*="跳过"]
^= / $=以…开头 / 以…结尾[text^="广告"]
~=正则匹配[text~="(?is).*skip.*"]
> / <数值比较(仅整数)[text.length<10]

两个类型限制要记住:> < 只能比较 int;正则 ~= 的右侧只能是字符串字面量,且必须是平台支持的正则语法。

属性从哪来:节点属性与快捷方式

节点自带的常用属性有 name(类型)、text(文字)、id(完整资源 id)、desc(无障碍描述)、clickable(可点击)、visibleToUser(对用户可见)、childCount(子节点数)等,完整清单可在官方文档的节点属性方法页查阅。

两个提升书写效率的简写:

一条完整的属性选择器

把本页要素合起来,就是全局规则那条经典示例的核心:

[text*="跳过"][text.length<10][visibleToUser=true]

三个条件叠加:文字包含「跳过」、文字长度小于 10(排除「跳过本集片头」)、节点真实可见。三个 [] 并列,全部满足才算命中。

下一步:光有属性不够时,把节点之间的关系写进来——见层级关系匹配。