Auto.js 入门
Auto.js 是一个不需要 Root 权限的 JavaScript 自动化软件,发展至今已经从原来只针对自动化的 JavaScript 扩展语言演变为一个自动化软件,供两种方式给开发者进行使用,一种是提供了 GUI 页面,而另一种是简单的使用 javaScript 来完成一些相应的操作。
1 | Auto.js 开源版本已经不再维护,后续将只会维护 Auto.js Pro 专业版,其专业版内置了 Visual Studio 远程连接以及打包、制作等服务,除了自动化还可以开发 Android 软件并进行打包,同时内置了更加强大的加密方法。 |
通过 VS Code 开发 Auto.js
Auto.js 的开发一般通过VS Code 上的 Autojs 扩展或 Android Auto.js 直接进行下载,之后在 Android 或模拟器中打开 Auto.js Client 左侧导航中连接电脑,Auto.js 为我们提供了多种方式。
连接 VS Code \ VS Code 连接 Auto.js
Auto.js 为我们所提供的方法较多,我们首先通过 VS Code 连接 Auto.js 但一般会遇到 connect error:Error:connect ETIMEDOUT xxxxx:9317 的错误,通常难以解决,目前解决此问题的方法是开放 9317 和 8327 端口以通过防火墙规则。
1 | 在 VS Code 和 Android Auto.js 在一个网络的情况下,且 ADB 模式连接都已失败的情况下,可以采用另一种方法进行连接,VS Code 连接手机的前提下是 Android 已经安装好了 Auto.js |
在正常情况下,我们只需要通过 Ctrl+P
的组合键,来调出命令执行页面,之后在表单中输入 >Auto.js Pro:连接新的设备
-> adb 连接手机,即 USB 形式连接,如果出错,可以尝试下述方案,在 Auto.js 中的连接侧栏内,选择连接电脑,输入电脑 IP 即可,但需要主要的是该主机已经安装了VS Code 和相关 Auto.js 扩展,且在开启的情况下进行,即可连接。
对于部分 PC 端 Android 模拟器的选择,建议蓝叠国际版、夜神\MUME\雷电 等,同时也推荐使用 Android Studio & Genymotion 等作为开发主机,但非必要情况下还是建议通过手机投屏最为有效。
1 | 在上述的模拟器中,类似于 Android Studio& Genymotion 等纯 Android 模拟,是基于 X86 架构的,因此对于应用的支持仅限 Google 生态,所以我们下载后 Android 对应 Version 后还需要通过相对应的 Android Version 对 x86 架构进行翻译为 ARM。 |
自动化模拟点击
1 | // 检测无障碍服务是否已经启用 |
在上述的一段小 Demo 中,auto.waitFor()
以及 console.show()
主要用于检测无障碍服务和显示 Auto.js Code 执行过程中所输出的信息,同时在构造方法 registerQQ 内所包含的参数主要介绍如下:
Id | Name | Info |
---|---|---|
1 | className() | 目标应用程序的类名 |
2 | text() | 目标应用程序 |
3 | findOne() | 查找 |
4 | click() | 点击 |
可以通过在 Android Auto.js 中的左侧导航内,通过开启 :“无障碍服务、悬浮窗” 等较为主要的功能,来进行辅助编写。之后的 sleep()
主要设置延迟,到最后的 click
方法内的 x,y 同样通过 Auto.js 的悬浮窗来进行实现。
Layout at vertical
在提供基础的自动化服务之外,Auto.js 还提供了诸如类似页面空间类似语法,以此来构建自动化应用,以此来适配不同的场景,比如 Layout 中所应用到的垂直布局(vertical):
1 | ui.layout( |
通过 Auto.js 所特有的语法来构建一个垂直布局的表单,并通过读个参数来进行选择,在 Auto.js 中作者还提供了一系列的文本控件,如上述的 textColor
可以来设置字体的颜色,支持标准的 RGB 格式和颜色名称,都是可选的。
同时,还支持设置字体的大小,如 textSize="16sp"
即按照 Meterial Design 的规范,同时可以使用例如上述我们所添加的上边距 marginTop
,来进行实现基础表单的构造。
我们可以结合上述的 Auto.js 和 Layout at vertical 来进行构建和向下继续扩展,根据 首页 (autojs.org) 的官方文档从而构建一个自动化的工作流。
⬅️ Go back