当前自述文件 README.md
支持以下语言:
- 简体中文 [zh-Hans] # 当前
- 繁體中文 (香港) [zh-Hant-HK]
- 繁體中文 (台灣) [zh-Hant-TW]
- English [en]
- Français [fr]
- Español [es]
- 日本語 [ja]
- 한국어 [ko]
- Русский [ru]
- العربية [ar]
Auto.js 是一款 Android 平台支持 无障碍服务 的 JavaScript 自动化工具软件.
Auto.js 由 hyb1996 于 2017/01/27
初次发布, 于 2020/03/13
停止维护, 最终版本名称为 4.1.1 Alpha2
, 构建版本号为 461
.
AutoJs6 在 Auto.js 最终项目的基础上, 于 2021/12/01
进行二次开发, 继续保持开源免费.
下表列举了部分 Auto.js 相关项目 (按开发日期排序):
项目 | 应用名称 | 开发者 | 开发日期 | 终止开发日期 |
---|---|---|---|---|
Auto.js | Auto.js | hyb1996 | 2017/01/27 |
2020/03/13 |
Auto.js Pro 7 | Auto.js | hyb1996 | 2019/03/13 |
2019/07/08 |
Auto.js Pro 8 | AutoJsPro | hyb1996 | 2019/10/13 |
2021/07/24 |
Auto.js | Auto.js M | TonyJiangWJ | 2019/11/21 |
- |
AutoX | Autox.js | kkevsekk1 | 2020/07/24 |
- |
Auto.js Pro 9 | AutoJsPro | hyb1996 | 2021/03/28 |
2023/02/09 |
AutoJs6 | AutoJs6 | SuperMonster003 | 2021/12/01 |
- |
AutoX | Autox.js v6 | wilinz | 2022/05/26 |
- |
AutoX | Autox.js v7 | aiselp | 2024/04/21 |
- |
表格中的日期为预估值, 实际可能存在出入.
表格中 Auto.js Pro 7/8/9 为付费版本, 其余为免费开源版本.
- 可用作 JavaScript IDE (代码补全/变量重命名/代码格式化)
- 支持基于 无障碍服务 的自动化操作
- 支持浮动按钮快捷操作 (脚本录制及运行/查看包名及活动/布局分析)
- 支持选择器 API 并提供控件遍历/获取信息/控件操作 (类似 UiAutomator)
- 支持布局界面分析 (类似 Android Studio 的 LayoutInspector)
- 支持录制功能及录制回放
- 支持屏幕截图/保存截图/图片找色/图片匹配
- 支持 E4X (ECMAScript for XML) 编写界面
- 支持将脚本文件或项目打包为 APK 文件
- 支持利用 Root 权限扩展功能 (屏幕点击/滑动/录制/Shell)
- 支持作为 Tasker 插件使用
- 支持与 VSCode 连接并进行桌面开发 (需要 AutoJs6-VSCode-Extension 插件)
相较于 Auto.js 最终开源版本 4.1.1 Alpha2
, AutoJs6 主要进行了以下升级或变更:
- 支持通过 Shizuku 获得 ADB 特权并使用系统 API
- 支持构建 WebSocket 实例以完成基于 WebSocket 协议 的网络请求
- 新增模块 [ base64 / crypto / sqlite / i18n / notice / ocr / opencc / qrcode / shizuku / ... ]
- 多语言适配 [ 西 / 法 / 俄 / 阿 / 日 / 韩 / 英 / 简中 / 繁中 / ... ]
- 夜间模式适配 [ 设置页面 / 文档页面 / 布局分析页面 / 浮动窗口 / ... ]
- VSCode 插件 支持客户端 (LAN) 及服务端 (LAN/ADB) 连接方式
- Rhino 引擎由 v1.7.7.2 升级至 v1.7.16-SNAPSHOT
- Unicode 码位 转义支持 辅助平面 字符
'\u{1D160}'; /* 表示 "𝅘𝅥𝅮", 传统方式: '\uD834\uDD60'. */
- 支持 Object.values()
Object.values({name: 'Max', age: 4}); // ['max', 4]
- 支持 Array.prototype.includes()
[10, 20, NaN].includes(20); // true
- 支持 BigInt
typeof 567n === 'bigint'; // true
- 支持 模板字符串
`Lucky number: ${(Math.random() * 100).toFixed(0)}`
- 查看 Rhino 引擎 更多新特性
- 查看 Rhino 引擎 兼容性列表
- Unicode 码位 转义支持 辅助平面 字符
提示
内置模块使用 Kotlin 重新编写以提升脚本运行效率但可能需要多次迭代逐步完善提示
内置 init.js 文件默认为空但支持开发者自行扩展内置模块或挂载外部模块新增
axios 模块 / cheerio 模块 (Ref to AutoX)新增
sqlite 模块, 用于 SQLite 数据库简单操作 (Ref to Auto.js Pro) (参阅 项目文档 > SQLite)新增
mime 模块, 用于处理和解析 MIME 类型字符串 (参阅 项目文档 > MIME)新增
nanoid 模块, 可作为字符串 ID 生成器 (Ref to ai/nanoid)新增
sysprops 模块, 用于获取运行时环境配置数据 (参阅 项目文档 > 系统属性)新增
ocr 模块支持 Rapid OCR 引擎新增
布局分析支持切换窗口 (Ref to Auto.js Pro)新增
auto.clearCache 方法, 支持清除控件缓存 (Ref to Auto.js Pro)新增
threads.pool 方法, 支持线程池简单应用 (Ref to Auto.js Pro)新增
images.matchTemplate 方法增加 useTransparentMask 选项参数, 支持透明找图 (Ref to Auto.js Pro)新增
images.requestScreenCaptureAsync 方法, 用于 UI 模式异步方式申请截图权限 (Ref to Auto.js Pro)新增
images.requestScreenCapture 方法增加 isAsync 选项参数, 支持异步方式获取屏幕截图 (Ref to Auto.js Pro)新增
images.on('screen_capture', callback) 等事件监听方法, 支持监听屏幕截图可用事件 (Ref to Auto.js Pro)新增
images.stopScreenCapture 方法, 支持主动释放截图申请的相关资源 (Ref to Auto.js Pro)新增
images.psnr/mse/ssim/mssim/hist/ncc 及 images.getSimilarity 方法, 用于获取图像相似性度量值新增
images.isGrayscale 方法, 用于判断图像是否为灰度图像新增
images.invert 方法, 用于反色图像转换新增
s13n.point/time 方法, 用于标准化点对象及时长对象 (参阅 项目文档 > 标准化)新增
console 模块 gravity (重力), touchThrough (穿透点击), backgroundTint (背景着色) 等相关方法 (参阅 项目文档 > 控制台)新增
Mathx.randomInt/Mathx.randomFloat 方法, 用于返回指定范围内的随机整数或随机浮点数新增
app.launchDual/startDualActivity 等方法, 用于处理双开应用 (需要 Shizuku 或 Root 权限) (实验性)新增
app.kill 方法, 用于强制停止应用 (需要 Shizuku 或 Root 权限)新增
floaty.getClip 方法, 用于借助浮动窗口聚焦间接获取剪切板内容修复
Fragment 子类 (如 DrawerFragment / ExplorerFragment 等) 中存在的 View Binding 内存泄漏修复
ScreenCapture / ThemeColorPreference 等类中存在的实例内存泄漏修复
Android 14+ 申请截图权限导致应用崩溃的问题 (by chenguangming)pr #242
修复
Android 14+ 开启前台服务导致应用崩溃的问题修复
Android 14+ 代码编辑器运行按钮点击后无法正常亮起的问题修复
项目打包后应用可能因缺少必要库文件无法正常运行的问题issue #202
issue #223
pr #264
修复
编辑项目时可能因指定图标资源不存在而导致应用崩溃的问题issue #203
修复
截图权限申请时无法正常使用参数获取指定屏幕方向的截图资源修复
部分设备无法正常添加脚本快捷方式的问题 (试修)issue #221
修复
调用 http 模块与发送请求相关的方法将出现累积性请求发送延迟的问题issue #192
修复
Shizuku 服务在 AutoJs6 进入主活动页面之前可能无法正常使用的问题 (试修)issue #255
修复
random(min, max) 方法可能出现结果越界的问题修复
pickup 方法结果类型参数无法正常传入空数组的问题修复
UiObject#bounds() 得到的控件矩形可能被意外修改而破坏其不变性的问题修复
text/button/input 元素的文本内容包含半角双引号时无法正常解析的问题修复
text/textswitcher 元素的 autoLink 属性功能失效的问题修复
不同脚本可能错误地共享同一个 ScriptRuntime 对象的问题修复
全局变量 HEIGHT 及 WIDTH 丢失 Getter 动态属性的问题修复
脚本启动时 RootShell 随即加载可能导致启动高延迟的问题修复
控制台浮动窗口设置背景颜色导致矩形圆角样式丢失的问题修复
无障碍服务自动启动可能出现的服务异常问题 (试修)修复
主页文档页面左右滑动 WebView 控件时可能触发 ViewPager 切换的问题修复
文件管理器无法识别包含大写字母文件扩展名的问题修复
文件管理器首次进入项目目录时可能无法自动识别项目的问题修复
文件管理器删除文件夹后页面无法自动刷新的问题修复
文件管理器排序文件及文件夹时可能出现 ASCII 首字母名称置后的问题修复
代码编辑器调试功能的 FAILED ASSERTION 异常修复
代码编辑器调试过程中关闭编辑器后无法再次正常调试的问题修复
代码编辑器跳转到行尾时可能遗漏末尾字符的问题修复
主活动页面启动日志活动页面时可能出现闪屏的问题修复
打包应用无法正常使用 opencc 模块的问题优化
打包页面中 "不可用 ABI" 控件的点击提示体验优化
支持使用 Shizuku 控制 "指针位置" 显示开关优化
支持使用 Shizuku 控制 "投影媒体" 及 "修改安全设置" 权限开关优化
automator.gestureAsync/gesturesAsync 支持回调函数参数优化
tasks 模块使用同步方式进行数据库操作避免可能的数据访问不一致问题优化
脚本执行模式支持管道符号分隔模式参数 (如"ui|auto";
开头)优化
脚本执行模式支持单引号及反引号且支持省略分号 (如'ui';
或'ui'
开头)优化
脚本执行模式支持 axios, cheerio, dayjs 等模式参数快捷导入内置扩展模块 (如"axios";
开头)优化
脚本执行模式支持 x 或 jsox 模式参数快捷启用 JavaScript 内置对象扩展模块 (如"x";
开头)优化
img 元素 src 及 path 属性支持本地相对路径 (如<img src="a.png"
/>)优化
代码编辑器导入 Java 类和包名时支持智能判断插入位置优化
images 模块支持直接使用路径作为图像参数优化
importPackage 支持字符串参数优化
服务端模式 IP 地址支持剪切板导入智能识别且支持空格按键智能转换优化
文件管理器新建文件时支持默认前缀选择并自动生成合适的数字后缀优化
文件管理器运行项目时具体化异常消息提示issue #268
优化
文件管理器支持更多类型并支持显示对应的图标符号 (支持 800 多种文件类型)优化
文件管理器可编辑的文件类型 (jpg/doc/pdf...) 增加编辑按钮优化
文件管理器 APK 文件支持查看基础信息, Manifest 信息及权限列表优化
文件管理器音视频等媒体文件支持查看基础信息及 MediaInfo 信息优化
打包单文件时支持自动填入合适的标准化名包并支持无效字符过滤提示优化
打包单文件时支持根据已安装同包名应用自动设置图标并自增版本号及版本名称优化
打包项目配置文件支持 abis/libs 选项指定默认包含的 ABI 架构及扩展库优化
打包项目配置文件 abis/libs 选项无效或无可用时支持相关消息提示优化
LeakCanary 在正式发行版本中被排除以避免增加不必要性优化
项目源代码所有英文注释增加简体中文翻译以增强注释可读性优化
README 及 CHANGELOG 支持多语言 (由脚本自动生成)优化
Gradle 构建脚本提升版本自适应能力优化
部分依赖或本地库版本调整CHANGELOG.md
新增
opencc 模块 (参阅 项目文档 > 中文转换) (Ref to LZX284)新增
UiSelector 增加 plus 及 append 方法issue #115
新增
打包应用页面增加 ABI 及库的筛选支持 (Ref to AutoX)issue #189
修复
打包应用文件体积异常庞大的问题 (Ref to AutoX / LZX284)issue #176
修复
打包应用无法显示并打印部分异常消息的问题修复
打包应用页面选择应用图标后可能显示空图标的问题修复
打包应用包含 MLKit Google OCR 库时可能出现的上下文未初始化异常修复
ocr.mlkit/ocr.recognizeText/detect 方法无效的问题修复
部分文本 (如日志页面) 显示语言与应用设置语言可能不相符的问题修复
部分语言在主页抽屉开关项可能出现文本溢出的问题修复
部分设备无障碍服务开启后立即自动关闭且无任何提示消息的问题issue #181
修复
部分设备无障碍服务开启后设备物理按键可能导致应用崩溃的问题 (试修)issue #183
issue #186
修复
使用 auto(true) 重启无障碍服务后 pickup 功能异常的问题 (试修)issue #184
修复
floaty 模块创建浮动窗口拖动时可能导致应用崩溃的问题 (试修)修复
app.startActivity 无法使用简称参数的问题issue #182
issue #188
修复
importClass 导入的类名与全局变量冲突时代码抛出异常的问题issue #185
修复
Android 7.x 无法使用无障碍服务的问题修复
Android 14+ 可能无法正常使用 runtime.loadJar/loadDex 方法的问题 (试修)修复
安卓系统快速设置面板中 "布局范围分析" 和 "布局层次分析" 不可用的问题issue #193
修复
自动检查更新功能可能导致应用 ANR 的问题 (试修)issue #186
修复
文件管理器示例代码文件夹点击 "向上" 按钮后无法回到工作路径页面的问题issue #129
修复
代码编辑器使用替换功能时替换按钮无法显示的问题修复
代码编辑器长按删除时可能导致应用崩溃的问题 (试修)修复
代码编辑器点击 fx 按钮无法显示模块函数快捷面板的问题修复
代码编辑器模块函数快捷面板按钮函数名称可能溢出的问题优化
代码编辑器模块函数快捷面板适配夜间模式优化
打包应用启动页面适配夜间模式并调整应用图标布局优化
打包应用页面支持使用软键盘 ENTER 键实现光标跳转优化
打包应用页面支持点击 ABI 标题及库标题切换全选状态优化
打包应用页面默认 ABI 智能选择并增加不可选择项的引导提示优化
文件管理器根据文件及文件夹的类型及特征调整菜单项的显示情况优化
文件管理器文件夹右键菜单增加打包应用选项优化
无障碍服务启用但功能异常时在 AutoJs6 主页抽屉开关处将体现异常状态优化
控制台打印错误消息时附加详细的堆栈信息优化
部分依赖或本地库版本调整CHANGELOG.md
新增
dialogs.build() 选项参数属性 inputSingleLine新增
console.setTouchable 方法issue #122
修复
ocr 模块部分方法无法识别区域参数的问题issue #162
issue #175
修复
Android 7.x 发现新版本时无法获取版本详情的问题修复
Android 14+ 申请截图权限时导致应用崩溃的问题修复
主页抽屉快速切换 "浮动按钮" 开关时可能导致应用崩溃的问题修复
使用菜单关闭浮动按钮时重启应用后浮动按钮可能依然显示的问题修复
Android 13+ 设置页面选择并切换 AutoJs6 语言后无法生效的问题修复
构建工具初次构建时无法自动完成 OpenCV 资源部署的问题优化
原生化 bridges 模块以提升脚本执行效率 (Ref to aiselp)优化
重构无障碍服务相关代码以增强无障碍服务的功能稳定性 (实验性)issue #167
优化
UiObject 和 UiObjectCollection 的打印输出格式优化
构建工具在构建环境 Gradle JDK 版本不满足要求时作出升级提示优化
部分依赖或本地库版本调整CHANGELOG.md
如需对 AutoJs6 开源项目进行调试或开发, 可使用 Android Studio (Google 公司产品) 或 IntelliJ IDEA (Jetbrains 公司产品).
本小节以 Android Studio 为例介绍 AutoJs6 开源项目的编译构建方法, IntelliJ IDEA 与之类似.
下载 Android Studio Ladybug | 2024.2.1 Patch 2
版本 (按需选择其一):
- android-studio-2024.2.1.11-windows.exe (1.13 GB)
- android-studio-2024.2.1.11-windows.zip (1.14 GB)
注: 上述版本发布时间为 2024 年 10 月 31 日. 如需下载其他版本, 或上述链接已失效, 可访问 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, 确保相应版本的工具已勾选, SDK 工具的版本信息位于 AutoJs6 项目根目录的 version.properties
文件中.
AutoJs6 项目依赖的 JDK (Java 开发工具包)
发行版本不低于 17
, 但建议不低于 19
.
截至 2024 年 12 月 2 日, AutoJs6 可支持 JDK 最高版本为 23
.
注: 如果计算机系统已安装 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 项目开发的贡献人员.
贡献人员 | 提交数 | 最近提交 |
---|---|---|
kvii | 1 | 2024/10/16 |
chenguangming | 2 | 2024/05/14 |
LZX284 | 17 | 2023/11/19 |
TonyJiangWJ | 4 | 2023/10/31 |
little‑alei | 12 | 2023/07/12 |
aiselp | 6 | 2023/06/14 |
LYS86 | 2 | 2023/06/03 |
数据更新于 2024 年 10 月 23 日.
数据条目按 最近提交
降序排序.
新发起的暂未处理的 Pull Request, 将在合并处理后加入数据统计.
部分贡献人员在 GitHub Contributors 未能正常出现, 其提交记录为空, 仍可通过 Pull Request 查看贡献记录.