原生 Kotlin 安卓应用,最低 Android 7.0 / API 24。当前版本 1.2.0 支持固定位置点击及自动停止,无 Root、无联网权限、无广告和账号。
已实现中文设置页、配置保存、悬浮控制条、拖动靶心、串行点击调度和异常停止,新增低间隔、倒计时、次数/时长限制和实时频率开关。完整 debug APK 已构建,52 项核心测试通过,Android lint 0 错误 / 13 警告。未连接设备,真机验收未完成。详细结果见 docs/verification.md。
安装包:app/build/outputs/distributions/debug/AutoClicker-1.2.0-debug.apk。
以后运行 :app:assembleDebug 会自动生成 AutoClicker-<versionName>-debug.apk,放在 app/build/outputs/distributions/debug/;文件名版本来自 Gradle 配置,不需要手动改名。AGP 原始 APK 保留。Release 同样生成带版本号的副本,未配置正式签名时保留 unsigned 后缀。
源码 API 编译不等于 APK 构建,也不等于真机验证。最终 APK 与设备验收状态以验证记录为准。
雾白与翡翠绿视觉系统;精简品牌栏与状态标签;主要操作前置;点击节奏、启动与停止、统计显示独立分组;快捷间隔支持选中高亮;实时频率改用开关;悬浮面板提供运行/停止差异色与固定统计区域。统一按钮圆角、水波纹及禁用状态。点击引擎不变。尚未在设备上完成视觉验收。
- 安装成功后打开「轻点 · 连点器」。
- 选择「开启无障碍服务」或「管理无障碍服务」,阅读用途说明,在系统设置中手动开启本应用服务,然后返回。
- 输入 10–60000 的整数毫秒(默认 100),配置按下时长、倒计时、自动停止及实时频率开关,点击「保存点击配置」。
- 点击「显示悬浮控制器」,切换到目标应用。
- 先拖动靶心定位,把控制条移到不挡住目标的位置,然后按「开始」。靶心在运行时隐藏。
- 通过控制条「停止」或「关闭」结束;主页面也提供停止并关闭按钮。
主页面提供「测试点击」计数按钮,可用于检查点击和停止。实际跨应用点击还需在设备上验证。
锁屏、熄屏、配置变化(含旋转)、服务断开、手势取消/拒绝会停止。移动正在运行的控制条也会先停止,避免挡住目标后点击自身。旋转后需重新显示控制器、重新定位。重启不会自动恢复点击或坐标。
间隔是两次手势开始之间的目标时间,系统忙碌时可能更长;不补发积压点击。停止后不派发新手势,但系统已经接收的当前手势可能完成。遇到服务中断请重新开启服务,不会后台无限重试。
| 配置 | 范围与默认值 |
|---|---|
| 点击间隔 | 10–60000 毫秒,默认 100;快捷项 10/20/50/100/500/1000 |
| 按下时长 | 1–100 毫秒,默认 5;不得超过点击间隔 |
| 启动倒计时 | 立即 / 1 / 3 / 5 秒,默认立即;可通过停止、关闭取消 |
| 自动停止方式 | 持续(默认)/ 完成指定手势次数 / 指定运行时长,三者互斥 |
| 手势次数 | 1–1000000,按系统成功完成回调计数,不按派发次数计数 |
| 运行时长 | 1–86400 秒;从倒计时结束起计算,倒计时不计入 |
| 显示实时点击频率 | 默认关闭,保存后在下一次开始生效;运行/倒计时期间不可改配置 |
**实时频率口径:**最近一秒 (当前时间 - 1000ms, 当前时间] 内系统回调成功完成的手势数,每 500 毫秒刷新一次,显示为“次/秒”。不是根据设置间隔计算的理论频率,也不代表目标应用成功响应次数。开始后的不足一秒仍按完整一秒窗口计算;慢速点击时读数可能在 0 和 1 之间变化。倒计时显示“等待开始”,停止清零,重新开始不携带旧运行数据。关闭开关不显示频率。
设置 10 毫秒仅是目标间隔,不保证每秒 100 次;实际速度受按下时长、回调延迟、系统及目标应用影响。短按下时长是否被目标识别必须在手机上验证,不以构建或核心测试代替。高频率可能增加耗电。
统计区预留固定高度,开关仅在停止后修改。到达次数/时长上限后停止派发;已派发手势不能撤回,可能在停止后完成;计时模式截止之后到达的回调不再计入本次完成次数。配置会保存,但运行状态和坐标不会保存,不自动恢复运行。
通过 Android 无障碍服务发送点击手势,使用无障碍悬浮窗口显示控制器。必须由用户手动启用;应用无法绕过授权。没有普通悬浮窗、截图、界面节点读取或联网权限,也不收集界面文字。此工具不是面向残障辅助的专用无障碍工具。
只用于你有权自动操作的场景。某些厂商、受保护界面或应用可能限制模拟点击。侧载应用遇到系统「受限设置」时,只有确认 APK 来源可信才允许相关设置,具体操作以手机系统说明为准。
- 构建 JDK:21(产物 Java/Kotlin 字节码 17)
- Gradle:8.11.1(Wrapper 已包含)
- Android Gradle Plugin:8.9.2
- Kotlin:2.1.20
- Android SDK Platform:35;Build Tools:35.0.0;minSdk:24;targetSdk:35
- 单元测试:JUnit 4.13.2
这是固定版本组合,不声称使用最新工具。local.properties 和 .tools/ 仅是本机环境,不应提交或复制到其他电脑。
.\gradlew.bat -PcoreOnly :core:test.\gradlew.bat -PcoreOnly -PandroidCheck :tools:android-check:compileKotlin此检查使用 Robolectric 的 Android 15 API jar 和仅限检查用的 R 占位类,验证 Kotlin 类型/API 引用。不处理 Android 资源,不执行 lint,不验证窗口行为,不能安装到手机。
先通过 Android Studio 或官方 sdkmanager 安装 SDK Platform 35、Build Tools 35.0.0 和 Platform Tools。安装前由你阅读并接受适用 SDK 许可;本机已在用户明确同意后接受标准 SDK 许可;其他电脑仍需自行审阅接受。参考文本位于 docs/android-sdk-license.txt。
# 根据实际安装位置,写入 local.properties 的 sdk.dir。
# 下方命令会交互式展示/确认所需许可,请自行决定是否接受。
sdkmanager "platforms;android-35" "build-tools;35.0.0" "platform-tools"
.\gradlew.bat :core:test :app:lintDebug :app:assembleDebug成功时 APK:app/build/outputs/apk/debug/app-debug.apk,这是开发调试签名,不是正式发布包。
adb devices
adb install -r app/build/outputs/apk/debug/app-debug.apkGradle 不一定自动使用 Windows 系统代理。如依赖下载失败,可在个人 Gradle 配置中设置 HTTP/HTTPS 代理,或临时用 JAVA_OPTS;不要将账号、密码写入项目配置。当前环境工具下载通过本机系统代理完成,不更改全局设置。
app/:安卓页面、无障碍服务、悬浮窗口及偏好存储。core/:无平台依赖的间隔校验、手势调度、几何规则、服务状态和窗口事务;含自动化测试。tools/android-check/:可选源码类型检查模块,不参与 APK 打包。docs/:已确认设计、实施计划、执行记录、许可参考和验证记录。
- 手动授权、显示窗口、拖动定位、计数增长。
- 10/20/50/100 毫秒间隔与 1/5/20 毫秒按下时长在目标应用的识别效果。
- 倒计时期间停止、关闭、移动控制条及锁屏是否取消启动。
- 次数模式是否完成指定手势数后停止;计时模式是否从倒计时结束起计算。
- 频率开关保存、关闭不显示、开启按一秒窗口刷新、停止清零与重启不混入旧统计。
- 靶心隐藏时,下层应用确实收到点击。
- 停止后计数不再增长(已经分发的手势除外);关闭后窗口消失。
- 控制条遮挡目标时拒绝开始;运行中移动控制条会停止。
- 屏幕边缘和不同导航方式下的实际坐标正确。
- 锁屏、旋转、禁用服务、重新连接不继续点击,无残留窗口。
无连接设备时,上述项目必须标记为未验证,不能以单元测试代替。