)
* `優化` 代碼編輯器導入 Java 類和包名時支持智能判斷插入位置
* `優化` images 模塊支持直接使用路徑作為圖像參數
* `優化` importPackage 支持字符串參數
* `優化` 服務端模式 IP 地址支持剪切板導入智能識別且支持空格按鍵智能轉換
* `優化` 文件管理器新建文件時支持默認前綴選擇並自動生成合適的數字後綴
* `優化` 文件管理器運行項目時具體化異常消息提示 _[`issue #268`](http://issues.autojs6.com/268)_
* `優化` 文件管理器支持更多類型並支持顯示對應的圖標符號 (支持 800 多種文件類型)
* `優化` 文件管理器可編輯的文件類型 (jpg/doc/pdf...) 增加編輯按鈕
* `優化` 文件管理器 APK 文件支持查看基礎信息, Manifest 信息及權限列表
* `優化` 文件管理器音視頻等媒體文件支持查看基礎信息及 MediaInfo 信息
* `優化` 打包單文件時支持自動填入合適的標準化名包並支持無效字符過濾提示
* `優化` 打包單文件時支持根據已安裝同包名應用自動設置圖標並自增版本號及版本名稱
* `優化` 打包項目配置文件支持 abis/libs 選項指定默認包含的 ABI 架構及擴展庫
* `優化` 打包項目配置文件 abis/libs 選項無效或無可用時支持相關消息提示
* `優化` LeakCanary 在正式發行版本中被排除以避免增加不必要性
* `優化` 項目源代碼所有英文註釋增加簡體中文翻譯以增強註釋可讀性
* `優化` README 及 CHANGELOG 支持多語言 (由腳本自動生成)
* `優化` Gradle 構建腳本提升版本自適應能力
* `優化` 部分依賴或本地庫版本調整 _[`CHANGELOG.md`](http://project.autojs6.com/blob/master/app/src/main/assets-app/doc/CHANGELOG.md#v660)_
##### 更多版本歷史可參閲
* [CHANGELOG.md](http://project.autojs6.com/blob/master/app/src/main/assets-app/doc/CHANGELOG-zh-Hant-HK.md)
******
### 項目編譯構建
******
如需對 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 Meerkat | 2024.3.1 Patch 2` 版本 (按需選擇其一):
- [android-studio-2024.3.1.15-windows.exe](https://redirector.gvt1.com/edgedl/android/studio/install/2024.3.1.15/android-studio-2024.3.1.15-windows.exe) (1.22 GB)
- [android-studio-2024.3.1.15-windows.zip](https://redirector.gvt1.com/edgedl/android/studio/ide-zips/2024.3.1.15/android-studio-2024.3.1.15-windows.zip) (1.23 GB)
> 注: 上述版本發佈時間為 2025 年 4 月 21 日. 如需下載其他版本, 或上述鏈接已失效, 可訪問 [Android Studio 發行版本歸檔](https://developer.android.com/studio/archive?hl=en) 頁面.
安裝或解壓上述文件, 運行 Android Studio 軟件 (如 `"D:\android-studio\bin\studio64.exe"`).
#### Android SDK 準備
> 注: 如果計算機系統已安裝 Android SDK (安卓軟件開發工具包), 則可跳過此小節內容.
在 Android Studio 軟件中使用快捷鍵 `CTRL + ALT + S` 打開設置頁面:
```text
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, 則可跳過此小節內容.
在 Android Studio 軟件中使用快捷鍵 `CTRL + ALT + S` 打開設置頁面:
```text
Appearance & Behavior (外觀與表現) ->
System Settings (系統設置) ->
Android SDK (安卓軟件開發工具包) ->
SDK Tools (SDK 工具) (位於右側窗口)
```
勾選 `Show Package Details (顯示包詳情)`, 依次點擊 NDK 及 CMake, 確保相應版本的工具已勾選, SDK 工具的版本信息位於 AutoJs6 項目根目錄的 `version.properties` 文件中.
#### JDK 準備
AutoJs6 項目依賴的 `JDK (Java 開發工具包)` 發行版本不低於 `17`, 但建議不低於 `19`.
截至 2025 年 5 月 22 日, AutoJs6 可支持 JDK 最高版本為 `24`.
> 注: 如果計算機系統已安裝 JDK 且版本滿足上述要求, 則可跳過此小節內容.
JDK 可使用 IDE 直接下載, 或訪問 [Oracle 網站](https://www.oracle.com/java/technologies/downloads/) 下載.
在 Android Studio 軟件中使用快捷鍵 `CTRL + ALT + S` 打開設置頁面:
```text
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)
******
### 腳本開發輔助
******
開發 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 項目開發的貢獻人員.
| 貢獻人員 | 提交數 | 最近提交 |
|:-------------------------------------------------------------------------------------------------------------------------:|:--------------------------------------------------------------------------------------------------------------------------------------------------:|:--------------------------------------------------------------------------------------------------------------:|
| [TonyJiangWJ](https://github.com/TonyJiangWJ) | [5](https://github.com/SuperMonster003/AutoJs6/commits?author=TonyJiangWJ) | `2025/04/24` |
| [luckyloogn](https://github.com/luckyloogn) | [3](https://github.com/SuperMonster003/AutoJs6/commits?author=luckyloogn) | `2025/01/01` |
| [kvii](https://github.com/kvii) | [1](https://github.com/SuperMonster003/AutoJs6/commits?author=kvii) | `2024/10/16` |
| [chenguangming](https://github.com/chenguangming) `(Tom)` | [2](https://github.com/SuperMonster003/AutoJs6/pulls?q=is%3Apr+author%3Achenguangming) | `2024/05/14` |
| [LZX284](https://github.com/LZX284) `(AI)` | [17](https://github.com/SuperMonster003/AutoJs6/commits?author=LZX284) | `2023/11/19` |
| [little‑alei](https://github.com/little-alei) `(抠脚本人)` | [12](https://github.com/SuperMonster003/AutoJs6/commits?author=little-alei) | `2023/07/12` |
| [aiselp](https://github.com/aiselp) | [6](https://github.com/SuperMonster003/AutoJs6/pulls?q=is%3Apr+author%3Aaiselp) | `2023/06/14` |
| [LYS86](https://github.com/LYS86) `(Lin)` | [2](https://github.com/SuperMonster003/AutoJs6/commits?author=LYS86) | `2023/06/03` |
數據更新於 2025 年 5 月 13 日.
數據條目按 `最近提交` 降序排序.
新發起的暫未處理的 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 #
# --------------------------------------------------------------#
- CHANGELOG.md
- Update entries for AutoJs6 by checking all changed files
- Update entries for Gradle plugins [ implementation ]
- Update version name and released date
- Append related GitHub issues to changelog entries
- README.md
- The summary of the latest changelog for committing to Git [ DO NOT commit or push ]
- Update badges like [ android studio / rhino / ... ]
- Update android studio download links and version names
- Update contribution section
- Remove the part like [ alpha / beta / ... ] of VERSION_NAME in version.properties
- Update dependencies TypeScript declarations if needed.
- Re-generate documentation/markdown by running the python script
- Check the two-way versions for AutoJs6 and VSCode ext, then publish the ext to Microsoft
- Run Gradle task "app:assembleInrtRelease"
- Build APK to determine the final VERSION_BUILD field
- Run Gradle task "app:appendDigestToReleasedFiles"
- Check VERSION_BUILD in version.properties with released apks
- Commit and push to GitHub
- Publish the latest release with signed APKs
)