目录
背景:为何要屏蔽开屏广告
在日常使用 Android 应用时,我们经常会遭遇各种“开屏广告”或繁琐的确认流程。
-
干扰体验:每次启动都要等 5–10 秒才能进入主界面; -
重复操作:一些应用甚至在页面内弹出二次确认,浪费时间; -
无效流量:广告点击误触带来安全风险与流量浪费。
针对这些场景,如果能自动检测并跳过,就能显著提升使用效率与体验。GKD(“搞快点”之意)正是一个基于 Android 无障碍服务的自动点击框架,能够在各种应用界面实时匹配并触发“跳过”、“确认” 等按钮。
图:通过自动化点击,省去重复操作的等待时间(示例图来源:Pexels)
什么是 GKD
GKD 是一款开源的 Android 自动点击工具,特点如下:
-
基于 Android 无障碍服务,可在任意应用前台运行; -
支持 自定义规则,通过“高级选择器”精准定位目标节点; -
提供 订阅机制,可远程更新规则库; -
内置 快照审查,协助开发者调试和编写规则; -
可执行包括点击、输入、快捷操作在内的多种自动化任务。
GKD 可看作知名工具“李跳跳”的升级版,功能更灵活、更易扩展。
核心原理:无障碍服务 + 自定义规则
3.1 无障碍服务简介
Android 无障碍服务(Accessibility Service)原本用于帮助视障用户操作系统和应用。GKD 利用该服务,能够:
-
监听界面变化:当 Activity 渲染完成或节点属性更新时,服务收到回调; -
查询节点树:获取当前界面 XML tree,遍历所有可交互元素; -
执行动作:对指定节点调用 performAction(Action.CLICK)
、Action.SCROLL
等操作;
这样,GKD 就能在任意应用中“代劳”点击跳过广告或确认按钮,无需 root 或应用内嵌。
3.2 高级选择器
与常见的 UI Automator 不同,GKD 的选择器语法既支持节点层级、属性匹配,又可结合上下文关系。
示例:
@[vid="menu"] < [vid="menu_container"] - [vid="dot_text_layout"] > [text^="广告"]
含义解析:
-
找到 vid="menu"
; -
向上查找父节点 vid="menu_container"
; -
在该容器内,定位子节点 vid="dot_text_layout"
,且其文本以“广告”开头; -
对此节点执行点击操作。
此类表达既简洁又强大,能应对复杂多层级的 UI 结构。
3.3 订阅规则
GKD 核心仅提供引擎,不内置任何规则。用户可:
-
添加本地规则:在手机存储内直接编辑 .gkd
脚本; -
远程订阅:通过订阅链接,自动拉取最新规则; -
自建模板:使用 subscription-template 快速搭建自己的更新源。
第三方订阅列表可在 GitHub 上搜索 gkd-subscription
话题,一键订阅常用应用的自动跳过方案。
3.4 快照审查
调试规则时,GKD 提供快照审查功能:
-
在指定界面截取节点树快照; -
在 Web 或本地工具中可视化查看节点属性、层级; -
编辑选择器后,实时验证匹配结果,确保规则生效。
快照审查项目地址:https://github.com/gkd-kit/inspect
安装与初次配置
-
下载 APK
-
官方网站:https://gkd.li/
-
Google Play:
https://play.google.com/store/apps/details?id=li.songe.gkd
-
GitHub Release:
https://github.com/gkd-kit/gkd/releases
-
-
授予权限
-
打开 “设置 → 无障碍 → GKD” -
启用无障碍服务,允许 GKD 读取屏幕内容并执行动作; -
根据需求,可授权“显示悬浮窗”以便手动快速启停。
-
-
导入规则
-
在 GKD 应用内点击“订阅管理” → “添加订阅” -
粘贴远程订阅链接或加载本地规则文件。
-
-
测试生效
-
打开带广告的应用,如视频播放器、新闻客户端; -
若规则命中,则可看到广告自动被跳过,无需手动操作。
-
图:GKD 在视频类应用中自动点击“跳过广告”按钮(示例图来源:Unsplash)
使用示例:自动跳过开屏广告与确认流程
示例 A:跳过视频广告
[@[text="跳过广告"], [text="Skip Ad"]] > perform_click
-
匹配文本为“跳过广告”或“Skip Ad”的节点; -
统一执行 perform_click
操作。
示例 B:自动确认登录
@[text^="确定登录"] > perform_click
@[text^="Allow"], [text^="Permission"] > perform_click
-
在映射电脑端扫码登录的确认框中,自动点击“确定登录”; -
针对英文版 App,也能匹配“Allow”或“Permission”。
编写与管理本地规则
-
在手机任意目录创建后缀为 .gkd
的文件,如my_rules.gkd
; -
使用文本编辑器添加或修改选择器脚本; -
在 GKD 内 “本地规则 → 导入” 即可生效; -
推荐将常用脚本组织为多文件,多模块化管理。
// my_rules.gkd
// 跳过开屏广告
[@[text^="广告"], [text^="Ad"]] > perform_click
// 自动确认权限
@[text="允许"], [text="Allow"] > perform_click
可通过 Git 同步规则文件,与团队共享。
搭建远程订阅源
若希望集中管理并自动分发规则,可按以下步骤:
-
Fork subscription-template; -
在模板仓库中编辑 rules/
目录下.gkd
文件; -
设定 GitHub Actions 自动发布新版本; -
将仓库 Topics 添加 gkd-subscription
,方便被其它用户检索; -
发布发布页地址,即为订阅链接。
订阅链接示例:
https://raw.githubusercontent.com/你的账号/你的仓库/main/subscription.json
高级玩法:多条件联动和流程化操作
GKD 不仅能单击,还可执行:
-
延时操作: sleep(2000)
等待 2 秒后再点击; -
多节点级联:先滑动,再点击; -
输入文本:自动填充验证码、搜索关键词; -
流程脚本:实现一键完成“打开 App → 跳过广告 → 登录 → 进入主界面”全过程。
// 流程化示例
on_activity("com.example.app.SplashActivity") {
@[text^="广告"] > perform_click
sleep(1000)
}
on_activity("com.example.app.LoginActivity") {
@[vid="login_btn"] > perform_click
}
常见问题与故障排查
-
规则未生效?
-
检查无障碍服务是否开启; -
使用快照审查确认选择器路径是否匹配当前版本 UI;
-
-
误操作或误点?
-
增加更严格的条件,如同时匹配文本与视图 ID; -
为关键操作添加 debug_mode
,先在日志中预览替代点击;
-
-
更新后规则失效?
-
通过订阅重新拉取最新规则; -
本地缓存规则保留历史版本,需手动回滚。
-
结语
GKD 以灵活的规则引擎、强大的选择器语法和自动订阅机制,为 Android 用户和开发者提供了一套易用、高效的自动点击解决方案。无论是屏蔽恼人的开屏广告,还是简化重复的确认流程,都能大幅提升使用体验。
如果您对规则编写、订阅源搭建或调试技巧有更多疑问,欢迎加入社区交流、贡献规则。让我们一起打造更“快”的 Android 使用体验!