11** 利用Android无障碍服务(AccessibilityService)能做什么**
22
33可以开发各种各样的自动化脚本程序以及协助脚本,比如:
4+
451 . 微信自动抢红包
562 . 微信自动接听电话
673 . 支付宝蚂蚁森林自动浇水
9106 . 远程控制
1011
1112# Assists作用
13+
1214基于Android无障碍服务(AccessibilityService)封装的框架
15+
13161 . 简化自动化脚本开发
14172 . 为自动化脚本提供各种增强能力
15183 . 提高脚本易维护性
19+ 4 . 支持html+js/vue开发自动化脚本
1620
1721# 主要能力
22+
18231 . 易于使用的无障碍服务API
19242 . 浮窗管理器:易于实现及管理浮窗
20253 . 步骤器:为快速实现、可复用、易维护的自动化步骤提供框架及管理
21264 . 配套屏幕管理:快速生成输出屏幕截图、元素截图
22275 . 屏幕管理结合opencv:便于屏幕内容识别为自动化提供服务
28+ 6 . 封装webview接口支持html+js/vue开发自动化脚本
2329
2430# 一些示例
2531
26- | 基础示例 | 进阶示例 | 高级示例 | 图片截取 |
27- | - | - | - | - |
28- | <img src =" https://github.com/user-attachments/assets/b537bab4-cc55-41c2-8f81-9e8b965e939a " width =180/ > | <img src =" https://github.com/user-attachments/assets/9b50628c-603e-47d1-a6ae-5600358575fc " width =180/ > | <img src =" https://github.com/user-attachments/assets/262b9028-5926-478b-93bd-3e20110db391 " width =180/ >| <img src =" https://github.com/user-attachments/assets/522236e4-5880-4f00-9f4c-76728df3cfe6 " width =180/ > |
32+ | 基础示例 | 进阶示例 | 高级示例 | 图片截取 |
33+ | ------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------ |
34+ | <img src =" https://github.com/user-attachments/assets/b537bab4-cc55-41c2-8f81-9e8b965e939a " width =180/ > | <img src =" https://github.com/user-attachments/assets/9b50628c-603e-47d1-a6ae-5600358575fc " width =180/ > | <img src =" https://github.com/user-attachments/assets/262b9028-5926-478b-93bd-3e20110db391 " width =180/ > | <img src =" https://github.com/user-attachments/assets/522236e4-5880-4f00-9f4c-76728df3cfe6 " width =180/ > |
2935
30- | 自动收能量 | 自动发朋友圈| 自动滑动朋友圈| 无障碍服务开启引导 |
31- | :-: | :-: | :-: | :-: |
32- | <img src =" https://github.com/ven-coder/Assists/assets/27257149/8d1d09b2-e4b3-44dc-b5df-68fcdcac7a62 " width =180 /> | <img src =" https://github.com/ven-coder/Assists/assets/27257149/4713656b-a8ff-4c99-9814-a0b883ebbe64 " width =180 />| <img src =" https://github.com/ven-coder/Assists/assets/27257149/056ef46b-8076-4f90-ab5a-263ff308f8e8 " width =180 />| <img src =" https://github.com/user-attachments/assets/9e20a757-8d8f-47e6-999b-8532b4e6827a " width =180 /> |
33- 防止下拉通知栏| 通知/Toast监听| 自动接听微信电话| 窗口缩放&拖动|
34- | <img src =" https://github.com/user-attachments/assets/76613db4-c0a9-4ad8-abde-ec0ef8f7ed09 " width =180 />| <img src =" https://github.com/user-attachments/assets/cc6a861a-3512-43c0-9c1d-4e61229dc527 " width =180 />| <img src =" https://github.com/user-attachments/assets/25472235-8d6d-4327-9bc5-db47253b7f0e " width =180 />| <img src =" https://github.com/user-attachments/assets/184fb248-66e0-4bb4-aaae-c1b8c4cef70a " width =180 />|
36+ | 自动收能量 | 自动发朋友圈 | 自动滑动朋友圈 | 无障碍服务开启引导 |
37+ | :---------------------------------------------------------------------------------------------------------------: | :---------------------------------------------------------------------------------------------------------------: | :---------------------------------------------------------------------------------------------------------------: | :-----------------------------------------------------------------------------------------------------: |
38+ | <img src =" https://github.com/ven-coder/Assists/assets/27257149/8d1d09b2-e4b3-44dc-b5df-68fcdcac7a62 " width =180 /> | <img src =" https://github.com/ven-coder/Assists/assets/27257149/4713656b-a8ff-4c99-9814-a0b883ebbe64 " width =180 /> | <img src =" https://github.com/ven-coder/Assists/assets/27257149/056ef46b-8076-4f90-ab5a-263ff308f8e8 " width =180 /> | <img src =" https://github.com/user-attachments/assets/9e20a757-8d8f-47e6-999b-8532b4e6827a " width =180 /> |
39+ | 防止下拉通知栏 | 通知/Toast监听 | 自动接听微信电话 | 窗口缩放&拖动 |
40+ | <img src =" https://github.com/user-attachments/assets/76613db4-c0a9-4ad8-abde-ec0ef8f7ed09 " width =180 /> | <img src =" https://github.com/user-attachments/assets/cc6a861a-3512-43c0-9c1d-4e61229dc527 " width =180 /> | <img src =" https://github.com/user-attachments/assets/25472235-8d6d-4327-9bc5-db47253b7f0e " width =180 /> | <img src =" https://github.com/user-attachments/assets/184fb248-66e0-4bb4-aaae-c1b8c4cef70a " width =180 /> |
3541
3642##### 更多示例可以直接下载demo查看
43+
3744<img src =" https://github.com/ven-coder/Assists/assets/27257149/c4ce8c21-ac8b-4d3f-bfe4-257a525fb3c5 " width =200/ >
3845
3946[ 📥 ; 直接下载] ( https://www.pgyer.com/1zaijG )
4047
4148# 🚀 快速开始
49+
4250### 1. 导入依赖
51+
4352#### 1.1 项目根目录build.gradle添加
53+
4454```
4555allprojects {
4656 repositories {
@@ -50,9 +60,10 @@ allprojects {
5060}
5161```
5262
53-
5463#### 1.2 主模块build.gradle添加
64+
5565最新版本:[ ![ ] ( https://jitpack.io/v/ven-coder/Assists.svg )] ( https://jitpack.io/#ven-coder/Assists )
66+
5667```
5768dependencies {
5869 //按需添加
@@ -62,13 +73,18 @@ dependencies {
6273 implementation "com.github.ven-coder.Assists:assists-mp:最新版本"
6374 //opencv相关(可选)
6475 implementation "com.github.ven-coder.Assists:assists-opcv:最新版本"
65-
76+ //html+js/vue自动化脚本支持(可选,⚠️当前还处于可用但非稳定版本)
77+ implementation "com.github.ven-coder.Assists:assists-web:最新版本"
78+
6679}
6780```
6881
6982### 2. 注册&开启服务
83+
7084#### 1.1 主模块AndroidManifest.xml中注册服务
85+
7186一定要在主模块中注册服务,不然进程被杀服务也会自动被关闭需要再次开启(小米可保持杀进程保持开启,其他vivo、oppo、鸿蒙机型似乎不行)
87+
7288``` xml
7389<?xml version =" 1.0" encoding =" utf-8" ?>
7490<manifest xmlns : android =" http://schemas.android.com/apk/res/android"
@@ -99,7 +115,7 @@ dependencies {
99115 android : name =" android.accessibilityservice"
100116 android : resource =" @xml/assists_service" />
101117 </service >
102-
118+
103119 <!-- 或者使用下面的服务可以解决一些应用混淆节点的问题,比如微信8.0.51以上版本获取的节点元素错乱问题 -->
104120 <!-- ⚠️ 选其一 -->
105121 <service
@@ -115,28 +131,35 @@ dependencies {
115131 android : name =" android.accessibilityservice"
116132 android : resource =" @xml/assists_service" />
117133 </service >
118-
134+
119135 <!-- 添加代码 ↑-->
120136 </application >
121137
122138</manifest >
123139```
140+
124141#### 1.2 开启服务
125- 调用``` AssistsCore.openAccessibilitySetting() ``` 跳转到无障碍服务设置页面,找到对应的应用开启服务。
142+
143+ 调用 `` AssistsCore.openAccessibilitySetting() `` 跳转到无障碍服务设置页面,找到对应的应用开启服务。
126144服务开启后执行以下API测试是否成功集成:
145+
127146```
128147AssistsCore.getAllNodes().forEach { it.logNode() }
129148```
149+
130150这段代码是获取当前页面所有节点元素的基本信息在Logcat(tag:assists_log)打印出来,如下图:
131151
132152<img src =" https://github.com/user-attachments/assets/81725dc3-d924-44f4-89fe-75938ae659e9 " width =350/ >
133153
134154至此,已成功集成Assists。如果没有任何输出请检查集成步骤是否正确。
135155
136156# 步骤器-快速实现复杂自动化脚本
157+
137158步骤器可以帮助快速实现复杂的业务场景,比如自动发朋友圈、获取微信所有好友昵称、自动删除好友...等等都是一些逻辑较多的业务场景,步骤器可帮助快速实现。
138- ### 1.继承``` StepImpl ```
139- 直接在接口` onImpl(collector: StepCollector) ` 写步骤逻辑,每个步骤自定义步骤的序号,用于区分执行的步骤。如果重复则会以最后一个步骤为准
159+
160+ ### 1.继承 `` StepImpl ``
161+
162+ 直接在接口 ` onImpl(collector: StepCollector) ` 写步骤逻辑,每个步骤自定义步骤的序号,用于区分执行的步骤。如果重复则会以最后一个步骤为准
140163
141164``` kotlin
142165class MyStepImpl :StepImpl () {
@@ -166,6 +189,7 @@ class MyStepImpl:StepImpl() {
166189```
167190
168191### 2. 开始执行
192+
169193执行前请确保无障碍服务已开启
170194
171195``` kotlin
@@ -174,20 +198,35 @@ StepManager.execute(MyStepImpl::class.java, 1, isBegin = true)
174198```
175199
176200### 3. 停止执行
201+
177202``` kotlin
178203// 设置停止标志,将取消所有正在执行的步骤
179204StepManager .isStop = true
180205```
181206
207+ # Html+js/vue/vite开发自动化脚本
208+
209+ > ⚠️当前处于可用但非稳定版本
210+
211+ 本仓库源码中包含了一个通过vite编写的一个自动化脚本示例:` assists-web-simple ` ,可自行下载编译。项目中已经有编译好的vite示例在 ` simple/src/main/assets/assists-web-simple ` 目录下,在当前示例App中可直接加载查看这个vite编写的自动化脚本。
212+
213+ ` assists-web ` 是基础的web支持库,封装了webview js接口对web端调用的支持,但是对于web端本地开发调试不友好,需要了解android端相关知识
214+
215+ ## AssistsX脚本平台
216+ 为了支持本地开发调试和动态化加载脚本,特地开发了脚本平台App:[ AssistsX] ( ) ,可支持脚本的本地安装,在线安装,局域网加载,远程加载
217+
218+ ### [ 开发文档传送门] ( )
219+
182220## 其他教程博客
221+
183222### 获取节点信息
184- - [ 使用weditor获取节点信息] ( https://juejin.cn/post/7484188555735613492 )
185223
224+ - [ 使用weditor获取节点信息] ( https://juejin.cn/post/7484188555735613492 )
186225- [ 使用Appium获取节点信息] ( https://juejin.cn/post/7483409317564907530 )
187-
188226- [ 使用uiautomatorviewer获取节点信息] ( https://blog.csdn.net/weixin_37496178/article/details/138328871?fromshare=blogdetail&sharetype=blogdetail&sharerId=138328871&sharerefer=PC&sharesource=weixin_37496178&sharefrom=from_link )
189227
190228### 示例教程
229+
191230- [ Appium结合AccessibilityService实现自动化微信登录] ( https://juejin.cn/post/7483409317564907530 )
192231
193232### [ 版本历史] ( https://github.com/ven-coder/Assists/releases )
@@ -199,21 +238,25 @@ StepManager.isStop = true
199238| <img src =" https://github.com/user-attachments/assets/f25c206d-25e0-4a65-aba2-3698a9d1bf02 " width =200/ > | <img src =" https://github.com/user-attachments/assets/49378ec3-71a2-4a5e-8510-bec4ec8d915e " width =200/ >
2002391群已满200人,要进1群可加我拉进1群
201240
202- ### ❤️ 已入驻爱发电,感谢[ 支持] ( https://afdian.com/a/vencoder )
241+ ### ❤️ 已入驻爱发电,感谢[ 支持] ( https://afdian.com/a/vencoder )
203242
204243## 我的付费社群
244+
205245付费社群提供的服务:
246+
2062471 . 完整易于阅读的开发文档
2072482 . Assists开发指导
2082493 . 开发疑难解答
2092504 . 群友互助资源对接
2102515 . 基于Assists开发的抖音养号,小红书养号,支付宝能量收集,支付宝农场,无线远程控制等源码(补充中...)
211- <img width =" 500 " alt =" image " src =" https://github.com/user-attachments/assets/7607a4e6-4845-474e-a9c6-e685cc306523 " />
252+ <img width =" 500 " alt =" image " src =" https://github.com/user-attachments/assets/7607a4e6-4845-474e-a9c6-e685cc306523 " />
212253
213254##### 微信扫扫即可加入
255+
214256<img src =" https://github.com/ven-coder/Assists/assets/27257149/7ae8e825-f489-46e3-96f0-ed03d12db9e8 " width =200/ >
215257
216258##### 定制开发可直接联系个人微信:x39598
217259
218260# License
261+
219262[ GNU General Public License v3.0] ( https://github.com/ven-coder/Assists/blob/master/LICENSE )
0 commit comments