)
* `最佳化` 程式碼編輯器匯入 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-TW.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 1` 版本 (按需選擇其一):
- [android-studio-2024.3.1.14-windows.exe](https://redirector.gvt1.com/edgedl/android/studio/install/2024.3.1.14/android-studio-2024.3.1.14-windows.exe) (1.22 GB)
- [android-studio-2024.3.1.14-windows.zip](https://redirector.gvt1.com/edgedl/android/studio/ide-zips/2024.3.1.14/android-studio-2024.3.1.14-windows.zip) (1.23 GB)
> 注: 上述版本釋出時間為 2025 年 3 月 24 日. 如需下載其他版本, 或上述連結已失效, 可訪問 [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 月 2 日, 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 專案開發的貢獻人員.
| 貢獻人員 | 提交數 | 最近提交 |
|:-------------------------------------------------------------------------------------------------------------------------:|:--------------------------------------------------------------------------------------------------------------------------------------------------:|:--------------------------------------------------------------------------------------------------------------:|
| [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` |
| [TonyJiangWJ](https://github.com/TonyJiangWJ) | [4](https://github.com/SuperMonster003/AutoJs6/commits?author=TonyJiangWJ) | `2023/10/31` |
| [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 年 1 月 1 日.
資料條目按 `最近提交` 降序排序.
新發起的暫未處理的 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
)