Files
AutoJs6/.readme/README-zh-Hant-HK.md
2026-03-14 22:36:27 +08:00

708 lines
61 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
<!--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]](http://project.autojs6.com/blob/master/.readme/README-zh-Hans.md)
- 繁體中文 (香港) [zh-Hant-HK] # 當前
- [繁體中文 (台灣) [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">[Auto.js](https://github.com/hyb1996/Auto.js)</span> | <span style="word-break:keep-all;white-space:nowrap">[Auto.js](https://github.com/TonyJiangWJ/Auto.js/commit/268ec8895bbfa28fc7715154eb15b1c1eaaefd14#diff-5e01f7d37a66e4ca03deefc205d8e7008661cdd0284a05aaba1858e6b7bf9103R2)</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`</span> | <span style="word-break:keep-all;white-space:nowrap">`2020/03/13`</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> |
| <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/TonyJiangWJ/Auto.js)</span> | <span style="word-break:keep-all;white-space:nowrap">[Auto.js&#160;M](https://github.com/TonyJiangWJ/Auto.js/commit/268ec8895bbfa28fc7715154eb15b1c1eaaefd14#diff-5e01f7d37a66e4ca03deefc205d8e7008661cdd0284a05aaba1858e6b7bf9103R2)</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`</span> | <span style="word-break:keep-all;white-space:nowrap">-</span> | <span style="word-break:keep-all;white-space:nowrap">< 6.32 ></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/commit/8143e4ed893d4af05d22aa791b83a962f9959873#diff-5e01f7d37a66e4ca03deefc205d8e7008661cdd0284a05aaba1858e6b7bf9103R2)</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`</span> | <span style="word-break:keep-all;white-space:nowrap">[ `2025/01/07` ]</span> | <span style="word-break:keep-all;white-space:nowrap">4.46</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">[AutoJs6](https://github.com/SuperMonster003/AutoJs6)</span> | <span style="word-break:keep-all;white-space:nowrap">[AutoJs6](https://github.com/SuperMonster003/AutoJs6/commit/a8ce1b9acb541e9736c33134be3194c3148a15a3#diff-833a46a97033e77558372a2dce103fd6fee29aaaa899f610022a7aece592ee7bR27)</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`</span> | <span style="word-break:keep-all;white-space:nowrap">-</span> | <span style="word-break:keep-all;white-space:nowrap">< 4.28 ></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`</span> | <span style="word-break:keep-all;white-space:nowrap">`2023/07/31`</span> | <span style="word-break:keep-all;white-space:nowrap">1.62</span> |
| <span style="word-break:keep-all;white-space:nowrap">[AutoX](https://github.com/kkevsekk1/AutoX)</span> | <span style="white-space:pre">[Autox.js&#160;v6](https://github.com/kkevsekk1/AutoX/commit/8b6776cff8b0fca4be4a52719b7d7d07c0a058f3#diff-51a0b488f963eb0be6c6599bf5df497313877cf5bdff3950807373912ac1cdc9R130)</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`</span> | <span style="word-break:keep-all;white-space:nowrap">[ `2025/01/07` ]</span> | <span style="word-break:keep-all;white-space:nowrap">2.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/commit/a11feaad025154de9b453ba70b49e94a6ca8b48a#diff-7d757295fcec3b37c258337e048644c258233d79259152e77baa6d36bb0ec418R2)</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`</span> | <span style="word-break:keep-all;white-space:nowrap">`2023/04/16`</span> | <span style="word-break:keep-all;white-space:nowrap">0.16</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/commit/8de11699b608be1c1f49f0f10e2e2826f8c77978)</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`</span> | <span style="word-break:keep-all;white-space:nowrap">-</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/aiselp/AutoX)</span> | <span style="white-space:pre">[Autox.js&#160;v7](https://github.com/aiselp/AutoX/commit/484491fd5fe12b8203d0b09c181eb0f471c0ea9f#diff-8cff73265af19c059547b76aca8882cbaa3209291406f52df1dafbbc78e80c46R120)</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`</span> | <span style="word-break:keep-all;white-space:nowrap">-</span> | <span style="word-break:keep-all;white-space:nowrap">< 1.90 ></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&#160;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">-</span> | <span style="word-break:keep-all;white-space:nowrap">< 1.45 ></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&#160;v6](https://github.com/autox-community/AutoX/commit/8b6776cff8b0fca4be4a52719b7d7d07c0a058f3#diff-51a0b488f963eb0be6c6599bf5df497313877cf5bdff3950807373912ac1cdc9R130)</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`</span> | <span style="word-break:keep-all;white-space:nowrap">-</span> | <span style="word-break:keep-all;white-space:nowrap">< 0.96 ></span> |
表格中的日期為預估值, 與實際可能存在出入.
表格中 Auto.js Pro 7/8/9 為付費版本, 其餘為免費開源版本.
表格中 `終止開發日期` 列包含方括號 (`[]`) 的數據, 表示開源項目暫時無法訪問.
表格中 `活躍維護期` 列包含尖括號 (`<>`) 的數據, 其統計截止日期為 2026 年 3 月 14 日.
******
### 功能
******
* 可用作 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) 插件)
******
### 環境
******
- 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) (更新於 2025 年 12 月 25 日)
* 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.7.0
###### 2026/03/14
* `新增` 插件中心功能, 支持插件的安裝/卸載/更新等操作 (入口: 主頁抽屜按鈕/主頁標籤頁)
* `新增` 版本歷史功能, 支持查看/恢復可編輯文件的歷史版本 (入口: 主頁抽屜按鈕/文件管理器菜單/代碼編輯器菜單)
* `新增` 回收站功能, 支持查看/恢復已刪除的文件/文件夾 (入口: 主頁抽屜按鈕)
* `新增` Paddle OCR (PP-OCRv5) 插件, 用於光學字符識別
* `新增` cvt 模塊, 用於數據單位轉換 (參閲 項目文檔 > [單位轉換](https://docs.autojs6.com/#/cvt))
* `新增` fmt 模塊, 用於數據格式化 (參閲 項目文檔 > [格式化](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))
* `新增` cvt.bytes 方法, 用於字節數據單位轉換 (參閲 項目文檔 > [單位轉換](https://docs.autojs6.com/#/cvt))
* `新增` fmt.bytes 方法, 用於字節數據格式化 (參閲 項目文檔 > [格式化](https://docs.autojs6.com/#/fmt))
* `新增` 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 服務狀態
* `新增` runtime.(set/is)JavaPrimitiveWrap 方法, 用於設置或獲取 Java 原始類型包裝策略 _[`issue #435`](http://issues.autojs6.com/435)_
* `新增` autojs.(restart/exit) 方法, 用於重啓或退出 AutoJs6 應用, 並支持應用重啓時自動運行其參數指定的腳本 _[`issue #460`](http://issues.autojs6.com/460)_
* `新增` UiObject#isShifted 方法, 用於檢測控件位置變化 _[`issue #469`](http://issues.autojs6.com/469)_
* `新增` UiObject#snapshot 方法, 用於捕獲控件當前狀態 _[`issue #469`](http://issues.autojs6.com/469)_
* `新增` 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))
* `新增` 等價系列選擇器 (UiSelector#id/text/...) 及包含系列選擇器 (UiSelector#xxxContains) 支持正則表達式參數
* `新增` 選擇器的正則表達式參數支持使用標誌 (i, m, s, u)
* `新增` 正則表達式支持後瞻斷言語法 _[`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 通用數據/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)_
* `修復` 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)_
* `修復` 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)_
* `修復` Android 7.x 可能無法正常使用打包功能的問題
* `修復` 腳本項目配置文件保存時原始鍵名可能會被修改的問題
* `修復` 腳本項目配置文件中構建版本號或構建時間出現較大數字時可能導致應用崩潰的問題
* `修復` 頻繁獲取或重建 ImageReader 時可能因緩衝區暫無可用幀導致應用崩潰的問題
* `修復` 輸入事件觀察器 InputEventObserver 可能導致應用啓動時明顯卡頓的問題
* `修復` Shizuku 用户服務進程未能正常結束導致進程堆積的問題 _[`issue #474`](http://issues.autojs6.com/474)_
* `修復` 打包應用無法正常使用 Paddle OCR 與 Rapid OCR 功能的問題
* `修復` 打包應用配置文件 project.json 中的 key 值可能被意外修改的問題
* `修復` 打包應用配置頁面滑動 "需要的權限" 列表時可能出現複選框圖標閃爍的問題
* `修復` 發行歷史頁面部分系統因字體差別導致統計數據顯示不完整的問題
* `修復` 部分設備無法正常初始化 MLKit Google OCR 的問題 (試修) _[`issue #8`](http://issues.autojs6.com/8#issuecomment-3117061768)_
* `修復` 部分設備無法正常觸發文件管理器功能按鈕點擊事件的問題 (試修) _[`issue #465`](http://issues.autojs6.com/465)_
* `修復` 部分設備代碼編輯器空行顯示方框字符的問題 (試修)
* `修復` 代碼編輯器軟鍵盤可能遮擋文本內容的問題
* `修復` 代碼編輯器在只讀模式下依然可以編輯代碼內容的問題
* `修復` 代碼編輯器在只讀模式下點擊標題區域及部分菜單項導致應用崩潰的問題
* `修復` 代碼編輯器加載大文件可能導致應用崩潰的問題 (試修)
* `修復` 代碼編輯器自動打開新建文件時功能按鈕狀態初始化異常
* `修復` 代碼編輯器編輯文件時置於後台可能導致應用崩潰的問題
* `修復` 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+ 自定義返回邏輯失效導致返回功能異常的問題
* `修復` 文件管理器搜索結果展示後點擊返回按鈕或切換標籤頁面時可能導致應用崩潰的問題
* `修復` 文件管理器刪除項目文件夾後 UI 未能自動刷新的問題
* `修復` 任務面板列表項頻繁變動時可能導致應用崩潰的問題
* `修復` 使用 "三按鈕" 手勢導航時導航欄前景色可能與夜間模式關聯異常的問題
* `修復` APK 文件類型信息對話框可能無法獲取應用名稱及 SDK 信息的問題
* `修復` 客户端模式連接後, 短時間斷開連接並再次連接時, 出現握手超時且難以再次建立連接的問題
* `修復` 客户端模式連接時, 旋轉屏幕及切換語言等觸發 Activity 重建的操作導致 AutoJs6 總是重建連接的問題
* `修復` 服務端模式連接時, 旋轉屏幕及切換語言等觸發 Activity 重建的操作導致 VSCode 控制枱無法輸出日誌的問題 _[`issue #385`](http://issues.autojs6.com/385)_
* `修復` 連接 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 等) 時支持顯示詳細信息
* `優化` dialogs.build 方法支持使用 MaterialDialog.Builder 原生選項參數
* `優化` dialogs.build 方法 animation/linkify 選項參數支持字符串寬鬆匹配
* `優化` device.rotation/rotation/width/height 方法獲取屏幕方向及寬高數據的穩定性與一致性
* `優化` app.launchDual/startDualActivity 等方法提升執行效率並增強兼容性
* `優化` android.graphics.Paint#setColor 支持正常解析 ColorInt/ColorHex/ColorName 等顏色參數
* `優化` 內置模塊相關方法實參類型的異常消息增加類型摘要信息
* `優化` 內置模塊 (dayjs/cheerio/dayjs/i18n) 脱離腳本執行模式, 使用全局懶加載方式替代
* `優化` 控制枱相關方法打印巨型數據時根據上限適當省略部分內容以降低打印耗時
* `優化` 控制枱浮動窗口倒計時起始值由 6 秒增加到 9 秒
* `優化` 控制枱浮動窗口內部實現進行無鎖化及隊列化處理以提升其參數設置效率與成功率
* `優化` 控制枱浮動窗口背景色彩行為相關 API (透明度/着色/基色) 更符合安卓設計規範 _[`issue #458`](http://issues.autojs6.com/458)_
* `優化` 文件管理器浮動按鈕展開後點擊菜單項時優化菜單收起時機
* `優化` 文件管理器/任務面板支持顯示文件/任務數量統計信息
* `優化` 代碼編輯器保存文件失敗時自動存為草稿並支持另存為新文件
* `優化` 代碼編輯器加載大文件時提升一定程度的流暢度
* `優化` 代碼編輯器 "查找/替換" 支持狀態持久化及實時顯示搜索計數信息
* `優化` 代碼編輯器提示保存時確保保存成功後再退出編輯器以降低保存失敗率
* `優化` 代碼編輯器保存按鈕的狀態更符合用户主觀邏輯
* `優化` 代碼編輯器支持 "-", "=", "(", "[", "{", "<" 等按鍵長按功能
* `優化` 打包應用打包過程對話框增加 "中止" 按鈕
* `優化` 打包應用打包過程對話框的顯示方式並增加耗時統計
* `優化` 打包應用使用新配置安裝時將覆蓋舊應用的相關配置
* `優化` 打包應用配置頁面默認勾選必要權限 (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)_
# v6.6.3
###### 2025/05/27
* `新增` 發行歷史功能, 可查看發行版本的發行歷史記錄 (多語言) 與統計數據
* `新增` timers.keepAlive 方法 (已全局化), 用於保持腳本活躍狀態
* `新增` engines.on('start/stop/error', callback) 等事件監聽方法, 用於監聽腳本引擎全局事件
* `新增` images.detectMultiColors 方法, 用於多點顏色校驗 _[`issue #374`](http://issues.autojs6.com/374)_
* `新增` images.matchFeatures/detectAndComputeFeatures 方法, 支持全分辨率找圖 (Ref to [Auto.js Pro](https://g.pro.autojs.org/)) _[`issue #366`](http://issues.autojs6.com/366)_
* `新增` images.compressToBytes 方法, 用於壓縮圖像並生成字節數組
* `新增` images.downsample 方法, 用於像素降採樣並生成新的 ImageWrapper
* `新增` ui.keepScreenOn 方法, 用於 UI 頁面獲取焦點時保持設備屏幕常亮
* `新增` ui.root 屬性 (getter), 用於獲取 UI 頁面佈局的 "窗口內容根容器" 節點
* `新增` webview 元素支持基於 JsBridge 的 Web 頁面佈局 (Ref to [Auto.js Pro](https://g.pro.autojs.org/)) [參閱 示例代碼 > 佈局 > 可交互 HTML / Vue2 + Vant (SFC)] _[`issue #281`](http://issues.autojs6.com/281)_
* `新增` 佈局分析支持控件隱藏 (by [TonyJiangWJ](https://github.com/TonyJiangWJ)) _[`pr #371`](http://pr.autojs6.com/371)_ _[`issue #355`](http://issues.autojs6.com/355)_
* `修復` 主頁文檔標籤及文檔活動頁面顯示在線文檔時部分內容被系統導航欄遮擋的問題
* `修復` 部分頁面 Toolbar 點擊按鈕時可能導致標題點擊事件誤觸發的問題
* `修復` 部分設備代碼編輯器空行顯示方框字符的問題 (試修)
* `修復` 主題色設置頁面調色盤對話框可能無限疊加的問題
* `修復` 無障礙服務關閉時音量加鍵停止所有腳本功能失效的問題
* `修復` 定時任務頁面編輯自定義廣播內容時出現的輸入法遮擋問題
* `修復` webview 元素中的控件無法正常激活輸入法軟鍵盤的問題
* `修復` APK 文件類型信息對話框可能無法獲取應用名稱及 SDK 信息的問題
* `修復` 文件管理器示例代碼進入項目目錄時可能無法自動加載子目錄文件內容的問題
* `修復` Android 15 UI 模式頂部內容被狀態欄覆蓋的問題
* `修復` Android 15 部分頁面狀態欄背景顏色可能無法動態跟隨主題色的問題
* `修復` dialogs 模塊無法正常使用 customView 屬性的問題 _[`issue #364`](http://issues.autojs6.com/364)_
* `修復` dialogs.input 方法的表達式參數可能無法獲得執行結果的問題
* `修復` 使用 JavaAdapter 時導致 ClassLoader 調用棧溢出的問題 _[`issue #376`](http://issues.autojs6.com/376)_
* `修復` console.setContentTextColor 方法導致日誌字體顏色丟失默認值的問題 _[`issue #346`](http://issues.autojs6.com/346)_
* `修復` console.setContentBackgroundColor 方法無法接受顏色名稱參數的問題 _[`issue #384`](http://issues.autojs6.com/384)_
* `修復` images.compress 方法實現原理由像素降採樣修正爲編碼質量變化
* `修復` images.resize 方法無法正常使用的問題
* `修復` engines.all 方法可能觸發 ConcurrentModificationException 的問題 _[`issue #394`](http://issues.autojs6.com/394)_
* `修復` README.md 中部分語言日期格式不正確的問題
* `修復` Gradle 構建腳本可能因獲取到無效庫檔案文件長度而導致構建失敗的問題 _[`issue #389`](http://issues.autojs6.com/389)_
* `優化` 佈局分析菜單添加漸變分隔線實現一定程度的功能分組
* `優化` 腳本項目配置文件 project.json 支持 permissions 選項 (by [wirsnow](https://github.com/wirsnow)) _[`pr #391`](http://pr.autojs6.com/391)_ _[`issue #362`](http://issues.autojs6.com/362)_
* `優化` 打包單文件時自動讀取並勾選已安裝應用的聲明權限 _[`issue #362`](http://issues.autojs6.com/362)_
* `優化` 主題色擴充適配範圍並支持更多控件類型
* `優化` 主頁抽屜在橫向屏幕或超寬屏幕的寬度適應性
* `優化` 關於應用與開發者頁面增加水平佈局及小屏佈局適配
* `優化` 設置頁面對話框相關設置支持 "使用默認值" 菜單選項
* `優化` 文件管理器浮動按鈕展開後點擊其他區域可自動隱藏
* `優化` 代碼編輯器格式化代碼支持 `??`, `?.`, `??=` 等運算符
* `優化` 代碼編輯器支持 GB18030 / UTF-16 (LE/BE) / Shift_JIS 等編碼的文件讀寫
* `優化` 代碼編輯器支持顯示文件詳細信息 (路徑/編碼/換行符/字節及字符總數等) _[`issue #395`](http://issues.autojs6.com/395)_
* `優化` 意圖相關操作 (編輯/查看/安裝/發送/播放等) 增加操作異常提示
* `優化` webview 元素的 url 屬性支持相對路徑
* `優化` ImageWrapper#saveTo 方法的路徑參數支持相對路徑
* `優化` images.save 方法使用 quality 參數時支持 png 格式的文件體積壓縮 _[`issue #367`](http://issues.autojs6.com/367)_
* `優化` 已忽略更新記錄及客戶端模式連接地址記錄支持清空操作
* `優化` 版本更新信息支持多語言顯示 (與當前顯示語言同步)
* `優化` 使用異步加載方式一定程度提升文件管理器列表滑動流暢性
* `優化` 腳本異常消息在控制檯的顯示內容與格式
* `優化` 示例代碼支持將文件夾重置爲初始內容
* `優化` APK 文件簽名信息提升檢測效率
* `優化` APK 文件類型信息及媒體文件類型信息優化對話框顯示效率及信息展示邏輯
* `優化` Gradle 構建腳本提升版本自適應能力 _[`discussion #369`](http://discussions.autojs6.com/369)_
* `優化` 部分依賴或本地庫版本調整 _[`CHANGELOG.md`](http://project.autojs6.com/blob/master/app/src/main/assets-app/doc/CHANGELOG.md#v663)_
##### 更多發行歷史可參閲
* [CHANGELOG.md](http://project.autojs6.com/blob/master/app/src/main/assets-app/doc/CHANGELOG-zh-Hant-HK.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 Panda 2 | 2025.3.2` 版本 (按需選擇其一):
- [android-studio-panda2-windows.exe](https://edgedl.me.gvt1.com/android/studio/install/2025.3.2.6/android-studio-panda2-windows.exe) (1.28 GiB)
- [android-studio-panda2-windows.zip](https://edgedl.me.gvt1.com/android/studio/ide-zips/2025.3.2.6/android-studio-panda2-windows.zip) (1.29 GiB)
- [android-studio-panda2-linux.tar.gz](https://edgedl.me.gvt1.com/android/studio/ide-zips/2025.3.2.6/android-studio-panda2-linux.tar.gz) (1.32 GiB)
> 注: 上述版本發佈時間為 2026 年 3 月 3 日. 如需下載其他版本, 或上述鏈接已失效, 可訪問 [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 年 3 月 14 日, AutoJs6 可支持 JDK 最高版本為 `25`.
> 注: 如果計算機系統已安裝 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">[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&#x2011;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 年 3 月 4 日.
數據條目按 `最近提交` 降序排序.
新發起的暫未處理的 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 #
# --------------------------------------------------------------#
- IDE
- The summary of the latest changelog for committing to Git [ DO NOT commit or push ]
- $projectDir/version.properties
- Remove the part like [ alpha / beta / ... ] of VERSION_NAME
- $projectDir/.changelog/lang_zh-Hans.json
- Update version name and released date
- Translate into other languages
- Update TypeScript declarations according to section `dependency` if needed
- $projectDir/.readme/template_readme.md
- Update Rhino badge
- Update Android Studio and IntelliJ IDEA badges [ link: aj6mdgen ]
- Update contribution section: [ h3_contribution ] [ link: aj6scrapers ]
- $projectDir/.readme/common.json
- Update android studio download links and version names [ link: aj6scrapers ]
- Update contribution section: var_date_contribution_table_data_updated [ link: aj6scrapers ]
- $projectDir/.python/generate_markdown.py
- Re-generate markdown by running the python script [ link: aj6mdgen ]
- Others
- Re-generate documentation by running the python script [ link: aj6docgen ]
- Check the two-way versions for AutoJs6 and VSCode ext, then publish the ext to Microsoft if needed
- Run Gradle task "app:assembleInrtRelease" [ shortcut: C+A+0#- ]
- Build APK to determine the final VERSION_BUILD field [ shortcut: C+A+0#A ]
- Run Gradle task "app:appendDigestToReleasedFiles" [ shortcut: C+A+0#= ]
- Check VERSION_BUILD in version.properties with released apks
- Commit and push to GitHub
- Publish the latest release with signed APKs
)