discover · compare · collections · requirements · contribute · feed · watching · stats · help with your tokens
SuperMonster003/AutoJs6 · source
Snapshot 0 · 2026-11-04T12:47:26Z · Kotlin · MPL-2.0
Content fingerprint
dec588aa0cbdeb38103aa413c1c05f416cac1cb67d951e4d44e55fd88e67b40bGitHub description at capture
安卓平台 JavaScript 自动化工具 (Auto.js 二次开发项目)
README at capture
<!--suppress HtmlDeprecatedAttribute, HttpUrlsUsage -->
<div align="center">
<p>
<img src="https://s1.imagehub.cc/images/2023/03/07/af8ed087c9d354b9ab6142aae7bbafb6.png" alt="autojs6-banner_800×224" border="0" width="704" />
</p>
<p>Android 平台支持无障碍服务的 JavaScript 自动化工具</p>
<p>
<a href="http://download.autojs6.com"><img alt="GitHub release (latest by date)" src="https://img.shields.io/github/v/release/SuperMonster003/AutoJs6?label=Release"/></a>
<a href="http://issues.autojs6.com"><img alt="GitHub closed issues" src="https://img.shields.io/github/issues/SuperMonster003/AutoJs6?color=A24232&label=Issues"/></a>
<a href="http://commit.autojs6.com/99a1d8490fac5b6d55f6f183db59ad833a2064ed"><img alt="Created" src="https://img.shields.io/date/1636632233?color=2e7d32&label=Created"/></a>
<br>
<a href="https://developer.android.com/studio/archive"><img alt="Android Studio" src="https://img.shields.io/badge/Android%20Studio-2023.3+-B64FC8"/></a>
<a href="https://www.jetbrains.com/idea/download/other.html"><img alt="IntelliJ IDEA" src="https://img.shields.io/badge/IntelliJ%20IDEA-2023.3+-EE4677"/></a>
<br>
<a href="https://github.com/mozilla/rhino"><img alt="Rhino" src="https://img.shields.io/badge/Rhino-2.0.0--SNAPSHOT-795548"/></a>
<a href="https://www.jetbrains.com/?from=AutoJs6"><img alt="JetBrains supporter" src="https://img.shields.io/badge/Supporter-JetBrains-AA2786"/></a>
<a href="http://project.autojs6.com/blob/master/LICENSE"><img alt="GitHub License" src="https://img.shields.io/github/license/SuperMonster003/AutoJs6?color=534BAE&label=License"/></a>
</p>
</div>
******
### 语言 (Languages)
******
当前自述文件 `README.md` 支持以下语言:
- 简体中文 [zh-Hans] # 当前
- [繁體中文 (香港) [zh-Hant-HK]](http://project.autojs6.com/blob/master/.readme/README-zh-Hant-HK.md)
- [繁體中文 (台灣) [zh-Hant-TW]](http://project.autojs6.com/blob/master/.readme/README-zh-Hant-TW.md)
- [English [en]](http://project.autojs6.com/blob/master/.readme/README-en.md)
- [Français [fr]](http://project.autojs6.com/blob/master/.readme/README-fr.md)
- [Español [es]](http://project.autojs6.com/blob/master/.readme/README-es.md)
- [日本語 [ja]](http://project.autojs6.com/blob/master/.readme/README-ja.md)
- [한국어 [ko]](http://project.autojs6.com/blob/master/.readme/README-ko.md)
- [Русский [ru]](http://project.autojs6.com/blob/master/.readme/README-ru.md)
- [العربية [ar]](http://project.autojs6.com/blob/master/.readme/README-ar.md)
******
### 简介
******
[Auto.js](https://github.com/hyb1996/Auto.js) 是一款 Android 平台支持 [无障碍服务](https://developer.android.com/guide/topics/ui/accessibility/service?hl=zh-cn) 的 JavaScript 自动化工具软件.
Auto.js 由 [hyb1996](https://github.com/hyb1996) 于 `2017/01/27` 初次发布, 于 `2020/03/13` 停止维护, 最终版本名称为 `4.1.1 Alpha2`, 构建版本号为 `461`.
AutoJs6 在 Auto.js 最终项目的基础上, 于 `2021/12/01` 进行二次开发, 继续保持开源免费.
下表列举了部分 Auto.js 相关项目:
| <span style="word-break:keep-all;white-space:nowrap">项目</span> | <span style="word-break:keep-all;white-space:nowrap">应用名称</span> | <span style="word-break:keep-all;white-space:nowrap">主要开发者</span> | <span style="word-break:keep-all;white-space:nowrap">创建日期</span> | <span style="word-break:keep-all;white-space:nowrap">最近活跃</span> | <span style="word-break:keep-all;white-space:nowrap">活跃维护期 (年)</span> |
|:------:|:------:|:------:|:------:|:------:|:------:|
| <span style="word-break:keep-all;white-space:nowrap">[AutoJs6](https://github.com/SuperMonster003/AutoJs6)</span> | <span style="word-break:keep-all;white-space:nowrap">[AutoJs6](https://github.com/SuperMonster003/AutoJs6/blob/a8ce1b9acb541e9736c33134be3194c3148a15a3/common/src/main/res/values/strings.xml#L27)</span> | <span style="word-break:keep-all;white-space:nowrap">[SuperMonster003](https://github.com/SuperMonster003)</span> | <span style="word-break:keep-all;white-space:nowrap">[`2021/12/01`](https://github.com/SuperMonster003/AutoJs6/commit/99a1d8490fac5b6d55f6f183db59ad833a2064ed)</span> | <span style="word-break:keep-all;white-space:nowrap">[`2026/11/03`](https://github.com/SuperMonster003/AutoJs6/releases/tag/v6.8.0)</span> | <span style="word-break:keep-all;white-space:nowrap">4.93</span> |
| <span style="word-break:keep-all;white-space:nowrap">[AutoX](https://github.com/aiselp/AutoX)</span> | <span style="white-space:pre">[Autox.js v7](https://github.com/aiselp/AutoX/blob/484491fd5fe12b8203d0b09c181eb0f471c0ea9f/app/build.gradle.kts#L124)</span> | <span style="word-break:keep-all;white-space:nowrap">[aiselp](https://github.com/aiselp)</span> | <span style="word-break:keep-all;white-space:nowrap">[`2024/04/21`](https://github.com/aiselp/AutoX/commit/c76e80b0d049947b0f3ac49ada2d16d0b10c2800)</span> | <span style="word-break:keep-all;white-space:nowrap">[`2026/10/09`](https://github.com/aiselp/AutoX/commit/54d2638fec07c0bd79663e286e8e426a6e28511e)</span> | <span style="word-break:keep-all;white-space:nowrap">2.47</span> |
| <span style="word-break:keep-all;white-space:nowrap">[Autoxjs_v6_ozobi](https://github.com/ozobiozobi/Autoxjs_v6_ozobi)</span> | <span style="white-space:pre">[Autox.js v6_ozobi](https://github.com/ozobiozobi/Autoxjs_v6_ozobi/blob/a651d02246e09cfbbfa87e6eaccf900fab/app/build.gradle.kts#L143)</span> | <span style="word-break:keep-all;white-space:nowrap">[ozobiozobi](https://github.com/ozobiozobi)</span> | <span style="word-break:keep-all;white-space:nowrap">`2024/10/01`</span> | <span style="word-break:keep-all;white-space:nowrap">[`2026/04/16`](https://github.com/ozobiozobi/Autoxjs_v6_ozobi/commit/e8563000af8068f07f821a4a8b23d4457167c1ab)</span> | <span style="word-break:keep-all;white-space:nowrap">1.54</span> |
| <span style="word-break:keep-all;white-space:nowrap">[AutoJs4](https://github.com/SuperMonster003/AutoJs4)</span> | <span style="word-break:keep-all;white-space:nowrap">[AutoJs4](https://github.com/SuperMonster003/AutoJs4/blob/a6b952704b8305aed1bb6265f40acb3598ac80df/app/src/main/res/values/strings.xml#L2)</span> | <span style="word-break:keep-all;white-space:nowrap">[SuperMonster003](https://github.com/SuperMonster003)</span> | <span style="word-break:keep-all;white-space:nowrap">[`2023/04/11`](https://github.com/SuperMonster003/AutoJs4/commit/8de11699b608be1c1f49f0f10e2e2826f8c77978)</span> | <span style="word-break:keep-all;white-space:nowrap">[`2026/03/15`](https://github.com/SuperMonster003/AutoJs4/commit/3fb08269198ebd49a880ab3ca2621383eaa10443)</span> | <span style="word-break:keep-all;white-space:nowrap">2.93</span> |
| <span style="word-break:keep-all;white-space:nowrap">[AutoX](https://github.com/autox-community/AutoX)</span> | <span style="white-space:pre">[Autox.js v6](https://github.com/autox-community/AutoX/blob/8b6776cff8b0fca4be4a52719b7d7d07c0a058f3/app/build.gradle#L130)</span> | <span style="word-break:keep-all;white-space:nowrap">[autox-community](https://github.com/autox-community)</span> | <span style="word-break:keep-all;white-space:nowrap">[`2025/03/30`](https://github.com/autox-community/AutoX/commit/696181012293d6fc6c6d6333b80bc5be6c2b442d)</span> | <span style="word-break:keep-all;white-space:nowrap">[`2025/11/29`](https://github.com/autox-community/AutoX/commit/4dca21b4af5e17e3f6c372d8b74d9700a3c8fa5a)</span> | <span style="word-break:keep-all;white-space:nowrap">0.67</span> |
| <span style="word-break:keep-all;white-space:nowrap">[Auto.js](https://github.com/TonyJiangWJ/Auto.js)</span> | <span style="word-break:keep-all;white-space:nowrap">[Auto.js M](https://github.com/TonyJiangWJ/Auto.js/blob/268ec8895bbfa28fc7715154eb15b1c1eaaefd14/app/src/main/res/values/strings.xml#L2)</span> | <span style="word-break:keep-all;white-space:nowrap">[TonyJiangWJ](https://github.com/TonyJiangWJ)</span> | <span style="word-break:keep-all;white-space:nowrap">[`2019/11/21`](https://github.com/TonyJiangWJ/Auto.js/commit/dbd71b8c0ab0737b2666f2cc1dc5ecd3c82f83fd)</span> | <span style="word-break:keep-all;white-space:nowrap">[`2025/08/22`](https://github.com/TonyJiangWJ/Auto.js/commit/2fd2cd000e5d9dff2f584ecbb3bf6980bbcba64b)</span> | <span style="word-break:keep-all;white-space:nowrap">5.76</span> |
| <span style="word-break:keep-all;white-space:nowrap">[AutoX](https://github.com/kkevsekk1/AutoX)</span> | <span style="white-space:pre">[Autox.js](https://github.com/kkevsekk1/AutoX/blob/8143e4ed893d4af05d22aa791b83a962f9959873/app/src/main/res/values/strings.xml#L2)</span> | <span style="word-break:keep-all;white-space:nowrap">[kkevsekk1](https://github.com/kkevsekk1)</span> | <span style="word-break:keep-all;white-space:nowrap">[`2020/07/24`](https://github.com/aiselp/AutoX/commit/3f99d7a3457aaa7eb733a30a0c8ba487d352ebf1)</span> | <span style="word-break:keep-all;white-space:nowrap">[`2024/11/14`](https://github.com/aiselp/AutoX/commit/e71906d87e33f7ae932bb81622bbce84d6372b7a)</span> | <span style="word-break:keep-all;white-space:nowrap">4.31</span> |
| <span style="word-break:keep-all;white-space:nowrap">[AutoX](https://github.com/kkevsekk1/AutoX)</span> | <span style="white-space:pre">[Autox.js v6](https://github.com/kkevsekk1/AutoX/blob/8b6776cff8b0fca4be4a52719b7d7d07c0a058f3/app/build.gradle#L130)</span> | <span style="word-break:keep-all;white-space:nowrap">[wilinz](https://github.com/wilinz) / [aiselp](https://github.com/aiselp)</span> | <span style="word-break:keep-all;white-space:nowrap">[`2022/05/26`](https://github.com/aiselp/AutoX/commit/a8c3ebf26d1c5bf0f912b10889efce24261c52ac)</span> | <span style="word-break:keep-all;white-space:nowrap">[`2024/06/27`](https://github.com/aiselp/AutoX/commit/015f4f3278ebcb7da6604b41ec0dc69505423e75)</span> | <span style="word-break:keep-all;white-space:nowrap">2.09</span> |
| <span style="word-break:keep-all;white-space:nowrap">[autojs4](https://github.com/blackcd318/autojs4)</span> | <span style="word-break:keep-all;white-space:nowrap">Auto.js</span> | <span style="word-break:keep-all;white-space:nowrap">[blackcd318](https://github.com/blackcd318)</span> | <span style="word-break:keep-all;white-space:nowrap">[`2021/12/15`](https://github.com/blackcd318/autojs4/commit/64828428dac44f66360b107be177e177b7e449fa)</span> | <span style="word-break:keep-all;white-space:nowrap">[`2023/07/31`](https://github.com/blackcd318/autojs4/commit/fabfb0bab6c95166afabe9ed56cf7912b34b3a68)</span> | <span style="word-break:keep-all;white-space:nowrap">1.62</span> |
| <span style="word-break:keep-all;white-space:nowrap">[openautojs](https://github.com/openautojs/openautojs)</span> | <span style="white-space:pre">[OpenAuto.js](https://github.com/openautojs/openautojs/blob/a11feaad025154de9b453ba70b49e94a6ca8b48a/app/src/main/res-i18n/values/strings.xml#L2)</span> | <span style="word-break:keep-all;white-space:nowrap">[openautojs](https://github.com/openautojs)</span> | <span style="word-break:keep-all;white-space:nowrap">[`2023/02/17`](https://github.com/openautojs/openautojs/commit/29adb5d1953a56c825decff30fc20de831092f38)</span> | <span style="word-break:keep-all;white-space:nowrap">[`2023/04/16`](https://github.com/openautojs/openautojs/commit/f23289d25edbcb1b1b73248006a46462d437f826)</span> | <span style="word-break:keep-all;white-space:nowrap">0.16</span> |
| <span style="word-break:keep-all;white-space:nowrap">[Auto.js Pro 9](https://pro.autojs.org/)</span> | <span style="word-break:keep-all;white-space:nowrap">AutoJsPro</span> | <span style="word-break:keep-all;white-space:nowrap">[hyb1996](https://github.com/hyb1996)</span> | <span style="word-break:keep-all;white-space:nowrap">`2021/03/28`</span> | <span style="word-break:keep-all;white-space:nowrap">`2023/02/09`</span> | <span style="word-break:keep-all;white-space:nowrap">1.87</span> |
| <span style="word-break:keep-all;white-space:nowrap">Auto.js Pro 8</span> | <span style="word-break:keep-all;white-space:nowrap">AutoJsPro</span> | <span style="word-break:keep-all;white-space:nowrap">[hyb1996](https://github.com/hyb1996)</span> | <span style="word-break:keep-all;white-space:nowrap">`2019/10/13`</span> | <span style="word-break:keep-all;white-space:nowrap">`2021/07/24`</span> | <span style="word-break:keep-all;white-space:nowrap">1.78</span> |
| <span style="word-break:keep-all;white-space:nowrap">[Auto.js](https://github.com/hyb1996/Auto.js)</span> | <span style="word-break:keep-all;white-space:nowrap">[Auto.js](https://github.com/SuperMonster003/AutoJs6/blob/ab2ad906e767f188c70c33e22224104b5c2c0135/app/src/main/res/values/strings.xml#L2)</span> | <span style="word-break:keep-all;white-space:nowrap">[hyb1996](https://github.com/hyb1996)</span> | <span style="word-break:keep-all;white-space:nowrap">[`2017/01/27`](https://github.com/SuperMonster003/AutoJs6/commit/307dbe8859692c48f1d3594d99077c0a2638bb39)</span> | <span style="word-break:keep-all;white-space:nowrap">[`2020/03/13`](https://github.com/SuperMonster003/AutoJs6/commit/483c6492b7fa8aaf3f29544fbb9b55c46c3dc9e0)</span> | <span style="word-break:keep-all;white-space:nowrap">3.13</span> |
| <span style="word-break:keep-all;white-space:nowrap">Auto.js Pro 7</span> | <span style="word-break:keep-all;white-space:nowrap">Auto.js</span> | <span style="word-break:keep-all;white-space:nowrap">[hyb1996](https://github.com/hyb1996)</span> | <span style="word-break:keep-all;white-space:nowrap">`2019/03/13`</span> | <span style="word-break:keep-all;white-space:nowrap">`2019/07/08`</span> | <span style="word-break:keep-all;white-space:nowrap">0.32</span> |
数据更新于 2026 年 10 月 9 日.
数据条目按 `最近活跃` 降序排序.
表格中的日期为预估值, 实际可能存在出入.
表格中 Auto.js Pro 7/8/9 为付费版本, 其余为免费开源版本.
******
### 关联项目
******
[AutoJs4](https://github.com/SuperMonster003/AutoJs4) 是 Auto.js 最终开源版本 `4.1.1 Alpha2` 的克隆项目, 用于保留原始源码, 并做必要的更新使其可以正常构建并在新版安卓系统中运行.
AutoJs4 同时是 AutoJs6 的行为基准: 除少数特定情况外, 能在 AutoJs4 正常运行的脚本, 在 AutoJs6 上也应正常运行且效果与结果完全一致.
[AutoJs4-Documentation](https://github.com/SuperMonster003/AutoJs4-Documentation) 与 [AutoJs6-Documentation](http://docs-project.autojs6.com) 的关系与此类似, 前者保留 Auto.js `4.1.0` 文档的最终源码, 并作为后者的参考基准.
下表列出了上述项目及其相互关系, 可直接跳转:
| <span style="word-break:keep-all;white-space:nowrap">项目</span> | <span style="word-break:keep-all;white-space:nowrap">说明</span> | <span style="word-break:keep-all;white-space:nowrap">相关链接</span> |
|:------:|:------|:------:|
| <span style="word-break:keep-all;white-space:nowrap">[AutoJs6](http://project.autojs6.com)</span> | Android 平台 JavaScript 自动化工具, Auto.js 的二次开发项目 (当前项目) | <span style="word-break:keep-all;white-space:nowrap">[文档项目](http://docs-project.autojs6.com) / [在线阅读](https://docs.autojs6.com)</span> |
| <span style="word-break:keep-all;white-space:nowrap">[AutoJs4](https://github.com/SuperMonster003/AutoJs4)</span> | Auto.js `4.1.1 Alpha2` 的克隆项目, 保留原始源码并作为 AutoJs6 的行为基准 | <span style="word-break:keep-all;white-space:nowrap">[文档项目](https://github.com/SuperMonster003/AutoJs4-Documentation)</span> |
| <span style="word-break:keep-all;white-space:nowrap">[AutoJs6-Documentation](http://docs-project.autojs6.com)</span> | AutoJs6 应用文档, 在线站点与离线文档插件共用同一内容源 | <span style="word-break:keep-all;white-space:nowrap">[应用项目](http://project.autojs6.com) / [在线阅读](https://docs.autojs6.com)</span> |
| <span style="word-break:keep-all;white-space:nowrap">[AutoJs4-Documentation](https://github.com/SuperMonster003/AutoJs4-Documentation)</span> | Auto.js `4.1.0` 文档的克隆项目, 保留原始文档并作为 AutoJs6 文档的参考基准 | <span style="word-break:keep-all;white-space:nowrap">[应用项目](https://github.com/SuperMonster003/AutoJs4)</span> |
| <span style="word-break:keep-all;white-space:nowrap">[AutoJs6-Plugin-AutoJs4-Runtime](https://github.com/SuperMonster003/AutoJs6-Plugin-AutoJs4-Runtime)</span> | AutoJs6 插件, 内嵌 AutoJs4 引擎, 用于以原版引擎运行脚本并与 AutoJs6 对照结果 | <span style="word-break:keep-all;white-space:nowrap">[应用项目](http://project.autojs6.com) / [AutoJs4](https://github.com/SuperMonster003/AutoJs4)</span> |
******
### 功能
******
* 可用作 JavaScript IDE (代码补全/变量重命名/代码格式化)
* 支持基于 [无障碍服务](https://developer.android.com/reference/android/accessibilityservice/AccessibilityService) 的自动化操作
* 支持浮动按钮快捷操作 (脚本录制及运行/查看包名及活动/布局分析)
* 支持选择器 API 并提供控件遍历/获取信息/控件操作 (类似 [UiAutomator](https://developer.android.com/training/testing/ui-automator))
* 支持布局界面分析 (类似 Android Studio 的 LayoutInspector)
* 支持录制功能及录制回放
* 支持屏幕截图/保存截图/图片找色/图片匹配
* 支持 [E4X](https://zh.wikipedia.org/wiki/E4X) (ECMAScript for XML) 编写界面
* 支持将脚本文件或项目打包为 APK 文件
* 支持利用 Root 权限扩展功能 (屏幕点击/滑动/录制/Shell)
* 支持作为 Tasker 插件使用
* 支持与 VSCode 连接并进行桌面开发 (需要 [AutoJs6-VSCode-Extension](http://vscext-project.autojs6.com) 插件)
插件中心读取官方索引与已安装 manifest 的原生页对齐信息, 在 16 KB 设备安装或启用不兼容版本前提示. [16 KB roadmap](https://github.com/SuperMonster003/AutoJs6/blob/master/docs/dev/page-size-16kb-roadmap.md)
******
### 环境
******
- Android 操作系统
- [API](https://developer.android.com/guide/topics/manifest/uses-sdk-element#ApiLevels) [24](https://developer.android.com/reference/android/os/Build.VERSION_CODES#N) ([7.0](https://zh.wikipedia.org/wiki/Android_Nougat)) [[N](https://developer.android.com/reference/android/os/Build.VERSION_CODES#N)] 及以上
******
### 指南
******
* [应用文档](https://docs.autojs6.com)
* [使用手册 (待编写)](https://docs.autojs6.com/#/manual)
* [疑难解答](https://docs.autojs6.com/#/qa)
* [项目编译构建](#project-compilation-and-build)
* [脚本开发辅助](#script-development-assistance)
******
### 主要变更
******
相较于 Auto.js 最终开源版本 `4.1.1 Alpha2`, AutoJs6 主要进行了以下升级或变更:
* 支持通过 [Shizuku](https://shizuku.rikka.app/introduction/) 获得 ADB 特权并使用系统 API
* 支持构建 [WebSocket](https://docs.autojs6.com/#/webSocketType) 实例以完成基于 [WebSocket 协议](https://zh.wikipedia.org/wiki/WebSocket) 的网络请求
* 新增模块 [ [base64](https://docs.autojs6.com/#/base64) / [crypto](https://docs.autojs6.com/#/crypto) / [sqlite](https://docs.autojs6.com/#/sqlite) / [i18n](https://docs.autojs6.com/#/i18n) / [notice](https://docs.autojs6.com/#/notice) / [ocr](https://docs.autojs6.com/#/ocr) / [opencc](https://docs.autojs6.com/#/opencc) / [qrcode](https://docs.autojs6.com/#/qrcode) / [shizuku](https://docs.autojs6.com/#/shizuku) / ... ]
* 多语言适配 [ 西 / 法 / 俄 / 阿 / 日 / 韩 / 英 / 简中 / 繁中 / ... ]
* 主题色适配 [ 分组 / 定位 / 搜索 / 历史记录 / 亮度及对比度自动适配 / ... ]
* 夜间模式适配 [ 设置页面 / 文档页面 / 布局分析页面 / 浮动窗口 / ... ]
* [VSCode 插件](http://vscext-project.autojs6.com) 支持客户端 (LAN) 及服务端 (LAN/ADB) 连接方式
* [Rhino](https://github.com/mozilla/rhino/) 引擎由 [v1.7.7.2](https://github.com/mozilla/rhino/releases/tag/Rhino1_7_7_2_Release) 升级至 [v2.0.0-SNAPSHOT](http://rhino.autojs6.com/blob/master/gradle.properties#L3) (更新于 2026 年 11 月 3 日)
* Unicode [码位](https://developer.mozilla.org/zh-CN/docs/Glossary/Code_point) 转义支持 [辅助平面](https://zh.wikipedia.org/wiki/Unicode%E5%AD%97%E7%AC%A6%E5%B9%B3%E9%9D%A2%E6%98%A0%E5%B0%84#%E7%AC%AC%E4%B8%80%E8%BC%94%E5%8A%A9%E5%B9%B3%E9%9D%A2) 字符
```js
'\u{1D160}'; /* 表示 "𝅘𝅥𝅮", 传统方式: '\uD834\uDD60'. */
```
* 支持 [Object.values()](https://developer.mozilla.org/zh-CN/docs/Web/JavaScript/Reference/Global_Objects/Object/values)
```js
Object.values({name: 'Max', age: 4}); // ['max', 4]
```
* 支持 [Array.prototype.includes()](https://developer.mozilla.org/zh-CN/docs/Web/JavaScript/Reference/Global_Objects/Array/includes)
```js
[10, 20, NaN].includes(20); // true
```
* 支持 [BigInt](https://developer.mozilla.org/zh-CN/docs/Web/JavaScript/Reference/Global_Objects/BigInt)
```ts
typeof 567n === 'bigint'; // true
```
* 支持 [模板字符串](https://developer.mozilla.org/zh-CN/docs/Web/JavaScript/Reference/Template_literals)
```js
`Lucky number: ${(Math.random() * 100).toFixed(0)}`
```
* 查看 Rhino 引擎 [更多新特性](http://project.autojs6.com/blob/master/app/src/main/assets-app/doc/RHINO.md)
* 查看 Rhino 引擎 [兼容性列表](https://mozilla.github.io/rhino/compat/engines.html)
******
### 发行历史
******
# v6.8.0
###### 2026/11/03 - 部分功能插件化, 谨慎升级
* `提示` 部分内置功能改由独立插件提供 (如 OCR, 条码识别, OpenCV, OpenCC, 拼音, MediaInfo, 终端及离线项目文档), 使用前需在插件中心安装并启用对应插件
* `提示` Rhino 引擎的 Promise 及部分语法行为改为与 ECMAScript 规范一致 (如 Promise 回调改为微任务执行, 为 const 变量重新赋值时抛出 TypeError), 依赖旧行为的脚本可能需要调整
* `提示` console 控件及控制台浮动窗口改为显示当前脚本日志, 全局日志可通过 globalconsole 控件或日志页面查看
* `提示` 打包应用的目标 SDK 版本由 29 调整为 37, 共享存储及本地网络访问需按系统要求授权
* `提示` 打包应用使用 images 等依赖 OpenCV 的功能时, 需在打包时勾选 OpenCV 插件
* `新增` 设置向导, 用于首次使用时依次完成权限申请及插件安装, 首次启动后主页以欢迎提示提供入口 (入口: 设置页面 > 配置 > 设置向导)
* `新增` 插件安装向导, 用于按分类勾选并批量安装官方插件, 具备 Shizuku/Root/Dhizuku 授权时可通过 3-Setup Installer 插件静默安装 (入口: 设置向导/主页插件标签页悬浮按钮菜单/插件中心 "+" 菜单)
* `新增` 权限申请向导, 用于勾选所需权限并依次申请, 内置 "标准"/"最小"/"全部" 配置并支持自定义配置 (入口: 设置向导/主页抽屉 "权限" 分组标题按钮)
* `新增` Rhino 引擎支持 class 语法, 包括字段, 静态块, 私有成员及继承 Error/Array/Map 等内建类型, 并可继承 Java 类与接口 (参阅 项目文档 > [类语法](https://docs.autojs6.com/#/classSyntax))
* `新增` Rhino 引擎支持 async/await, 包括 async 函数, async 箭头函数, async 方法, async 生成器及 for await (参阅 项目文档 > [async/await 与 continuation](https://docs.autojs6.com/#/asyncAwait))
* `新增` Node.js Runtime 及 Bun Runtime 插件, 用于运行 Node.js 及 Bun 的脚本和项目, 可调用 AutoJs6 的自动化, 图像, 界面及文件等大部分脚本能力
* `新增` Python Runtime, Lua Runtime 及 QuickJS Runtime 插件, 用于运行 Python, Lua 及 QuickJS (JavaScript) 脚本
* `新增` Java Runtime 及 Kotlin Runtime 插件, 用于编译并运行 Java/Kotlin 源码 (Java 需要 Android 7+, Kotlin 需要 Android 8+)
* `新增` TypeScript Engine 插件, 用于编译并运行 TypeScript 文件及项目, 支持类型检查及 UI 模式 TSX 布局, 定时任务, 快捷方式及日志页面也可运行 TypeScript
* `新增` ai 模块, 用于通过 AI 提供方插件 (如 3-Stone AI) 调用本地或在线大模型, 支持流式输出, 持久会话及结构化 JSON 结果 (参阅 示例代码 > ai)
* `新增` ai.agent 脚本 API, 用于启动及控制 3-Stove Agent 智能体任务 (支持计划模式及后台任务), 脚本也可登记为供智能体调用 (需要 3-Stove Agent 插件) (参阅 示例代码 > agent)
* `新增` MCP Server 插件, 用于通过 MCP 客户端访问 AutoJs6 的脚本, 文件及设备操作能力 (入口: 主页抽屉/插件中心)
* `新增` compose 模块, 用于以 Jetpack Compose 构建界面, 悬浮窗及对话框, 代码编辑器可在 3-Block Compose 可视化设计器中打开并编辑界面 (需要 3-Block Compose 插件) (参阅 示例代码 > 3-Block Compose)
* `新增` speech 模块, 用于离线语音识别, 唤醒词检测, 语音合成, 说话人识别及音频分析 (需要 3-Macaw Speech 插件) (参阅 示例代码 > 3-Macaw Speech)
* `新增` 3-Shell Terminal 插件, 用于在应用内使用终端, 脚本可通过 terminal 全局对象管理终端会话 (入口: 主页抽屉/项目工具栏/文件管理器目录菜单) (参阅 示例代码 > 终端)
* `新增` installer 模块, 用于安装, 更新及卸载应用, 支持 Shizuku/Root/Dhizuku 静默操作 (需要 3-Setup Installer 插件) (参阅 项目文档 > [安装器](https://docs.autojs6.com/#/installer))
* `新增` mail 模块, 用于邮件收发, 查询, 附件下载及新邮件监听 (需要 3-Stamp Mail 插件) (参阅 项目文档 > [邮件](https://docs.autojs6.com/#/mail))
* `新增` epub 模块, 用于读取电子书内容及打开阅读器 (需要 3-Folio EPUB 插件) (参阅 项目文档 > [电子书](https://docs.autojs6.com/#/epub))
* `新增` gallery 模块, 用于选择, 查看, 编辑及转换图片 (需要 3-Maple Image 插件) (参阅 项目文档 > [相册](https://docs.autojs6.com/#/gallery))
* `新增` imgui 全局对象, 用于以 Dear ImGui 构建悬浮窗及全屏界面 (需要 ImGui 插件)
* `新增` yolo 模块, 用于通过 YOLO 插件进行目标检测 (参阅 项目文档 > [YOLO](https://docs.autojs6.com/#/yolo))
* `新增` files.batchRename 方法, 用于按查找与替换, 正则表达式, 计数器及日期等规则批量重命名文件, 支持预览及撤销 (需要 Batch Rename 插件) (参阅 项目文档 > [文件](https://docs.autojs6.com/#/files))
* `新增` plugins.tools 模块, 用于列出并调用插件提供的工具 (需要提供工具的插件) (参阅 项目文档 > [插件](https://docs.autojs6.com/#/plugins))
* `新增` images.quantize/quantizeToFile 方法及 images.save 等方法的量化选项, 用于压缩 PNG 图像 (需要 Image Quantization 插件)
* `新增` flow 模块及 waitAsync 全局方法, 用于以链式写法编排等待与操作, 支持分支, 循环, 超时, 重试及取消 (参阅 项目文档 > [流程](https://docs.autojs6.com/#/flow))
* `新增` smartClick/scrollUntil/typeInto/launchAndWait 等自动化方法及 waitForIdle/waitForToast 等等待方法, 用于控件点击, 滚动查找, 文本输入及应用切换 (支持 Flow 链式调用)
* `新增` select 方法支持字符串选择器语法, 可组合属性, 正则表达式及布尔条件
* `新增` UiObject 及控件集合增加 isStale/waitUntilGone/toJSON/first/last/clickEach 等方法, 用于节点状态等待, 序列化及逐控件操作
* `新增` auto.findWindows/explain/dump 方法, 用于按条件获取窗口, 诊断选择器及导出节点树
* `新增` shell.spawn/shizuku.spawn 方法, 用于以进程运行命令并实时读取输出, 支持写入输入, 伪终端及结束进程 (adb 选项与 shizuku.spawn 需要 Shizuku, root 选项需要 Root 权限)
* `新增` Shell 构造器支持 { cmd, root, adb, pty, env, cwd } 选项对象, 并增加 $shell.setDefaultOptions/checkAccess 等方法 (兼容 Auto.js Pro)
* `新增` settings 模块, 用于读取, 修改及按分类导出应用设置 (Ref to [Auto.js Pro](https://g.pro.autojs.org/)) (参阅 项目文档 > [设置](https://docs.autojs6.com/#/settings))
* `新增` work_manager 模块, 用于管理定时任务及广播任务 (Ref to [Auto.js Pro](https://g.pro.autojs.org/)) (参阅 项目文档 > [Work Manager](https://docs.autojs6.com/#/workManager))
* `新增` power_manager 模块, 用于查询及申请忽略电池优化 (Ref to [Auto.js Pro](https://g.pro.autojs.org/)) (参阅 项目文档 > [Power Manager](https://docs.autojs6.com/#/powerManager))
* `新增` memory 模块, 用于在脚本中读取 AutoJs6 的内存诊断数据, 如内存快照, 未被回收的脚本运行时及 hprof 堆转储 (参阅 项目文档 > [内存](https://docs.autojs6.com/#/memory)) _[`issue #452`](http://issues.autojs6.com/452)_
* `新增` tts 模块, 用于文本转语音 (参阅 项目文档 > [文本转语音](https://docs.autojs6.com/#/tts))
* `新增` pangu 全局对象, 用于中西文混排的间距处理及检查 (参阅 项目文档 > [文本间距](https://docs.autojs6.com/#/pangu))
* `新增` colors 模块增加 distance/blend/contrast/harmony 等方法及 colors.theme 对象, 用于颜色计算, 配色生成, OKLab/OKLCH 色彩空间转换及修改应用主题色 (参阅 示例代码 > 图像与颜色)
* `新增` images.countPointsByColor/getMeanColor 方法, 用于统计匹配颜色的像素数量及获取平均颜色
* `新增` device.getMarketName 方法及 device.pageSize 属性 (getter), 用于获取设备市场名称及系统内存页大小 _[`issue #513`](http://issues.autojs6.com/513)_
* `新增` console.setTimeVisible/setTimeFormat/setColorful/setAvoidStatusBar/setInputVisible 方法及对应的 console.build 选项参数
* `新增` runtime.loadAar/loadJarWithR8 方法, 用于动态加载 AAR 文件及借助 R8 Compiler 插件加载 JAR 文件 (后者为实验性)
* `新增` UI 布局支持工程 res 目录中的字符串, 颜色, 样式及图片等资源, 并可按夜间模式, 语言及屏幕方向等选择对应的限定符目录 (参阅 项目文档 > [用户界面](https://docs.autojs6.com/#/ui))
* `新增` 原生 Android XML 布局支持更多控件属性, ConstraintLayout/CoordinatorLayout 布局及 Material 组件 (参阅 项目文档 > [Android XML 属性](https://docs.autojs6.com/#/uiAndroidAttributes))
* `新增` ui.useAndroidLayout 方法, 用于启用 Android 原生布局控件支持
* `新增` UI 模式增加 globalconsole 控件, 用于显示全局日志; console 系列控件支持标题, 样式及输入栏设置
* `新增` UI 模式的事件监听器支持挂起协程 (如 dialogs.confirm(...).await()), 需要脚本项目启用 continuation 特性 (参阅 项目文档 > [续体](https://docs.autojs6.com/#/continuation))
* `新增` sqlite 模块的数据库回调支持 onDowngrade 方法, 用于处理数据库版本降级 (参阅 项目文档 > [SQLite](https://docs.autojs6.com/#/sqlite))
* `新增` "管理 AutoJs6 设置" 页面, 用于按分类导出/导入应用设置, 恢复默认设置及撤销上次操作, 支持凭据加密保存及自动备份 (入口: 设置页面 > 配置 > 管理 AutoJs6 设置)
* `新增` 快捷方式备份功能, 用于自动存档桌面快捷方式, 支持导出/导入及批量恢复 (入口: 设置页面 > 配置 > 快捷方式备份)
* `新增` 无障碍服务管理器, 支持服务启停, 缓存清理, 自检, 事件监视及诊断信息复制 (入口: 主页抽屉无障碍服务条目)
* `新增` 文件管理器支持文件多选及批量复制/移动/删除, 并增加路径栏, 支持快速跳转上级目录, 前进/后退及切换存储卡
* `新增` 文件管理器支持通过 Shizuku 或 Root 浏览受限目录并编辑其中的文件 (需要对应授权, 可访问范围取决于系统)
* `新增` 文件管理器脚本菜单增加 "悬浮运行" 选项, 支持通过浮动工具栏运行/停止脚本, 编辑文件及查看日志
* `新增` 文件管理器支持通过对应插件浏览压缩档案, 预览 Markdown/HTML 文件, 查看图片, 播放音视频及打开电子书
* `新增` 文件管理器支持查看 APK/APKS/XAPK/AAB 等安装包的信息及清单
* `新增` 文件管理器支持通过 Batch Rename 插件批量重命名文件与文件夹, 可预览新名称, 撤销操作及查看重命名历史 (入口: 多选工具栏/文件夹菜单/重命名对话框 "更多" 菜单)
* `新增` 文件管理器脚本菜单增加 "使用 AutoJs4 运行" 及 "使用 AutoJs4 运行并对照" 选项, 用于以 AutoJs4 引擎运行脚本并比较运行结果 (需要 AutoJs4 Runtime 插件)
* `新增` 代码编辑器支持通过 Ace Editor 插件使用 Ace 编辑器, 提供代码补全, 参数提示, 悬浮文档, 诊断及快捷键面板, 可在设置中选择编辑器引擎
* `新增` 代码编辑器支持在编辑器内预览 ui 模式脚本的布局, 点击预览中的控件可跳转到对应源码 (入口: 工具栏 "预览" 开关)
* `新增` 代码编辑器支持底部日志面板, 并支持脚本启停及堆栈帧源码跳转 (by [M17764017422](https://github.com/M17764017422)) _[`pr #502`](http://pr.autojs6.com/502)_
* `新增` 代码编辑器支持独立设置页面, 沉浸式全屏模式及文件编码转换, 并通过信息栏显示光标位置及编码
* `新增` 布局分析增加搜索栏及 "复制为选择器" 功能, 支持节点树保存与离线分析, "生成代码" 支持更多等待方式, 动作及 Flow 风格
* `新增` 主题色支持自建颜色库, 可新建, 克隆, 导入/导出颜色库并管理其中的颜色
* `新增` 智能颜色库, 可按夜间模式, 时段, 日出日落及电量等状态自动切换主题色, 内置 "跟随壁纸" 等预设
* `新增` 版本历史支持版本预览, 差异比较, 手动快照及版本固定, 回收站支持批量恢复及内容预览, 两者均可设置保留策略
* `新增` 定时任务支持按月/按年/倒计时任务及重复结束条件 _[`issue #294`](http://issues.autojs6.com/294)_ _[`issue #537`](http://issues.autojs6.com/537)_
* `新增` 项目文件夹支持创建定时任务及广播任务, 广播任务增加 "邮件到达时" 类型 (需要 3-Stamp Mail 插件)
* `新增` 主页抽屉增加 "屏幕取色" 工具 (需要 3-Color Picker 插件)
* `新增` 开发者选项增加 "内存诊断" 页面, 用于查看内存占用及已结束但未被回收的脚本, 支持导出 hprof 堆转储 (入口: 开发者选项 > 内存诊断)
* `新增` 开发者选项支持查看进程退出记录 (Android 11+), 并增加 "允许 Node.js 脚本使用 Inspector" 开关, 用于断点调试 Node.js 脚本
* `新增` 代码生成模型管理页, 支持本地导入, 按需下载, 多版本管理及官方模型更新 (入口: 设置页面 > 无障碍服务 > 代码生成模型)
* `新增` 打包应用支持 Node.js 项目及脚本, 运行时需要 Node.js Runtime 插件
* `新增` 打包应用支持在构建时编译 TypeScript 项目, 并可加密编译产物
* `新增` 打包应用配置支持显示或隐藏日志及设置启动器快捷方式 _[`issue #550`](http://issues.autojs6.com/550)_
* `新增` VSCode 插件连接支持二维码扫描, 配对确认及局域网发现 (需要 VSCode 插件 1.1.0+)
* `新增` VSCode 插件支持远程文件管理及设备脚本运行 (需要 VSCode 插件 1.1.0+)
* `新增` 客户端模式及服务端模式增加连接管理器, 客户端模式支持意外断开后自动重连
* `修复` 脚本结束后或部分页面关闭后占用的内存未被释放, 反复运行时内存占用持续增长的问题 (如使用 threads.start, 定时器, WebSocket, webview 控件或 runtime.loadDex 的脚本) _[`issue #548`](http://issues.autojs6.com/548)_
* `修复` AutoJs6 及打包应用遇到较新版本写入的数据 (如降级安装后) 时启动即崩溃, 或版本历史及回收站等数据无法打开的问题
* `修复` Android 14+ 申请屏幕捕获权限时可能因前台服务启动异常导致应用崩溃的问题 _[`issue #516`](http://issues.autojs6.com/516)_
* `修复` Android 14+ 屏幕旋转或画面静止后 images.captureScreen 方法抛出 SecurityException 异常的问题
* `修复` 多线程或跨文件重复调用 OCR 时可能反复申请屏幕捕获权限的问题 _[`issue #551`](http://issues.autojs6.com/551)_
* `修复` Paddle OCR 插件服务断开后无法恢复或未运行时无法自动唤醒的问题 _[`issue #515`](http://issues.autojs6.com/515)_ _[`issue #525`](http://issues.autojs6.com/525)_ _[`issue #517`](http://issues.autojs6.com/517)_
* `修复` 部分系统 (如 ColorOS) 上插件未运行时无法连接, 需在插件中心手动激活的问题
* `修复` 打包应用依次使用 Paddle OCR 和 Rapid OCR 时可能崩溃, 以及同时勾选多个版本的 Paddle OCR 插件时 OCR 不可用的问题
* `修复` app.isInstalled/kill 等方法无法正常使用包名参数的问题 _[`issue #495`](http://issues.autojs6.com/495)_
* `修复` dialogs.multiChoice 方法返回的多选结果被错误转换为字符串的问题 _[`issue #518`](http://issues.autojs6.com/518)_
* `修复` 循环体中的 const 声明每轮不重新赋值的问题 (如 for/while 循环体中的 `const item = list[i]` 始终为首轮的值)
* `修复` Rhino 引擎的作用域, 参数转换及部分内置方法 (如 Object.fromEntries, Object.defineProperty) 行为异常的问题 _[`Rhino #2518`](https://github.com/mozilla/rhino/issues/2518)_
* `修复` 正则表达式在 Android 7.x 上使用 Unicode 属性转义时抛出异常的问题
* `修复` runtime.loadJar 方法无法加载较高 Java 版本编译的 class 文件, 以及 Android 7.x 上 runtime.loadDex/loadJar 可能失败的问题
* `修复` 协程中的 await 遇到拒绝时不抛出错误, 恢复后再次挂起时脚本被结束, 以及 Promise 的 wait 方法在脚本线程上一直阻塞的问题
* `修复` 无 Root 权限设备调用 shell 相关方法时可能出现假死的问题
* `修复` 脚本对话框在线程结束时关闭, 或停止脚本时子线程仍在处理图像, 可能导致应用崩溃的问题
* `修复` 子线程或定时器结束后脚本偶尔无法自动结束, 以及停止带有 setInterval 定时器的脚本时偶尔报错的问题
* `修复` ui.run, threads.disposable, 阻塞式对话框及手势等方法等待其他线程结果时偶尔提前返回或一直阻塞的问题
* `修复` 控制台浮动窗口的位置与尺寸设置受调用顺序影响, 以及标题栏拖动可能失效的问题
* `修复` console.log 等方法输出对象或数组时字符串值缺少单引号包裹, 与 Auto.js 4 的格式不一致的问题
* `修复` http 请求的不安全选项可能使后续请求跳过证书校验, 以及正式版本的 HTTP 请求可能被网络安全配置意外拦截的问题
* `修复` http.getAsync 等方法返回的 Promise 在 then 回调中读取响应体时抛出 NetworkOnMainThreadException 的问题
* `修复` UI 模式 WebView 控件的文件选择器无法正常打开的问题
* `修复` UI 模式 list/grid 控件项目模板中的表达式无法访问当前项目对象而导致列表项显示空白的问题
* `修复` UI 布局中 RelativeLayout 对齐, paddingHorizontal/paddingVertical 及 scrollbars 等属性无效或导致布局加载失败, 以及 UI 脚本进入分屏时可能意外退出的问题
* `修复` 选择器的正则参数, contains 系列选择器及结果数量限制异常, 以及全局选择器方法抛出的异常无法被 try/catch 捕获的问题
* `修复` UiObject#child/parent 等方法可能无限递归, UiObject#clickBounds 方法可能意外结束脚本事件循环, 以及启用 findOnUiThread 时控件查找可能永久等待的问题
* `修复` 无障碍服务重启后选择器查询返回空结果及事件回调失效, 以及服务的状态与启停和主页抽屉开关不一致的问题
* `修复` 无障碍服务在连续执行 back 等操作时可能意外中断的问题 _[`issue #527`](http://issues.autojs6.com/527)_
* `修复` automator 全局操作首次调用时可能出现空指针异常, 以及手势纵坐标缩放错误的问题
* `修复` 通知观察器将系统通知误报为消息浮动框并遗漏通知事件的问题
* `修复` currentPackage/currentActivity 可能返回已关闭窗口 (如系统界面或桌面) 的包名及 Activity 的问题 (by [DeanTMaxim](https://github.com/DeanTMaxim)) _[`issue #570`](http://issues.autojs6.com/570)_ _[`pr #571`](http://pr.autojs6.com/571)_
* `修复` images 部分方法可能提前回收图像, 泄漏原生内存或因错误参数导致应用崩溃的问题
* `修复` images.findImage/matchTemplate/matchFeatures 的匹配结果, 坐标精度及排序异常, 以及 images.invert/clip 等方法的处理结果错误
* `修复` colors.isSimilar/images.detectColor 的 hs 算法结果错误, 以及 colors.rgb/rgba 无法正确处理小数或百分比分量的问题
* `修复` 通过外部 URI, 后台或 Tasker 运行脚本时丢失原始路径, 扩展名或无法运行的问题 _[`issue #545`](http://issues.autojs6.com/545)_ _[`issue #501`](http://issues.autojs6.com/501)_
* `修复` 缺少 /sdcard 链接的设备 (如 Fire OS) 上通过意图以 /sdcard 路径启动脚本时找不到文件的问题 (by [djbclark](https://github.com/djbclark)) _[`pr #558`](http://pr.autojs6.com/558)_
* `修复` auto 文件通过文件管理器, 定时任务或外部意图运行时被当作 JavaScript 脚本执行的问题
* `修复` 脚本项目未按 project.json 指定入口运行, 以及带 BOM 的脚本未按实际编码读取的问题
* `修复` 外部 URI 导入可能因文件名处理不当写入目标目录之外或覆盖同名文件的问题
* `修复` 文件管理器将读取失败显示为空目录, 返回页面时闪动或重置滚动位置, 以及条目持续显示灰色背景的问题
* `修复` 版本历史及回收站恢复时可能丢失原有内容, 文件移动后版本历史未跟随, 以及多用户环境下无法访问的问题
* `修复` 代码编辑器在页面重建后可能丢失光标, 选区或未保存内容, 以及软键盘遮挡内容区域的问题
* `修复` 主页抽屉在窄屏下控件裁切, 以及主页关闭或多指触摸时可能导致应用崩溃的问题
* `修复` 主页抽屉 "前台时保持屏幕常亮" 的已存设置值无效时可能导致主页崩溃的问题 (by [djbclark](https://github.com/djbclark)) _[`pr #557`](http://pr.autojs6.com/557)_
* `修复` 浮动按钮菜单显示的最近应用包名及 Activity 信息异常 _[`issue #529`](http://issues.autojs6.com/529)_
* `修复` 浮动按钮 "运行脚本" 对话框最小化后可能无法还原的问题 (试修) _[`issue #500`](http://issues.autojs6.com/500)_
* `修复` 插件中心刷新时可能丢失已安装插件, 显示空白列表或安装错误变体 (如 x86 设备误选 x86_64 安装包) 的问题
* `修复` 插件授权或暂时无法连接后无法完成启用, 以及关闭 Offline Docs 插件后无法再次启用的问题
* `修复` AutoJs6 更新后首次使用 Shizuku 相关功能时报告无法使用 Shizuku 服务的问题
* `修复` AutoJs6 被强制停止后, 经 Shizuku 启动的命令 (如音量键监听) 仍在后台运行并逐次累积的问题 _[`issue #474`](http://issues.autojs6.com/474)_
* `修复` 仅具备 Shizuku 权限时 RootAutomator 创建失败, 以及录制脚本结束后输入事件监听进程未退出的问题
* `修复` 设置页面 "使用 '音量加' 键控制脚本运行" 开关开启后需重启应用才能生效的问题
* `修复` APK 打包取消时误报构建失败, 以及签名证书校验和 Android 9-11 签名识别异常的问题
* `修复` 打包应用缺少运行时组件时 shell 原生库可能缺失导致崩溃, 以及打包的 UI 脚本启动时偶发空白页面后退出的问题
* `修复` 后台安装 APK 时无法继续确认安装的问题
* `修复` VSCode 插件保存项目时已删除文件仍残留在设备中的问题 _[`vscode-ext issue #29`](http://vscext-project.autojs6.com/issues/29)_
* `修复` VSCode 插件接收项目归档时可能因日志处理导致内存不足的问题 _[`issue #523`](http://issues.autojs6.com/523)_
* `修复` VSCode 插件的失效连接阻塞日志发送, 导致新连接无法接收日志的问题 _[`issue #385`](http://issues.autojs6.com/385)_
* `修复` 检查更新时未按设备 ABI 优先级选择安装包的问题
* `修复` 屏幕坐标换算 (cXy/cYx/setScaleBases) 异常, 以及自然方向为横屏的设备上 device.width/height 宽高互换的问题
* `修复` device.keepAwake/keepScreenOn/keepScreenDim 未指定超时时唤醒锁在脚本结束后仍未释放的问题
* `修复` IntelliJ IDEA/Gradle 构建项目时模块依赖, SDK 及打包模板路径解析异常的问题
* `优化` 延迟初始化非关键组件以提升应用启动速度
* `优化` 应用启动时不再自动弹出权限申请对话框, 缺少所有文件管理权限时改为在主页显示可直接授权的提醒
* `优化` 应用及打包应用适配 Android 17 及 16 KB 内存页设备
* `优化` 精简安装包内的依赖, 语言资源及图像资源以缩减文件体积
* `优化` 完善界面, 异常消息及引擎错误消息的多语言显示
* `优化` 检查更新通过 GitHub REST API 获取版本与安装包信息
* `优化` 应用内置简体中文及英文发行历史, 其他语言支持在线获取与缓存
* `优化` 插件化离线项目文档 (Offline Docs 插件), 支持独立安装及更新
* `优化` 插件化打包模板 (APK Builder Template 插件), 打包时校验模板兼容性
* `优化` 插件化 ML Kit OCR/ML Kit Barcode/Rapid OCR/OpenCV/Image Quantization 相关功能
* `优化` 插件化 OpenCC/Pinyin/Pinyin4j/MediaInfo 相关功能
* `优化` APK 安装改由 3-Setup Installer 插件提供安装对话框, 插件不可用时使用系统安装器, APKS/XAPK 等分包容器需要该插件才能安装
* `优化` 插件中心完善在线安装与更新, 变体选择, 排序, 插件设置及发行历史显示, 并提升列表加载及刷新的流畅度
* `优化` 官方插件安装后默认启用, 主题色, 夜间模式及语言跟随 AutoJs6 设置
* `优化` 插件中心临时置顶新安装的插件并标出 "新安装" 或 "启用失败"
* `优化` 主页插件标签页浮动按钮菜单优先显示安装向导及插件库, 长按浮动按钮可进入插件中心
* `优化` Rhino 引擎同步上游, 支持 new.target 及 Uint8Array 的 Base64/Hex 转换等新特性, 并提升脚本启动效率及兼容性
* `优化` Rhino 引擎的解构, 展开, 可选链, Proxy/Reflect, BigInt 及块级函数声明等行为与 ECMAScript 规范一致
* `优化` 全局 Promise 统一为 Rhino 内建实现, 增加 Promise.any/withResolvers/try 方法, 未处理的拒绝在控制台输出错误
* `优化` 移除内置的 com.stardust 兼容类副本, 以 com.stardust 前缀引用的类名改为映射到 AutoJs6 的同名实现 (参阅 项目文档 > [AutoJs4 运行时](https://docs.autojs6.com/#/autojs4Runtime))
* `优化` 文件日志改用内置实现, 保留已文档化的配置选项及常用 PatternLayout 格式, 其他 Log4j API 不再提供
* `优化` ocr 模块默认按 ML Kit/Paddle/Rapid 顺序自动选择已安装的引擎, Paddle 引擎支持按语种 (profile) 选择插件及 useCls 文字方向分类选项参数
* `优化` pinyin/pinyin4j/opencc 模块支持自定义读音词典, 多种罗马字方案, 批量转换及链式转换
* `优化` images.matchTemplate/matchFeatures 等方法支持更多参数, 多点找色, 模板匹配及特征匹配提升执行效率与结果准确性
* `优化` images.captureScreen 方法在画面静止时及时刷新取帧, images.requestScreenCapture 方法只申请共享整个屏幕, 避免 Android 14+ 选择单个应用后截图与坐标不对应
* `优化` runtime.loadJar 方法支持借助 DEX Compiler 插件加载 JAR 文件 (实验性, 默认关闭)
* `优化` KeyCode 方法提升参数兼容性并支持使用 Shizuku 权限发送键码指令 _[`issue #492`](http://issues.autojs6.com/492)_
* `优化` shell 函数支持 adb 选项, 用于经 Shizuku 执行命令 (兼容 Auto.js Pro)
* `优化` 无障碍服务支持使用 Shizuku 自动启用
* `优化` device.getAndroidId 方法支持 useSystemId 参数, 用于在 Android 8.0+ 上通过 Shizuku/Root 获取系统值
* `优化` 恢复 console.rawInput/input 方法, 支持通过控制台输入栏读取文本或求值表达式
* `优化` 控制台浮动窗口增加统一操作菜单, 支持调整大小及配置时间, 着色, 字号与透明度
* `优化` media.playMusic 方法支持前台播放, 音频焦点及通知栏控制
* `优化` 原生 Android XML 布局中无法设置的属性改为跳过并在控制台警告, 不再导致整个布局加载失败
* `优化` 代码编辑器统一主题配色及菜单布局, 提升打开文件时的显示速度, 运行脚本后运行按钮切换为停止按钮
* `优化` 文件管理器统一文件预览及插件操作入口, 列表刷新时保留滚动位置
* `优化` 版本历史避免重复快照, 回收站恢复到新路径时同步迁移版本历史
* `优化` 布局分析层次视图支持属性摘要, 父级高亮及逐级选择父控件
* `优化` 主页抽屉的 "连接到计算机" 分组更名为 "远程连接"
* `优化` 浮动按钮及相关窗口跟随应用语言与夜间模式
* `优化` 默认颜色库的亮色与暗色窗口背景合并为 "背景色" 一项, 可选择自动跟随或自动反色, 升级前的选择保持不变
* `优化` VSCode 插件连接增加心跳检测及数据长度校验 _[`issue #333`](http://issues.autojs6.com/333)_ _[`issue #523`](http://issues.autojs6.com/523)_
* `优化` VSCode 插件保存文件时支持按相对目录结构保存到工作目录 _[`vscode-ext issue #37`](http://vscext-project.autojs6.com/issues/37)_
* `优化` 示例代码增加 3-Block Compose, 语音, 自动化流程, 控制台交互及电子书操作示例
* `优化` Gradle 构建支持动态匹配 Kotlin/KSP/AGP/R8 兼容版本, 平台兼容数据迁移至 AutoJs6-Gradle-Platform-Versions 项目
* `优化` 部分依赖或本地库版本调整 _[`CHANGELOG.md`](http://project.autojs6.com/blob/master/app/src/main/assets-app/doc/CHANGELOG.md#v680)_
# v6.7.0
###### 2026/03/14
* `新增` 插件中心功能, 支持插件的安装/卸载/更新等操作 (入口: 主页抽屉按钮/主页标签页)
* `新增` 设置页面启动器快捷方式增加 "插件" 选项, 用于通过快捷方式跳转到插件中心页面
* `新增` 版本历史功能, 支持查看/恢复可编辑文件的历史版本 (入口: 主页抽屉按钮/文件管理器菜单/代码编辑器菜单)
* `新增` 代码编辑器增加 "多功能键盘" > "符号设置" 菜单项, 支持符号编辑及按配置级别创建/导入/导出符号
* `新增` 回收站功能, 支持查看/恢复已删除的文件/文件夹 (入口: 主页抽屉按钮)
* `新增` Paddle OCR (PP-OCRv5) 插件, 用于光学字符识别
* `新增` cvt 模块, 用于数据单位转换 (参阅 项目文档 > [单位转换](https://docs.autojs6.com/#/cvt))
* `新增` cvt.bytes 方法, 用于字节数据单位转换 (参阅 项目文档 > [单位转换](https://docs.autojs6.com/#/cvt))
* `新增` fmt 模块, 用于数据格式化 (参阅 项目文档 > [格式化](https://docs.autojs6.com/#/fmt))
* `新增` fmt.bytes 方法, 用于字节数据格式化 (参阅 项目文档 > [格式化](https://docs.autojs6.com/#/fmt))
* `新增` zip 模块, 用于文件压缩与解压缩操作 (Ref to [Auto.js Pro](https://g.pro.autojs.org/)) (参阅 项目文档 > [Zip](https://docs.autojs6.com/#/zip))
* `新增` mediainfo 模块, 用于查看媒体文件的详细信息 (参阅 项目文档 > [媒体信息](https://docs.autojs6.com/#/mediainfo))
* `新增` s13n.bytes 方法, 用于标准化字节数据 (参阅 项目文档 > [标准化](https://docs.autojs6.com/#/s13n))
* `新增` app.isDualInstalled 方法, 用于检测双开应用是否已安装 (需要 Shizuku 或 Root 权限) _[`issue #450`](http://issues.autojs6.com/450)_
* `新增` device.getSharedDeviceId 方法, 用于跨应用获取统一共享设备 ID _[`issue #455`](http://issues.autojs6.com/455)_
* `新增` device.setPointerLocation 等 Toggleable 系列方法, 用于设置或获取指针位置系统设置项 _[`issue #381`](http://issues.autojs6.com/381)_
* `新增` dialogs.build 方法支持 textAllCaps/(positive/negative/neutral)TextAllCaps 选项参数, 用于控制按钮文本是否全部大写
* `新增` images.loadAsync 方法, 用于异步获取网络图像资源 _[`issue #327`](http://issues.autojs6.com/327)_
* `新增` ui.getNavigationBarHeight 方法/navigationBarHeight 属性 (getter), 用于获取导航栏高度 _[`issue #456`](http://issues.autojs6.com/456)_
* `新增` ui.getVisible(Status/Navigation)BarHeight 方法/visible(Status/Navigation)BarHeight 属性 (getter), 用于获取状态栏或导航栏的可见高度 _[`issue #456`](http://issues.autojs6.com/456)_
* `新增` http.put/del(ete)/head 方法, 用于发送不同类型的 HTTP 请求
* `新增` http.getAsync/postAsync/requestAsync 等方法, 用于异步发送网络请求 _[`issue #423`](http://issues.autojs6.com/423)_
* `新增` http 模块请求相关方法获取的 body 对象增加 stream/saveToFile/close 等方法 _[`issue #452`](http://issues.autojs6.com/452)_
* `新增` http 模块请求相关方法支持缓存控制选项参数 (cacheBody/bodyCacheThresholdBytes)
* `新增` http 模块请求相关方法支持不安全选项参数 (isInsecure/insecure), 用于忽略证书相关异常 _[`issue #417`](http://issues.autojs6.com/417)_
* `新增` http 模块请求相关方法支持 options.client 选项, 用于配置 OkHttpClient.Builder (如 followRedirects 等) _[`issue #454`](http://issues.autojs6.com/454)_
* `新增` auto.state 属性 (getter) 及 shizuku.state 属性 (getter), 用于获取无障碍服务状态及 Shizuku 服务状态
* `新增` UiObject#isShifted 方法, 用于检测控件位置变化 _[`issue #469`](http://issues.autojs6.com/469)_
* `新增` UiObject#snapshot 方法, 用于捕获控件当前状态 _[`issue #469`](http://issues.autojs6.com/469)_
* `新增` 等价系列选择器 (UiSelector#id/text/...) 及包含系列选择器 (UiSelector#xxxContains) 支持正则表达式参数
* `新增` 选择器的正则表达式参数支持使用标志 (i, m, s, u)
* `新增` runtime.(set/is)JavaPrimitiveWrap 方法, 用于设置或获取 Java 原始类型包装策略 _[`issue #435`](http://issues.autojs6.com/435)_
* `新增` autojs.restart/exit 方法, 用于重启或退出 AutoJs6, 并支持重启后运行指定脚本 _[`issue #460`](http://issues.autojs6.com/460)_
* `新增` engines.myEngine().getStartTime() 方法, 用于获取脚本引擎启动时间戳 _[`issue #449`](http://issues.autojs6.com/449)_
* `新增` crash 全局方法, 用于测试崩溃报告页面
* `新增` structuredClone 全局方法, 用于深拷贝 JavaScript 对象 (参阅 [MDN](https://developer.mozilla.org/zh-CN/docs/Web/API/Window/structuredClone))
* `新增` 正则表达式支持后瞻断言语法 _[`issue #464`](http://issues.autojs6.com/464)_
* `新增` 文件管理器增加 "移动到" 及 "复制到" 菜单项, 支持操作中止及进度状态显示
* `新增` 主页抽屉增加 "指针位置" 工具
* `新增` 主页抽屉增加 "所有文件管理权限" 开关
* `新增` 主页抽屉增加 "后台弹出界面" 开关 (针对小米/Vivo 设备)
* `新增` 设置页面增加 "Java 原始类型包装" 设置选项 _[`issue #435`](http://issues.autojs6.com/435)_
* `新增` 设置页面增加 "定时任务调度引擎" 设置选项, 支持 AlarmManager/WorkManager/JobScheduler _[`issue #457`](http://issues.autojs6.com/457)_ _[`issue #434`](http://issues.autojs6.com/434)_ _[`issue #449`](http://issues.autojs6.com/449)_ _[`issue #388`](http://issues.autojs6.com/388)_ _[`issue #378`](http://issues.autojs6.com/378)_ _[`issue #163`](http://issues.autojs6.com/163)_ _[`issue #53`](http://issues.autojs6.com/53)_ _[`issue #21`](http://issues.autojs6.com/21)_
* `新增` 设置页面增加 "应用启动器图标" 设置选项, 支持自适应图标/透明背景图标 _[`issue #405`](http://issues.autojs6.com/405)_
* `新增` 设置页面增加 "重启策略" 设置选项, 用于配置主页抽屉重启按钮是否使用快速重启
* `新增` 设置页面增加 "屏幕捕获权限申请延迟" 设置选项, 用于避免权限申请窗口遮挡屏幕
* `新增` 打包应用支持开机自启动并在配置页面增加开关配置
* `新增` 打包应用支持应用快捷方式 (日志页面/设置页面)
* `新增` 打包应用配置页面增加撤销/重做/保存按钮
* `新增` 打包应用配置页面支持配置的创建/修改/删除/导入/导出 _[`issue #483`](http://issues.autojs6.com/483)_
* `新增` Scrapers 工具 (run-scrapers.mjs), 用于自动更新 Gradle 构建数据及 README 通用数据与模板
* `新增` Gradle Wrapper 切换工具 (gradle-wrapper-switcher), 用于切换本地 Gradle 主版本 (如 Gradle 8.x 与 Gradle 9.x)
* `修复` notice 方法参数数量及类型限制错误 _[`issue #462`](http://issues.autojs6.com/462)_
* `修复` ui.R 属性 (getter) 无法正常使用的问题
* `修复` ui.post 方法回调参数中产生异常时可能静默失败的问题
* `修复` isJavaClass/isJavaPackage 等全局方法无效的问题
* `修复` timers.keepAlive 方法 timeout 参数功能无效的问题
* `修复` floaty.window/rawWindow 方法无法接受字符串参数的问题 _[`issue #467`](http://issues.autojs6.com/467)_
* `修复` floaty.rawWindow 因传入错误的上下文导致部分控件显示异常的问题
* `修复` util.isString 方法无效的问题
* `修复` util.class[Name]/getClass[Name] 可能返回错误结果的问题
* `修复` util.java.array 无法正常使用 Boolean 等类型参数的问题
* `修复` threads.disposable() 返回的对象在存取数据时可能被意外装箱的问题 _[`issue #435`](http://issues.autojs6.com/435)_
* `修复` console.build 方法多次调用时, 日志浮动窗口样式选项未能正常重置的问题
* `修复` console.build 方法的 (title/content)BackgroundColor 选项导致透明度或着色选项被覆盖的问题 _[`issue #458`](http://issues.autojs6.com/458)_
* `修复` 服务端模式连接时, 旋转屏幕及切换语言等触发 Activity 重建的操作导致 VSCode 控制台无法输出日志的问题 _[`issue #385`](http://issues.autojs6.com/385)_
* `修复` console/toast 等方法显示 Java Double 时可能丢失末尾零的问题
* `修复` 无法使用 console/toast 等方法显示 BigInt 数据类型的问题
* `修复` toast 方法因持有 Toast 实例强引用而可能导致内存泄漏的问题
* `修复` 部分全局对象可能丢失 JavaScript 原型属性及方法的问题
* `修复` 使用 XML 语法将 JavaScript 表达式作为属性值时, this 对象可能出现指向错误的问题
* `修复` dialogs.build 方法 linkify 选项参数功能失效的问题
* `修复` dialogs.build 方法可能破坏对象参数原有数据的问题
* `修复` canvas 元素控件 setMaxFps 方法内部帧率计算错误
* `修复` images.concat 方法纵向拼接时宽度值计算错误
* `修复` images.requestScreenCapture 方法调用时用户取消授权可能导致应用崩溃的问题
* `修复` images.captureScreen 方法获取的截图可能存在方向错误或黑边填充的问题 _[`issue #337`](http://issues.autojs6.com/337)_
* `修复` images 部分方法使用区域参数时 1 被误解析为百分比的问题
* `修复` images 部分相关方法出现异常时 oneShot 标记功能失效的问题 _[`issue #372`](http://issues.autojs6.com/372)_
* `修复` images 部分相关方法可能引发内存泄漏的问题 _[`issue #372`](http://issues.autojs6.com/372)_
* `修复` images.save 及 ImageWrapper#saveTo 方法传入路径不存在时无法正常写入文件的问题
* `修复` ImageWrapper#recycle 方法回收图像资源功能失效的问题
* `修复` ocr 部分重载方法可能无法正常使用的问题
* `修复` ocr.detect 方法获得的结果可能与 ocr.mode 不匹配的问题 _[`issue #468`](http://issues.autojs6.com/468)_
* `修复` 部分设备无法正常初始化 ML Kit OCR 的问题 (试修) _[`issue #8`](http://issues.autojs6.com/8#issuecomment-3117061768)_
* `修复` auto.registerEvent 注册的无障碍服务事件会被其他脚本误清理的问题 _[`issue #466`](http://issues.autojs6.com/466)_ _[`issue #343`](http://issues.autojs6.com/343#issuecomment-3263953918)_
* `修复` Android 10 UiObject#child 方法可能出现 ArrayIndexOutOfBoundsException 异常的问题 _[`issue #416`](http://issues.autojs6.com/416)_
* `修复` 内置模块方法调用时 Rhino 上下文可能不一致的问题
* `修复` 脚本创建大量浮动窗口后, 脚本退出时可能出现窗口残留的问题
* `修复` 运行项目时 project.json 配置参数可能无法正常解析的问题
* `修复` 项目打包时 project.json 的 excludedDirs 配置参数将导致配置文件解析失败的问题 _[`issue #428`](http://issues.autojs6.com/428)_
* `修复` 打包应用无法正常使用 Paddle OCR 与 Rapid OCR 功能的问题
* `修复` 打包应用配置文件 project.json 中的 key 值可能被意外修改的问题
* `修复` 打包应用配置页面滑动 "需要的权限" 列表时可能出现复选框图标闪烁的问题
* `修复` Android 7.x 可能无法正常使用打包功能的问题
* `修复` 脚本项目配置文件保存时原始键名可能会被修改的问题
* `修复` 脚本项目配置文件中构建版本号或构建时间出现较大数字时可能导致应用崩溃的问题
* `修复` 频繁获取或重建 ImageReader 时可能因缓冲区暂无可用帧导致应用崩溃的问题
* `修复` 输入事件观察器 InputEventObserver 可能导致应用启动时明显卡顿的问题
* `修复` Shizuku 用户服务进程未能正常结束导致进程堆积的问题 _[`issue #474`](http://issues.autojs6.com/474)_
* `修复` 发行历史页面部分系统因字体差别导致统计数据显示不完整的问题
* `修复` 部分设备无法正常触发文件管理器功能按钮点击事件的问题 (试修) _[`issue #465`](http://issues.autojs6.com/465)_
* `修复` 文件管理器搜索结果展示后点击返回按钮或切换标签页面时可能导致应用崩溃的问题
* `修复` 文件管理器删除项目文件夹后 UI 未能自动刷新的问题
* `修复` 部分设备代码编辑器空行显示方框字符的问题 (试修)
* `修复` 代码编辑器软键盘可能遮挡文本内容的问题
* `修复` 代码编辑器在只读模式下依然可以编辑代码内容的问题
* `修复` 代码编辑器在只读模式下点击标题区域及部分菜单项导致应用崩溃的问题
* `修复` 代码编辑器加载大文件可能导致应用崩溃的问题 (试修)
* `修复` 代码编辑器自动打开新建文件时功能按钮状态初始化异常
* `修复` 代码编辑器编辑文件时置于后台可能导致应用崩溃的问题
* `修复` Android 15+ 代码编辑器点击 fx 按钮无法显示模块函数快捷面板的问题 (试修)
* `修复` ErrorDialogActivity 可能无法正常启动或短时间自动消失的问题 _[`issue #479`](http://issues.autojs6.com/479)_ _[`issue #471`](http://issues.autojs6.com/471)_ _[`issue #414`](http://issues.autojs6.com/414)_ _[`issue #340`](http://issues.autojs6.com/340#issuecomment-2973485826)_
* `修复` Canvas 构造函数可接受的参数类型错误 _[`issue #402`](http://issues.autojs6.com/402)_
* `修复` 崩溃报告页面复制详细信息功能失效的问题
* `修复` Android 16+ 自定义返回逻辑失效导致返回功能异常的问题
* `修复` 任务面板列表项频繁变动时可能导致应用崩溃的问题
* `修复` 使用 "三按钮" 手势导航时导航栏前景色可能与夜间模式关联异常的问题
* `修复` APK 文件类型信息对话框可能无法获取应用名称及 SDK 信息的问题
* `修复` 客户端模式连接后, 短时间断开连接并再次连接时, 出现握手超时且难以再次建立连接的问题
* `修复` 客户端模式连接时, 旋转屏幕及切换语言等触发 Activity 重建的操作导致 AutoJs6 总是重建连接的问题
* `修复` 连接 VSCode 插件时, 多种方式同时连接可能导致日志打印数量成倍增加的问题
* `修复` 布局分析页面生成代码时对于集合控件可能生成失败的问题 (试修) _[`issue #328`](http://issues.autojs6.com/328)_
* `修复` 设置页面 "使用 '音量减' 键控制录制" 开关功能失效的问题 _[`issue #480`](http://issues.autojs6.com/480)_
* `修复` 小米设备 "显示在其他应用上层" 开关可能跳转到错误设置页面的问题
* `修复` 录制脚本生成的代码文件可能出现坐标数值与屏幕实际像素值不匹配的问题 _[`issue #480`](http://issues.autojs6.com/480)_
* `修复` 录制脚本生成的代码文件首个行为 (如点击或滑动等) 总是被忽略的问题
* `修复` 浮动按钮 "运行脚本" 对话框后台操作文件时可能导致应用崩溃的问题
* `修复` 主页活动页面生命周期结束后重新进入主页时, 浮动按钮状态可能被重置的问题
* `修复` 检查更新中止下载过程后, 网络数据包依然持续后台获取的问题 (试修)
* `修复` 构建工具启用 isCleanup[Paddle/Rapid]Ocr 配置选项时无法正常完成 Rebuild Project 任务的问题
* `优化` 插件化 Paddle OCR (PP-OCRv3) 相关功能 _[`issue #334`](http://issues.autojs6.com/334)_ _[`issue #331`](http://issues.autojs6.com/331)_ _[`issue #325`](http://issues.autojs6.com/325)_
* `优化` runtime.loadJar 方法增强兼容性 (by [LYS86](https://github.com/LYS86)) _[`pr #475`](http://pr.autojs6.com/475)_
* `优化` ui.getStatusBarHeight 方法/statusBarHeight 属性 (getter) 增强一定程度的兼容性
* `优化` console.log 等方法打印全局对象 (images, app, ocr 等) 时支持显示详细信息
* `优化` 控制台相关方法打印巨型数据时根据上限适当省略部分内容以降低打印耗时
* `优化` 控制台浮动窗口倒计时起始值由 6 秒增加到 9 秒
* `优化` 控制台浮动窗口内部实现进行无锁化及队列化处理以提升其参数设置效率与成功率
* `优化` 控制台浮动窗口背景色彩行为相关 API (透明度/着色/基色) 更符合安卓设计规范 _[`issue #458`](http://issues.autojs6.com/458)_
* `优化` dialogs.build 方法支持使用 MaterialDialog.Builder 原生选项参数
* `优化` dialogs.build 方法 animation/linkify 选项参数支持字符串宽松匹配
* `优化` device.rotation/orientation/width/height 属性获取屏幕方向及宽高数据的稳定性与一致性
* `优化` app.launchDual/startDualActivity 等方法提升执行效率并增强兼容性
* `优化` android.graphics.Paint#setColor 支持正常解析 ColorInt/ColorHex/ColorName 等颜色参数
* `优化` 内置模块相关方法实参类型的异常消息增加类型摘要信息
* `优化` 内置模块 (dayjs/cheerio/i18n) 改用全局懒加载以替代脚本执行模式
* `优化` 文件管理器浮动按钮展开后点击菜单项时优化菜单收起时机
* `优化` 文件管理器/任务面板支持显示文件/任务数量统计信息
* `优化` 代码编辑器保存文件失败时自动存为草稿并支持另存为新文件
* `优化` 代码编辑器加载大文件时提升一定程度的流畅度
* `优化` 代码编辑器 "查找/替换" 支持状态持久化及实时显示搜索计数信息
* `优化` 代码编辑器提示保存时确保保存成功后再退出编辑器以降低保存失败率
* `优化` 代码编辑器保存按钮的状态更符合用户主观逻辑
* `优化` 代码编辑器支持 "-", "=", "(", "[", "{", "<" 等按键长按功能
* `优化` 打包应用打包过程对话框增加 "中止" 按钮
* `优化` 打包应用打包过程对话框的显示方式并增加耗时统计
* `优化` 打包应用使用新配置安装时将覆盖旧应用的相关配置
* `优化` 打包应用配置页面默认勾选必要权限 (WAKE_LOCK/INTERNET/WRITE_EXTERNAL_STORAGE/...) _[`issue #397`](http://issues.autojs6.com/397)_
* `优化` 打包应用配置页面支持更多选项的读取及配置 (启动时显示日志/启动时显示启动页/启动页标语文本/...)
* `优化` 打包应用设置页面增加前台服务开关 _[`issue #406`](http://issues.autojs6.com/406)_
* `优化` 脚本项目配置文件保存时增加键名冲突检测机制防止键名歧义
* `优化` 崩溃报告页面支持双指缩放调整字体大小并添加常用功能按钮
* `优化` 应用启动器图标支持自适应图标特性 _[`issue #405`](http://issues.autojs6.com/405)_
* `优化` Rhino 引擎在泛型签名解析失败时回退为原始反射类型以增强低版本安卓系统的反射方法可用性
* `优化` 主页抽屉开关类条目添加分隔线, 支持点击标题文字区域显示详情对话框并按需支持快捷跳转系统设置
* `优化` 启动或重启 AutoJs6 时支持点击主页抽屉 "客户端模式" 标题文字区域中止正在尝试建立的连接
* `优化` 客户端模式连接时支持使用 IPv6 地址及域名地址建立连接
* `优化` 客户端模式连接时支持特殊用途 IPv4 地址 (回环/广播/多播/保留/...) 检测提示
* `优化` 客户端模式连接时支持连接状态显示及管理 (修正地址/中止连接)
* `优化` 服务端模式连接时支持显示已建立连接的客户端数量
* `优化` 读取通知权限支持自动重连机制 ([requestRebind](https://developer.android.com/reference/android/service/notification/NotificationListenerService#requestRebind(android.content.ComponentName))) 以增强通知监听相关功能的稳定性
* `优化` 浮动按钮增强后台启动 Activity 的安全性以避免应用崩溃
* `优化` 浮动按钮 "更多" 对话框使用异步加载数据方式提升显示流畅度
* `优化` 浮动按钮 "运行脚本" 对话框增加 "主页" 菜单项
* `优化` 浮动按钮 "运行脚本" 对话框支持最小化及状态恢复并尽最大努力保持窗口常驻或自动恢复
* `优化` 支持使用 Shizuku 权限录制脚本及录制回放 (回放流畅度受一定影响) _[`issue #320`](http://issues.autojs6.com/320)_
* `优化` 主题色设置页面定位主题色时使用快速定位方式以提升定位效率
* `优化` 使用 [LiveData](https://developer.android.com/topic/libraries/architecture/livedata) 及 [SharedFlow](https://developer.android.com/kotlin/flow/stateflow-and-sharedflow) 替代已弃用的 [LocalBroadcastManager](https://developer.android.com/jetpack/androidx/releases/localbroadcastmanager)
* `优化` Gradle 构建脚本提升 7z 格式文件的解压效率
* `优化` Gradle 构建脚本支持获取详细的 Android Studio IDE 版本 (如 "2025.1.4.7")
* `优化` Gradle 构建脚本支持自动生成 VersionCodesList 类所需数据以降低脚本启动延迟
* `优化` 使用 [版本目录 (Version Catalogs)](https://developer.android.com/build/migrate-to-catalogs) 集中管理 Gradle 依赖和插件版本
* `优化` 模块化 Gradle 构建脚本, 将共享构建逻辑迁移至 build-logic 并抽象为约定插件
* `优化` 使用 Gradle 约定插件简化本地 AAR 库加载逻辑
* `优化` 移除 "android.enableJetifier=true" Gradle 配置选项以适配 Gradle 9
* `优化` 使用 [Toolchain](https://docs.gradle.org/current/userguide/toolchains.html) 替代 sourceCompatibility/targetCompatibility 以降低构建环境差异
* `优化` 部分依赖或本地库版本调整 _[`CHANGELOG.md`](http://project.autojs6.com/blob/master/app/src/main/assets-app/doc/CHANGELOG.md#v670)_
# v6.6.4
###### 2025/05/31
* `提示` API 变更: ui.(status/navigation)BarAppearanceLight[By] -> ui.(status/navigation)BarIconLight[By]
* `新增` util.dpToPx/spToPx/pxToDp/pxToSp 方法, 用于像素单位转换
* `修复` 屏幕旋转至横向时子标题可能显示不完整的问题
* `修复` 屏幕旋转至横向时部分页面内容被侧边导航栏遮挡的问题
* `修复` Android 15 部分页面状态栏背景着色区域不完整的问题 _[`issue #398`](http://issues.autojs6.com/398)_
* `修复` 代码编辑器可能使用置信度不足的编码写入文件导致内容解码异常的问题 (试修)
* `优化` 关于应用与开发者页面提升布局适配性并移除不必要的布局分类
* `优化` README.md 项目编译构建小节增加设置页面的定位方式 _[`issue #404`](http://issues.autojs6.com/404)_
* `优化` 部分依赖或本地库版本调整 _[`CHANGELOG.md`](http://project.autojs6.com/blob/master/app/src/main/assets-app/doc/CHANGELOG.md#v664)_
##### 更多发行历史可参阅
* [CHANGELOG.md](http://project.autojs6.com/blob/master/app/src/main/assets-app/doc/CHANGELOG-zh-Hans.md)
******
### <a id="project-compilation-and-build"></a>项目编译构建
******
如需对 AutoJs6 开源项目进行调试或开发, 可使用 [Android Studio](https://pro.autojs.org/) ([Google](https://www.google.com/) 公司产品) 或 [IntelliJ IDEA](https://www.jetbrains.com/idea/) ([Jetbrains](https://www.jetbrains.com/) 公司产品).
本小节以 Android Studio 为例介绍 AutoJs6 开源项目的编译构建方法, IntelliJ IDEA 与之类似.
#### Android Studio 准备
下载 `Android Studio Rabbit 1 | 2026.2.1` 版本 (按需选择其一):
- [android-studio-rabbit1-windows.exe](https://edgedl.me.gvt1.com/android/studio/install/2026.2.1.8/android-studio-rabbit1-windows.exe) (1.41 GiB)
- [android-studio-rabbit1-windows.zip](https://edgedl.me.gvt1.com/android/studio/ide-zips/2026.2.1.8/android-studio-rabbit1-windows.zip) (1.42 GiB)
- [android-studio-rabbit1-linux.tar.gz](https://edgedl.me.gvt1.com/android/studio/ide-zips/2026.2.1.8/android-studio-rabbit1-linux.tar.gz) (1.46 GiB)
> 注: 上述版本发布时间为 2026 年 10 月 1 日. 如需下载其他版本, 或上述链接已失效, 可访问 [Android Studio 发行版本归档](https://developer.android.com/studio/archive?hl=en) 页面.
安装或解压上述文件, 运行 Android Studio 软件 (如 `"D:\android-studio\bin\studio64.exe"`).
#### Android SDK 准备
> 注: 如果计算机系统已安装 Android SDK (安卓软件开发工具包), 则可跳过此小节内容.
打开 `Android SDK (安卓软件开发工具包)` 设置页面 (任选一种方式):
```text
Help (帮助) | Find action (查找操作) # 输入 "Android SDK"
[ 或 ]
File (文件) | Settings (设置) # 搜索 "Android SDK"
[ 或 ]
File (文件) | Settings (设置) | Language & Frameworks (语言和框架) | Android SDK (安卓软件开发工具包)
[ 或 ]
File (文件) | Settings (设置) | Appearance & Behavior (外观与行为) | System Settings (系统设置) | Android SDK (安卓软件开发工具包)
```
`Android SDK Location (安卓软件开发工具包位置)` 处如果是空白内容, 可点击右侧 `Edit (编辑)` 按钮, 在弹出的窗口中多次点击 `Next (下一步)`.
> 注: 过程中可能需要同意一个或多个相关协议才能继续.
待相关资源下载并安装完毕, 点击 `Finish (完成)` 按钮.
上述 `Android SDK Location (安卓软件开发工具包位置)` 处将自动完成路径填写, SDK 准备工作随即完成.
#### Android SDK Tools 准备
AutoJs6 需要使用部分 SDK 工具 (如 NDK 及 CMake).
> 注: 如果计算机系统已安装 AutoJs6 全部所需的 Android SDK Tools, 则可跳过此小节内容.
打开 `SDK Tools (SDK 工具)` 设置页面 (任选一种方式):
```text
Help (帮助) | Find action (查找操作) # 输入 "SDK Tools"
[ 或 ]
File (文件) | Settings (设置) # 搜索 "SDK Tools"
[ 或 ]
File (文件) | Settings (设置) | Language & Frameworks (语言和框架) | Android SDK (安卓软件开发工具包) | SDK Tools (SDK 工具) (位于右侧窗口)
[ 或 ]
File (文件) | Settings (设置) | Appearance & Behavior (外观与行为) | System Settings (系统设置) | Android SDK (安卓软件开发工具包) | SDK Tools (SDK 工具) (位于右侧窗口)
```
勾选 `Show Package Details (显示包详情)`, 依次点击 NDK 及 CMake, 确保相应版本的工具已勾选, SDK 工具的版本信息位于 AutoJs6 项目根目录的 `version.properties` 文件中.
#### JDK 准备
AutoJs6 项目依赖的 `JDK (Java 开发工具包)` 发行版本不低于 `17`, 但建议不低于 `21`.
截至 2026 年 10 月 2 日, AutoJs6 可支持 JDK 最高版本为 `26`.
> 注: 如果计算机系统已安装 JDK 且版本满足上述要求, 则可跳过此小节内容.
JDK 可使用 IDE 直接下载, 或访问 [Oracle 网站](https://www.oracle.com/java/technologies/downloads/) 下载.
打开 `Gradle JDK` 设置页面 (任选一种方式):
```text
Help (帮助) | Find action (查找操作) # 输入 "Gradle JDK"
[ 或 ]
File (文件) | Settings (设置) # 搜索 "Gradle"
[ 或 ]
File (文件) | Settings (设置) | Build, Execution, Deployment (构建, 执行, 部署) | Build Tools (构建工具) | Gradle
```
`Gradle JDK` 处可选择或添加不同版本的 JDK.
如果列表中已存在合适版本的 JDK (>= `17`), 则直接选择即可.
否则可以选择 `Download JDK (下载 JDK)` 下载合适的 JDK, 点击 `Download (下载)` 按钮并等待下载完成.
也可以选择 `Add JDK (添加 JDK)` 添加已存在的本地 JDK, 定位其目录并完成 JDK 添加.
#### AutoJs6 资源克隆
在 Android Studio 主页面点击 `Get from VCS (从版本控制系统获取)` 按钮.
`URL (统一资源定位地址)` 处填入 `https://github.com/SuperMonster003/AutoJs6.git`,
`Directory (目录)` 处可根据需要修改为特定路径.
点击 `Clone (克隆)` 按钮, 等待 AutoJs6 项目资源在设备本地完成克隆.
> 注: 上述过程可能需要安装 [Git (分布式版本控制系统)](https://git-scm.com/download).
#### AutoJs6 项目构建
克隆完成后, Android Studio 将打开 AutoJs6 的项目窗口, 并自动完成初步的 `Dependencies (依赖)` 下载及 Gradle 构建工作.
> 注: 上述过程可能非常耗时. 若网络条件欠佳, 可能需要重试多次 (点击 Retry 按钮).
如果构建未能自动进行, 或需要再次构建项目, 可执行以下步骤:
- 在 `Toolbar (工具栏)` 中, 从 `Run/Debug Configurations (运行/调试配置)` 菜单中选择 `app`, 这是 AutoJs6 的主应用
- 点击左侧的 `Build Project (构建项目)` 按钮 (形如铁锤) 开始构建项目, 默认快捷键为 CTRL + F9
- 等待构建完成, `Builder Output (构建输出)` 标签页将出现类似 "BUILD SUCCESSFUL in 1h 17m 34s" 的消息
如果构建失败, 可将异常消息反馈到 AutoJs6 项目的 [议题 (Issues)](http://issues.autojs6.com) 页面.
> 注: 关于如何构建并运行应用的更多内容, 可参阅 [Android Docs](https://developer.android.com/studio/run?hl=zh-cn)
#### AutoJs6 项目部署 (运行 App)
项目构建成功后, 可将项目作为应用程序 (简称 App) 部署到实体设备 (如手机/平板电脑) 或虚拟设备 (如 Android 模拟器) 中.
- 在 `Toolbar (工具栏)` 中, 从 `Run/Debug Configurations (运行/调试配置)` 菜单中选择 `app`, 这是 AutoJs6 的主应用
- 在右侧 `Available Devices (可用设备)` 菜单中, 选择需要运行项目 App 的设备 (实体设备或虚拟设备)
- 点击右侧的 `Run (运行)` 按钮 (形如三角形) 开始运行项目, 默认快捷键为 `F10`
- 等待部署完成, 指定设备将自动安装并运行项目 App
#### AutoJs6 项目部署 (生成 APK)
打包项目并生成可安装到安卓设备的 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](https://developer.android.com/build/build-for-release?hl=zh-cn)
#### AutoJs6 预置 Gradle 构建任务
除了构建项目 App 之外, AutoJs6 还支持一些预置的 Gradle 构建任务, 这些任务可以帮助开发者完成与项目相关的便捷操作.
在 `Toolbar (工具栏)` 的 `Run/Debug Configurations (运行/调试配置)` 菜单中, 可看到各个 Gradle 预置任务, 每个任务左侧均显示带小象图标的任务标识.
- AutoJs6 [inrt:assemble]
组装 "inrt" 构建变体, 主要服务于 AutoJs6 脚本打包功能.
AutoJs6 项目拥有不同的构建变体, 其中 "inrt" 变体用于实现 AutoJs6 的脚本打包功能, 生成打包功能依赖的模板文件 "template.apk".
使用打包功能时可能会出现以下异常消息:
> java.io.FileNotFoundException: template.apk
这表明模板文件不存在, 需要手动运行一次 `inrt:assemble` 任务, 生成模板文件, 然后再次构建并部署 App.
> 注: 当主项目代码发生变更, 且希望将变更同步到打包应用时, 需要重新运行 `inrt:assemble` 任务生成模板文件并再次部署 App
- AutoJs6 [app:bundle]
打包 debug 版本编译过程产物, 主要服务于 [AutoJs6 声明文件](http://dts-project.autojs6.com) 项目.
任务运行后生成一个 AutoJs6 项目最新的 JAR 文件, 利用 [Android d.ts Generator](https://github.com/NativeScript/android-dts-generator) (by [NativeScript](https://github.com/NativeScript)) 工具可生成 AutoJs6 主应用的声明文件 (d.ts 格式).
- AutoJs6 [app:digest]
附加摘要信息到 release 版本编译产生的 APK 文件, 主要服务于 AutoJs6 发布最新版本到 GitHub 前确定最终的文件名.
以下为附加摘要信息前后的文件名对比:
```text
前:
autojs6-v6.6.2-arm64-v8a.apk
后:
autojs6-v6.6.2-arm64-v8a-0f2a9d74.apk
```
> 参阅: [Android Docs](https://developer.android.com/studio/run?hl=zh-cn)
******
### <a id="script-development-assistance"></a>脚本开发辅助
******
开发 AutoJs6 可运行的脚本, 需使用合适的开发工具:
- [VSCode](https://code.visualstudio.com/download) / [WebStorm](https://www.jetbrains.com/webstorm/download/) / [HBuilderX](https://www.dcloud.io/hbuilderx.html) ...
如需在 PC 上进行脚本编写与调试, VSCode 插件可以实现 PC 与手机的互联:
- [AutoJs6-VSCode-Extension](http://vscext-project.autojs6.com) - AutoJs6 调试器 (VSCode 平台插件)
使用开发工具编写代码时, 代码智能补全功能可以更好地辅助开发者完成代码编写:
- [AutoJs6-TypeScript-Declarations](http://dts-project.autojs6.com) - AutoJs6 声明文件 (代码智能补全)
编写代码时, AutoJs6 相关 API 及使用方式, 可随时查阅应用文档:
- [AutoJs6-Documentation](http://docs-project.autojs6.com) - AutoJs6 应用文档
现有的脚本开发项目可作为参考, 激发个人脚本项目的创作灵感:
- [Ant-Forest](https://github.com/TonyJiangWJ/Ant-Forest) - 蚂蚁森林能量自动收取脚本 by [TonyJiangWJ](https://github.com/TonyJiangWJ)
- [Ant-Forest](https://github.com/SuperMonster003/Ant-Forest) - 蚂蚁森林能量自动收取脚本 by [SuperMonster003](https://github.com/SuperMonster003)
- [autojs](https://github.com/e1399579/autojs) - Auto.js 实用脚本 by [e1399579](https://github.com/e1399579)
- [autojsDemo](https://github.com/snailuncle/autojsDemo) - Auto.js 演示示例 by [snailuncle](https://github.com/snailuncle)
- [autojs 相关仓库](https://github.com/topics/autojs) - GitHub 与 autojs 话题相关的全部仓库
******
### 贡献参与
******
感谢每一位参与 AutoJs6 项目开发的贡献人员.
| <span style="word-break:keep-all;white-space:nowrap">贡献人员</span> | <span style="word-break:keep-all;white-space:nowrap">提交数</span> | <span style="word-break:keep-all;white-space:nowrap">最近提交</span> |
|:------:|:------:|:------:|
| <span style="word-break:keep-all;white-space:nowrap">[DeanTMaxim](https://github.com/DeanTMaxim) `(DeanT.Maxim)`</span> | <span style="word-break:keep-all;white-space:nowrap">[2](https://github.com/SuperMonster003/AutoJs6/pulls?q=is%3Apr+author%3ADeanTMaxim)</span> | <span style="word-break:keep-all;white-space:nowrap">`2026/08/21`</span> |
| <span style="word-break:keep-all;white-space:nowrap">[djbclark](https://github.com/djbclark) `(Daniel JB Clark)`</span> | <span style="word-break:keep-all;white-space:nowrap">[5](https://github.com/SuperMonster003/AutoJs6/pulls?q=is%3Apr+author%3Adjbclark)</span> | <span style="word-break:keep-all;white-space:nowrap">`2026/07/14`</span> |
| <span style="word-break:keep-all;white-space:nowrap">[M17764017422](https://github.com/M17764017422)</span> | <span style="word-break:keep-all;white-space:nowrap">[1](https://github.com/SuperMonster003/AutoJs6/pulls?q=is%3Apr+is%3Amerged+author%3AM17764017422)</span> | <span style="word-break:keep-all;white-space:nowrap">`2026/03/16`</span> |
| <span style="word-break:keep-all;white-space:nowrap">[iamsanjaymalakar](https://github.com/iamsanjaymalakar) `(Sanjay Malakar)`</span> | <span style="word-break:keep-all;white-space:nowrap">[1](https://github.com/SuperMonster003/AutoJs6/pulls?q=is%3Apr+is%3Amerged+author%3Aiamsanjaymalakar)</span> | <span style="word-break:keep-all;white-space:nowrap">`2026/03/09`</span> |
| <span style="word-break:keep-all;white-space:nowrap">[Willie169](https://github.com/Willie169)</span> | <span style="word-break:keep-all;white-space:nowrap">[1](https://github.com/SuperMonster003/AutoJs6/pulls?q=is%3Apr+is%3Amerged+author%3AWillie169)</span> | <span style="word-break:keep-all;white-space:nowrap">`2026/03/03`</span> |
| <span style="word-break:keep-all;white-space:nowrap">[LYS86](https://github.com/LYS86) `(Lin)`</span> | <span style="word-break:keep-all;white-space:nowrap">[4](https://github.com/SuperMonster003/AutoJs6/pulls?q=is%3Apr+is%3Amerged+author%3ALYS86)</span> | <span style="word-break:keep-all;white-space:nowrap">`2025/12/26`</span> |
| <span style="word-break:keep-all;white-space:nowrap">[wirsnow](https://github.com/wirsnow)</span> | <span style="word-break:keep-all;white-space:nowrap">[1](https://github.com/SuperMonster003/AutoJs6/pulls?q=is%3Apr+is%3Amerged+author%3Awirsnow)</span> | <span style="word-break:keep-all;white-space:nowrap">`2025/05/19`</span> |
| <span style="word-break:keep-all;white-space:nowrap">[TonyJiangWJ](https://github.com/TonyJiangWJ)</span> | <span style="word-break:keep-all;white-space:nowrap">[4](https://github.com/SuperMonster003/AutoJs6/pulls?q=is%3Apr+is%3Amerged+author%3ATonyJiangWJ)</span> | <span style="word-break:keep-all;white-space:nowrap">`2025/04/24`</span> |
| <span style="word-break:keep-all;white-space:nowrap">[luckyloogn](https://github.com/luckyloogn)</span> | <span style="word-break:keep-all;white-space:nowrap">[3](https://github.com/SuperMonster003/AutoJs6/pulls?q=is%3Apr+is%3Amerged+author%3Aluckyloogn)</span> | <span style="word-break:keep-all;white-space:nowrap">`2024/12/31`</span> |
| <span style="word-break:keep-all;white-space:nowrap">[kvii](https://github.com/kvii)</span> | <span style="word-break:keep-all;white-space:nowrap">[1](https://github.com/SuperMonster003/AutoJs6/pulls?q=is%3Apr+is%3Amerged+author%3Akvii)</span> | <span style="word-break:keep-all;white-space:nowrap">`2024/10/16`</span> |
| <span style="word-break:keep-all;white-space:nowrap">[chenguangming](https://github.com/chenguangming) `(Tom)`</span> | <span style="word-break:keep-all;white-space:nowrap">[2](https://github.com/SuperMonster003/AutoJs6/pulls?q=is%3Apr+is%3Amerged+author%3Achenguangming)</span> | <span style="word-break:keep-all;white-space:nowrap">`2024/05/14`</span> |
| <span style="word-break:keep-all;white-space:nowrap">[LZX284](https://github.com/LZX284) `(AI)`</span> | <span style="word-break:keep-all;white-space:nowrap">[7](https://github.com/SuperMonster003/AutoJs6/pulls?q=is%3Apr+is%3Amerged+author%3ALZX284)</span> | <span style="word-break:keep-all;white-space:nowrap">`2023/11/15`</span> |
| <span style="word-break:keep-all;white-space:nowrap">[kojoe‑code](https://github.com/kojoe-code) `(抠脚本人)`</span> | <span style="word-break:keep-all;white-space:nowrap">[12](https://github.com/SuperMonster003/AutoJs6/pulls?q=is%3Apr+is%3Amerged+author%3Akojoe-code)</span> | <span style="word-break:keep-all;white-space:nowrap">`2023/07/12`</span> |
| <span style="word-break:keep-all;white-space:nowrap">[aiselp](https://github.com/aiselp)</span> | <span style="word-break:keep-all;white-space:nowrap">[6](https://github.com/SuperMonster003/AutoJs6/pulls?q=is%3Apr+is%3Amerged+author%3Aaiselp)</span> | <span style="word-break:keep-all;white-space:nowrap">`2023/06/14`</span> |
数据更新于 2026 年 11 月 3 日.
数据条目按 `最近提交` 降序排序.
新发起的暂未处理的 Pull Request, 将在合并处理后加入数据统计.
部分贡献人员在 [GitHub Contributors](https://github.com/SuperMonster003/AutoJs6/graphs/contributors) 未能正常出现, 其提交记录为空, 仍可通过 [Pull Request](https://github.com/SuperMonster003/AutoJs6/pulls) 查看贡献记录.
[//]: # (
# --------------------------------------------------------------#
# Before committing and pushing to the remote GitHub repository #
# --------------------------------------------------------------#
- $projectDir/version.properties
- Remove the part like [ alpha / beta / ... ] of VERSION_NAME
- Builds no longer update VERSION_BUILD or BUILD_TIME [ gradle.properties: autojs.gradle.build.*.enabled=false ], so set both by hand in the release commit:
VERSION_BUILD = commit count of the release commit [ git rev-list --count HEAD, plus 1 ], BUILD_TIME = build time in milliseconds
- $projectDir/.changelog/lang_zh-Hans.json
- Update version name and released date [ the "Last Active" cell of the AutoJs6 row in the related projects table follows this date ]
- Translate into other languages, then run .python/check_translations.py --record-sync after the review
- Credit ported or superseded pull requests with "by" and "pr #" references
- $projectDir/.utils [ link: aj6scrapers ]
- Run single scripts with node instead of run-scrapers.bat when only README data is needed; npm ci first, GITHUB_TOKEN goes in .utils/.env
- scrape-and-update-readme-template-contributors-table.mjs: contribution table and var_date_contribution_table_data_updated;
pull requests credited without a GitHub merge go into CREDITED_PULL_REQUESTS of fetch-and-parse-autojs6-merged-pr-commits-statistics.mjs
- sync-platform-version-data.mjs: Android Studio download links and version names [ reads ../AutoJs6-Gradle-Platform-Versions, run its scrapers first if stale ]
- scrape-and-inject-rhino-engine-data.mjs: Rhino badge and var_date_rhino_engine_latest_committed
- Skip the Gradle wrapper, foojay resolver and Android version code scrapers at release time, they change build inputs
- The scrapers drop the trailing newline of .readme/common.json, restore it
- $projectDir/.python/generate_markdown.py
- Re-generate markdown [ link: aj6mdgen ], then run it with --check and run py -m unittest discover -s .python -p "test_markdown*.py"
- Android Studio and IntelliJ IDEA badges follow MIN_SUPPORTED_*_IDE_VERSION in version.properties when present
- Related repositories
- Documentation: re-generate only when its sources changed after the last generation [ link: aj6docgen ];
push AutoJs6-Documentation and AutoJs6-Plugin-Offline-Docs after the host release is public
- VSCode extension: check the two-way versions, VSCODE_EXT_REQUIRED_VERSION in version.properties against the Marketplace version
and requiredClientVersionCode of the extension against the host versionCode; publish the extension to Microsoft only if needed
- Build
- Skip app:assembleInrtRelease: app APKs do not bundle the inrt template [ autojs.apkBuilder.includeBuiltInTemplate=false ],
the Release Runtime Kit workflow builds it from the pushed tag
- Build signed APKs from a clean checkout of the release commit with app:assembleAppRelease and sign.properties
[ arm64-v8a, armeabi-v7a, x86, x86_64, universal ]
- Copy app/build/outputs/apk/app/release/*.apk to app/app/release, then run app:appendDigestToReleasedFiles [ output: app/app/releases ]
- Check versionName, versionCode [ VERSION_BUILD + VERSION_CODE_OFFSET ] and the signing certificate of the APKs against the previous release
- Publish
- Run prepush_check.py, push master, then check Android CI and Markdown integrity
- Create the GitHub release with tag vX.Y.Z on the release commit: title "X.Y.Z @ YYYY/MM/DD", notes from the zh-Hans changelog of that version
with the dependency entries folded into one CHANGELOG.md link [ same as the latest release history in README ], assets from app/app/releases
- The tag runs .github/workflows/release-runtime-kit.yml, which uploads autojs6-runtime-kit-*.zip to the same tag release
of SuperMonster003/AutoJs6-Runtime-Kits [ never to the AutoJs6 release, users mistook the zip files for the app ]
and dispatches the APK Builder Template plugin repository; check both runs and that the AutoJs6 release holds only APKs
- The upload token is AUTOJS6_RUNTIME_KIT_REPO_TOKEN, else AUTOJS6_PLUGIN_REPO_TOKEN [ Contents: write on AutoJs6-Runtime-Kits ];
to republish the template for an older tag, run its build-from-runtime-kit.yml instead of rerunning this tag workflow
- Close the issues that the release notes or comments promised to close after the release
)