Auto.js 是一款 Android 平台支持 无障碍服务 的 JavaScript 自动化工具软件.
Auto.js 由 hyb1996 于 2017/01/27
初次发布, 于 2020/03/13
停止维护, 最终版本名称为 4.1.1 alpha2
.
AutoJs6 在 Auto.js 最终项目的基础上, 于 2021/12/01
进行二次开发, 继续保持开源免费.
基于 Auto.js 二次开发的开源项目 (以开发时间排序, 仅部分列举):
项目名称 | 应用名称 | 开发者 | 开发时间 |
---|---|---|---|
Auto.js | Auto.js M | TonyJiangWJ | 2019/11/21 |
AutoX | Autox.js / Autox.js v6 | kkevsekk1 | 2020/07/24 |
AutoJs6 | AutoJs6 | SuperMonster003 | 2021/12/01 |
- 可用作 JavaScript IDE (代码补全/变量重命名/代码格式化)
- 支持基于 无障碍服务 的自动化操作
- 支持浮动按钮快捷操作 (脚本录制及运行/查看包名及活动/布局分析)
- 支持选择器 API 并提供控件遍历/获取信息/控件操作 (类似 UiAutomator)
- 支持布局界面分析 (类似 Android Studio 的 LayoutInspector)
- 支持录制功能及录制回放
- 支持屏幕截图/保存截图/图片找色/图片匹配
- 支持 E4X (ECMAScript for XML) 编写界面
- 支持将脚本文件或项目打包为 APK 文件
- 支持利用 Root 权限扩展功能 (屏幕点击/滑动/录制/Shell)
- 支持作为 Tasker 插件使用
- 支持与 VSCode 连接并进行桌面开发 (需要 AutoJs6-VSCode-Extension 插件)
-
VSCode 插件支持客户端 (LAN) 及服务端 (LAN/ADB) 连接方式
-
多语言适配 (西/法/俄/阿/日/韩/英/简中/繁中等)
-
夜间模式适配 (设置页面/文档页面/布局分析页面/浮动窗口等)
-
Rhino 引擎由 v1.7.7.2 升级至 v1.7.15-SNAPSHOT
新增
ocr 模块支持 Paddle Lite 引擎 (by TonyJiangWJ)pr #120
新增
打包功能支持内置插件与外部插件两种打包方式 (by LZX284)pr #151
新增
WebSocket 模块 (参阅 项目文档 > WebSocket)新增
barcode / qrcode 模块 (参阅 项目文档 > 条码 / 二维码)新增
shizuku 模块 (参阅 项目文档 > Shizuku) 及主页抽屉权限开关新增
device.rotation / device.orientation 等方法新增
内部 Java 类支持 class 静态属性访问新增
支持在安卓系统设置页面选择并切换应用语言 (安卓 13 及以上)新增
支持设置页面添加或长按应用图标激活 应用快捷方式 , 可启动文档和设置等页面修复
重新合并部分 PR (by aiselp) 以解决部分脚本无法正常结束运行的问题pr #75
pr #78
修复
打包应用无法使用 AutoJs6 新增 API 的问题 (by LZX284)pr #151
修复
打包应用在系统夜间模式下的样式异常修复
VSCode 插件保存文件到本地时文件扩展名信息丢失的问题修复
使用协程特性运行项目产生未捕获异常致使应用崩溃的问题修复
重启或退出应用时浮动按钮无法记录其位置状态信息的问题修复
设备屏幕方向改变时无法获取更新后的设备配置信息的问题issue #153
修复
屏幕旋转至横向时 Toolbar 标题字体过小的问题修复
屏幕旋转至横向时应用主页的页签排版过于拥挤的问题修复
屏幕旋转至横向时浮动按钮可能溢出屏幕的问题issue #90
修复
屏幕多次旋转时无法恢复浮动按钮的坐标及屏幕侧边方向的问题修复
部分设备消息浮动框可能出现遗漏显示或重复显示的问题修复
消息浮动框在多个脚本同时运行时可能存在被遮蔽的问题issue #67
修复
使用广播分析布局时点击布局无法弹出菜单且导致应用崩溃的问题修复
第二次及以后创建的 WebSocket 实例均无法正常触发监听器的问题修复
撤销 importPackage 的全局重定向方法以避免某些作用域下的包导入异常issue #88
修复
日志活动页面使用复制或导出功能时可能导致应用崩溃的问题优化
日志活动页面导出功能重命名为发送功能并重新实现符合实际意义的导出功能优化
日志活动页面发送功能支持条目数量过大时自动截取并作出提示优化
ocr 模块同时兼容 Google MLKit 及 Paddle Lite 引擎 (参阅 项目文档 > 光学字符识别)优化
提升无障碍服务自动启动的成功概率优化
Kotlin 注解处理由 kapt 迁移至 KSP优化
构建工具支持 IntelliJ Idea EAP 版本优化
构建工具自适应 Java 发行版本以尽量避免 "无效的发行版本" 问题优化
构建工具优化 IDE 及相关插件的版本退级逻辑并增加版本预测能力优化
适配 VSCode 插件 1.0.7优化
部分依赖或本地库版本调整CHANGELOG.md
新增
代码编辑器的代码注释功能 (by 抠脚本人)pr #98
新增
auto.stateListener 用于无障碍服务连接状态监听 (by 抠脚本人)pr #98
新增
UiObject 类型添加 nextSibling / lastChild / offset 等方法 (参阅 项目文档 > 控件节点)修复
VSCode 插件在脚本字符总长度超过四位十进制数时无法解析数据的问题issue #91
issue #93
issue #100
issue #109
修复
VSCode 插件无法正常保存文件的问题issue #92
issue #94
修复
浮动按钮菜单项 "管理无障碍服务" 点击后可能未发生页面跳转的问题修复
runtime.requestPermissions 方法丢失的问题issue #104
修复
events.emitter 不支持 MainThreadProxy 参数的问题issue #103
修复
在pr #78
中存在的代码编辑器无法格式化代码的问题修复
使用 JavaAdapter 时导致 ClassLoader 调用栈溢出的问题issue #99
issue #110
优化
调整模块作用域 (by aiselp)pr #75
pr #78
优化
移除发行版本应用启动时的签名校验 (by LZX284)pr #81
优化
在pr #98
基础上的编辑器代码注释功能的行为, 样式及光标位置处理优化
在pr #98
基础上添加代码注释菜单项优化
适配 VSCode 插件 1.0.6优化
UiObject#parent 方法增加级数参数支持 (参阅 项目文档 > 控件节点)
新增
crypto 模块 (参阅 项目文档 > 密文)issue #70
新增
UI 模式增加 textswitcher / viewswitcher / viewflipper / numberpicker / video / search 等控件新增
日志活动页面增加复制及导出日志等功能issue #76
新增
客户端模式增加 IP 地址历史记录功能修复
客户端模式自动连接或服务端模式自动开启后可能无法显示 IP 地址信息的问题修复
客户端模式及服务端模式连接后在切换语言或夜间模式时连接断开且无法再次连接的问题修复
客户端模式输入目标地址时无法使用自定义端口的问题修复
客户端模式输入目标地址时某些字符将导致 AutoJs6 崩溃的问题修复
VSCode 插件远程命令可能出现解析失败造成命令无法响应的问题 (试修)修复
Android 7.x 发现新版本时无法获取版本详情的问题修复
images.pixel 无法获取无障碍服务截图的像素色值的问题issue #73
修复
UI 模式 Android 原生控件 (大写字母开头) 无法使用预置控件属性的问题修复
runtime.loadDex/loadJar 加载多个文件时仅第一个文件生效的问题issue #88
修复
部分设备安装应用后启动器仅显示文档图标的问题 (试修)issue #85
优化
适配 VSCode 插件 1.0.5优化
支持 cheerio 模块 (Ref to aiselp)issue #65
优化
JsWebSocket 实例支持使用 rebuild 方法重新重建实例并建立连接issue #69
优化
base64 模块支持 number 数组及 Java 字节数组作为主要参数的编解码优化
增加对 JavaMail for Android 的支持issue #71
优化
获取版本更新信息时使用 Blob 数据类型以增强无代理网络环境适应性优化
客户端模式连接过程中在主页抽屉副标题显示目标 IP 地址优化
客户端模式输入目标地址时支持对不合法的输入进行提示优化
客户端模式支持使用软键盘回车键建立连接优化
服务端模式开启后保持常开状态 (除非手动关闭或应用进程结束)issue #64
优化
实现 AutoJs6 与 VSCode 插件的双向版本检测并提示异常检测结果issue #89
优化
增加短信数据读取权限 (android.permission.READ_SMS) (默认关闭)优化
findMultiColors 方法内部实现 (by LYS86)pr #72
优化
runtime.loadDex/loadJar/load 支持按目录级别加载或同时加载多个文件优化
部分依赖或本地库版本调整CHANGELOG.md
如需对 AutoJs6 开源项目进行调试或开发, 可使用 Android Studio 或 IntelliJ IDEA (Jetbrains 公司产品).
本小节以 Android Studio 为例介绍 AutoJs6 开源项目的编译构建方法, IntelliJ IDEA 与之类似.
下载 Android Studio Hedgehog | 2023.1.1 RC 1
版本 (按需选择其一):
- android-studio-2023.1.1.23-windows.exe (1.1 GB)
- android-studio-2023.1.1.23-windows.zip (1.1 GB)
注: 上述版本发布时间为 2023 年 10 月 17 日. 如需下载其他版本, 或上述链接已失效, 可访问 Android Studio 发行版本归档 页面.
安装或解压上述文件, 运行 Android Studio 软件 (如 "D:\android-studio\bin\studio64.exe"
).
注: 如果计算机系统已安装 Android SDK (安卓软件开发工具包), 则可跳过此小节内容.
在 Android Studio 软件中使用快捷键 CTRL + ALT + S
打开设置页面:
Appearance & Behavior (外观与表现) ->
System Settings (系统设置) ->
Android SDK (安卓软件开发工具包)
Android SDK Location (安卓软件开发工具包位置)
处如果是空白内容, 可点击右侧 Edit (编辑)
按钮, 在弹出的窗口中多次点击 Next (下一步)
.
注: 过程中可能需要同意一个或多个相关协议才能继续.
待相关资源下载并安装完毕, 点击 Finish (完成)
按钮.
上述 Android SDK Location (安卓软件开发工具包位置)
处将自动完成路径填写, SDK 准备工作随即完成.
AutoJs6 需要使用部分 SDK 工具 (如 NDK 及 CMake).
注: 如果计算机系统已安装 AutoJs6 全部所需的 Android SDK Tools, 则可跳过此小节内容.
在 Android Studio 软件中使用快捷键 CTRL + ALT + S
打开设置页面:
Appearance & Behavior (外观与表现) ->
System Settings (系统设置) ->
Android SDK (安卓软件开发工具包) ->
SDK Tools (SDK 工具) (位于右侧窗口)
勾选 Show Package Details (显示包详情)
, 依次点击 NDK 及 CMake, 确保相应版本的工具已勾选 (截至 2023 年 10 月 30 日, NDK 所需版本为 21.1.6352462
, CMake 所需版本为 3.10.2
).
SDK 工具的版本信息位于 AutoJs6 项目根目录的 version.properties
文件中.
AutoJs6 项目依赖的 JDK (Java 开发工具包)
发行版本不低于 17
, 但建议不低于 19
.
需额外留意, 截至 2023 年 10 月 30 日, AutoJs6 暂不支持 JDK 最新版本 21
.
注: 如果计算机系统已安装 JDK 且版本满足上述要求, 则可跳过此小节内容.
JDK 可使用 IDE 直接下载, 或访问 Oracle 网站 下载.
在 Android Studio 软件中使用快捷键 CTRL + ALT + S
打开设置页面:
Build, Execution, Deployment (构建, 执行, 开发) ->
Build Tools (构建工具) ->
Gradle
Gradle JDK
处可选择或添加不同版本的 JDK.
如果列表中已存在合适版本的 JDK (>= 17
), 则直接选择即可.
否则可以选择 Download JDK (下载 JDK)
下载合适的 JDK, 点击 Download (下载)
按钮并等待下载完成.
也可以选择 Add JDK (添加 JDK)
添加已存在的本地 JDK, 定位其目录并完成 JDK 添加.
在 Android Studio 主页面点击 Get from VCS (从版本控制系统获取)
按钮.
URL (统一资源定位地址)
处填入 https://github.com/SuperMonster003/AutoJs6.git
,
Directory (目录)
处可根据需要修改为特定路径.
点击 Clone (克隆)
按钮, 等待 AutoJs6 项目资源在设备本地完成克隆.
注: 上述过程可能需要安装 Git (分布式版本控制系统).
克隆完成后, Android Studio 将打开 AutoJs6 的项目窗口, 并自动完成初步的 Dependencies (依赖)
下载及 Gradle 构建工作.
注: 上述过程可能非常耗时. 若网络条件欠佳, 可能需要重试多次 (点击 Retry 按钮).
构建完成后, Android Studio 的 Build
标签页将出现类似 BUILD SUCCESSFUL in 1h 17m 34s
的消息.
打包项目并生成可安装到安卓设备的 APK 文件:
- 调试版 (Debug Version)
Build (构建)
->Build Bundle(s) / APK(s)
->Build APK(s)
- 生成带默认签名的调试版安装包
- 路径示例:
"D:\AutoJs6\app\build\outputs\apk\debug\"
- 发布版 (Release Version)
Build (构建)
->Generate Signed Bundle / APK
- 选择
APK
选项 - 准备好签名文件 (新建或选取), 生成已签名的发布版安装包
- 路径示例:
"D:\AutoJs6\app\release\"
参阅: Android Docs
开发 AutoJs6 可运行的脚本, 需使用合适的开发工具:
如需在 PC 上进行脚本编写与调试, VSCode 插件可以实现 PC 与手机的互联:
- AutoJs6-VSCode-Extension - AutoJs6 调试器 (VSCode 平台插件)
使用开发工具编写代码时, 代码智能补全功能可以更好地辅助开发者完成代码编写:
- AutoJs6-TypeScript-Declarations - AutoJs6 声明文件 (代码智能补全)
编写代码时, AutoJs6 相关 API 及使用方式, 可随时查阅应用文档:
- AutoJs6-Documentation - AutoJs6 应用文档
现有的脚本开发项目可作为参考, 激发个人脚本项目的创作灵感:
- Ant-Forest - 蚂蚁森林能量自动收取脚本 by TonyJiangWJ
- Ant-Forest - 蚂蚁森林能量自动收取脚本 by SuperMonster003
- autojs - Auto.js 实用脚本 by e1399579
- autojsDemo - Auto.js 演示示例 by snailuncle
- autojs 相关仓库 - GitHub 与 autojs 话题相关的全部仓库
感谢每一位参与 AutoJs6 项目开发的贡献人员.
贡献人员 | 提交数 | 最近提交 |
---|---|---|
LZX284 (Ai) | 13 | 2023/10/09 |
TonyJiangWJ | 3 | 2023/08/29 |
little-alei (抠脚本人) | 12 | 2023/07/12 |
aiselp | 6 | 2023/06/14 |
LYS86 (LYS) | 2 | 2023/06/03 |
数据更新于 2023/10/25
.
数据条目按 最近提交
降序排序.
新发起的暂未处理的 Pull Request, 将在合并处理后加入数据统计.
部分贡献人员在 GitHub Contributors 未能正常出现, 其提交记录为空, 仍可通过 Pull Request 查看贡献记录.