62 KiB
語言 (Languages)
當前自述檔案 README.md 支援以下語言:
- 简体中文 [zh-Hans]
- 繁體中文 (香港) [zh-Hant-HK]
- 繁體中文 (台灣) [zh-Hant-TW] # 當前
- English [en]
- Français [fr]
- Español [es]
- 日本語 [ja]
- 한국어 [ko]
- Русский [ru]
- العربية [ar]
簡介
Auto.js 是一款 Android 平臺支援 無障礙服務 的 JavaScript 自動化工具軟體.
Auto.js 由 hyb1996 於 2017/01/27 初次釋出, 於 2020/03/13 停止維護, 最終版本名稱為 4.1.1 Alpha2, 構建版本號為 461.
AutoJs6 在 Auto.js 最終專案的基礎上, 於 2021/12/01 進行二次開發, 繼續保持開源免費.
下表列舉了部分 Auto.js 相關專案 (按開發日期排序):
| 專案 | 應用名稱 | 主要開發者 | 開發日期 | 終止開發日期 | 活躍維護期 (年) |
|---|---|---|---|---|---|
| Auto.js | Auto.js | hyb1996 | 2017/01/27 |
2020/03/13 |
3.13 |
| Auto.js Pro 7 | Auto.js | hyb1996 | 2019/03/13 |
2019/07/08 |
0.32 |
| Auto.js Pro 8 | AutoJsPro | hyb1996 | 2019/10/13 |
2021/07/24 |
1.78 |
| Auto.js | Auto.js M | TonyJiangWJ | 2019/11/21 |
- | < 6.32 > |
| AutoX | Autox.js | kkevsekk1 | 2020/07/24 |
[ 2025/01/07 ] |
4.46 |
| Auto.js Pro 9 | AutoJsPro | hyb1996 | 2021/03/28 |
2023/02/09 |
1.87 |
| AutoJs6 | AutoJs6 | SuperMonster003 | 2021/12/01 |
- | < 4.28 > |
| autojs4 | Auto.js | blackcd318 | 2021/12/15 |
2023/07/31 |
1.62 |
| AutoX | Autox.js v6 | wilinz / aiselp | 2022/05/26 |
[ 2025/01/07 ] |
2.62 |
| openautojs | OpenAuto.js | openautojs | 2023/02/17 |
2023/04/16 |
0.16 |
| AutoJs4 | AutoJs4 | SuperMonster003 | 2023/04/11 |
- | < 2.93 > |
| AutoX | Autox.js v7 | aiselp | 2024/04/21 |
- | < 1.90 > |
| Autoxjs_v6_ozobi | Autox.js v6_ozobi | ozobiozobi | 2024/10/01 |
- | < 1.45 > |
| AutoX | Autox.js v6 | autox-community | 2025/03/30 |
- | < 0.96 > |
表格中的日期為預估值, 與實際可能存在出入.
表格中 Auto.js Pro 7/8/9 為付費版本, 其餘為免費開源版本.
表格中 終止開發日期 列包含方括號 ([]) 的資料, 表示開源專案暫時無法訪問.
表格中 活躍維護期 列包含尖括號 (<>) 的資料, 其統計截止日期為 2026 年 3 月 14 日.
功能
- 可用作 JavaScript IDE (程式碼補全/變數重新命名/程式碼格式化)
- 支援基於 無障礙服務 的自動化操作
- 支援浮動按鈕快捷操作 (指令碼錄製及執行/檢視包名及活動/佈局分析)
- 支援選擇器 API 並提供控制元件遍歷/獲取資訊/控制元件操作 (類似 UiAutomator)
- 支援佈局介面分析 (類似 Android Studio 的 LayoutInspector)
- 支援錄製功能及錄製回放
- 支援螢幕截圖/儲存截圖/圖片找色/圖片匹配
- 支援 E4X (ECMAScript for XML) 編寫介面
- 支援將指令碼檔案或專案打包為 APK 檔案
- 支援利用 Root 許可權擴充套件功能 (螢幕點選/滑動/錄製/Shell)
- 支援作為 Tasker 外掛使用
- 支援與 VSCode 連線並進行桌面開發 (需要 AutoJs6-VSCode-Extension 外掛)
環境
指南
主要變更
相較於 Auto.js 最終開源版本 4.1.1 Alpha2, AutoJs6 主要進行了以下升級或變更:
- 支援透過 Shizuku 獲得 ADB 特權並使用系統 API
- 支援構建 WebSocket 例項以完成基於 WebSocket 協議 的網路請求
- 新增模組 [ base64 / crypto / sqlite / i18n / notice / ocr / opencc / qrcode / shizuku / ... ]
- 多語言適配 [ 西 / 法 / 俄 / 阿 / 日 / 韓 / 英 / 簡中 / 繁中 / ... ]
- 主題色適配 [ 分組 / 定位 / 搜尋 / 歷史記錄 / 亮度及對比度自動適配 / ... ]
- 夜間模式適配 [ 設定頁面 / 文件頁面 / 佈局分析頁面 / 浮動視窗 / ... ]
- VSCode 外掛 支援客戶端 (LAN) 及服務端 (LAN/ADB) 連線方式
- Rhino 引擎由 v1.7.7.2 升級至 v2.0.0-SNAPSHOT (更新於 2025 年 12 月 25 日)
- Unicode 碼位 轉義支援 輔助平面 字元
'\u{1D160}'; /* 表示 "𝅘𝅥𝅮", 傳統方式: '\uD834\uDD60'. */ - 支援 Object.values()
Object.values({name: 'Max', age: 4}); // ['max', 4] - 支援 Array.prototype.includes()
[10, 20, NaN].includes(20); // true - 支援 BigInt
typeof 567n === 'bigint'; // true - 支援 模板字串
`Lucky number: ${(Math.random() * 100).toFixed(0)}` - 檢視 Rhino 引擎 更多新特性
- 檢視 Rhino 引擎 相容性列表
- Unicode 碼位 轉義支援 輔助平面 字元
發行歷史
v6.7.0
2026/03/14
新增外掛中心功能, 支援外掛的安裝/解除安裝/更新等操作 (入口: 主頁抽屜按鈕/主頁標籤頁)新增版本歷史功能, 支援檢視/恢復可編輯檔案的歷史版本 (入口: 主頁抽屜按鈕/檔案管理器選單/程式碼編輯器選單)新增回收站功能, 支援檢視/恢復已刪除的檔案/資料夾 (入口: 主頁抽屜按鈕)新增Paddle OCR (PP-OCRv5) 外掛, 用於光學字元識別新增cvt 模組, 用於資料單位轉換 (參閱 專案文件 > 單位轉換)新增fmt 模組, 用於資料格式化 (參閱 專案文件 > 格式化)新增zip 模組, 用於檔案壓縮與解壓縮操作 (Ref to Auto.js Pro) (參閱 專案文件 > Zip)新增mediainfo 模組, 用於檢視媒體檔案的詳細資訊 (參閱 專案文件 > 媒體資訊)新增cvt.bytes 方法, 用於位元組資料單位轉換 (參閱 專案文件 > 單位轉換)新增fmt.bytes 方法, 用於位元組資料格式化 (參閱 專案文件 > 格式化)新增s13n.bytes 方法, 用於標準化位元組資料 (參閱 專案文件 > 標準化)新增app.isDualInstalled 方法, 用於檢測雙開應用是否已安裝 (需要 Shizuku 或 Root 許可權)issue #450新增device.getSharedDeviceId 方法, 用於跨應用獲取統一共享裝置 IDissue #455新增device.setPointerLocation 等 Toggleable 系列方法, 用於設定或獲取指標位置系統設定項issue #381新增dialogs.build 方法支援 textAllCaps/(positive/negative/neutral)TextAllCaps 選項引數, 用於控制按鈕文字是否全部大寫新增images.loadAsync 方法, 用於非同步獲取網路影像資源issue #327新增ui.getNavigationBarHeight 方法/navigationBarHeight 屬性 (getter), 用於獲取導航欄高度issue #456新增ui.getVisible(Status/Navigation)BarHeight 方法/visible(Status/Navigation)BarHeight 屬性 (getter), 用於快捷獲取狀態列或導航欄可見高度issue #456新增http.put/del(ete)/head 方法, 用於使用不同的 HTTP 請求方法傳送網路請求新增http.getAsync/postAsync/requestAsync 等方法, 用於非同步傳送網路請求issue #423新增http 模組請求相關方法獲取的 body 物件增加 stream/saveToFile/close 等方法issue #452新增http 模組請求相關方法支援快取控制選項引數 (cacheBody/bodyCacheThresholdBytes)新增http 模組請求相關方法支援不安全選項引數 (isInsecure/insecure), 用於忽略證書相關異常issue #417新增http 模組請求相關方法支援 options.client 選項, 用於配置 OkHttpClient.Builder (如 followRedirects 等)issue #454新增auto.state 屬性 (getter) 及 shizuku.state 屬性 (getter), 用於獲取無障礙服務狀態及 Shizuku 服務狀態新增runtime.(set/is)JavaPrimitiveWrap 方法, 用於設定或獲取 Java 原始型別包裝策略issue #435新增autojs.(restart/exit) 方法, 用於重啟或退出 AutoJs6 應用, 並支援應用重啟時自動執行其引數指定的指令碼issue #460新增UiObject#isShifted 方法, 用於檢測控制元件位置變化issue #469新增UiObject#snapshot 方法, 用於捕獲控制元件當前狀態issue #469新增engines.myEngine().getStartTime() 方法, 用於獲取指令碼引擎啟動時間戳issue #449新增crash 全域性方法, 用於測試崩潰報告頁面新增structuredClone 全域性方法, 用於深複製 JavaScript 物件 (參閱 MDN)新增等價系列選擇器 (UiSelector#id/text/...) 及包含系列選擇器 (UiSelector#xxxContains) 支援正則表示式引數新增選擇器的正則表示式引數支援使用標誌 (i, m, s, u)新增正則表示式支援後瞻斷言語法issue #464新增檔案管理器增加 "移動到" 及 "複製到" 選單項, 支援操作中止及進度狀態顯示新增程式碼編輯器增加 "多功能鍵盤" - "符號設定" 選單項, 支援符號編輯及按配置級別進行符號的建立/匯入/匯出等新增主頁抽屜增加 "指標位置" 工具新增主頁抽屜增加 "所有檔案管理許可權" 開關新增主頁抽屜增加 "後臺彈出介面" 開關 (針對 [小米/Vivo] 裝置)新增設定頁面增加 "Java 原始型別包裝" 設定選項issue #435新增設定頁面增加 "定時任務排程引擎" 設定選項, 支援 AlarmManager/WorkManager/JobSchedulerissue #457issue #434issue #449issue #388issue #378issue #163issue #53issue #21新增設定頁面增加 "應用啟動器圖示" 設定選項, 支援自適應圖示/透明背景圖示issue #405新增設定頁面增加 "重啟策略" 設定選項, 用於設定主頁抽屜欄重啟按鈕是否使用快速重啟策略新增設定頁面增加 "螢幕捕獲許可權申請延遲" 設定選項, 用於避免許可權申請視窗遮擋螢幕新增設定頁面啟動器快捷方式增加 "外掛" 選項, 用於透過快捷方式跳轉到外掛中心頁面新增打包應用支援開機自啟動並在配置頁面增加開關配置新增打包應用支援應用快捷方式 (日誌頁面/設定頁面)新增打包應用配置頁面增加撤銷/重做/儲存按鈕新增打包應用配置頁面增加配置機制, 支援配置的建立/修改/刪除/匯入/匯出issue #483新增Scrapers 工具 (run-scrapers.mjs) 用於自動更新 Gradle 構建指令碼結構化資料/README 通用資料/README 模板資料等新增Gradle Wrapper 切換工具 (gradle-wrapper-switcher), 用於切換本地 Gradle 主版本 (如 Gradle 8.x 與 Gradle 9.x)修復notice 方法引數數量及型別限制錯誤issue #462修復ui.R 屬性 (getter) 無法正常使用的問題修復ui.post 方法回撥引數中產生異常時可能靜默失敗的問題修復isJavaClass/isJavaPackage 等全域性方法無效的問題修復timers.keepAlive 方法 timeout 引數功能無效的問題修復floaty.window/rawWindow 方法無法接受字串引數的問題issue #467修復floaty.rawWindow 因傳入錯誤的上下文導致部分控制元件顯示異常的問題修復util.isString 方法無效的問題修復util.class[Name]/getClass[Name] 可能返回錯誤結果的問題修復util.java.array 無法正常使用 Boolean 等型別引數的問題修復threads.disposable() 返回的物件在存取資料時可能被意外裝箱的問題issue #435修復console.build 方法多次呼叫時, 日誌浮動視窗樣式選項未能正常重置的問題修復console.build 方法的 (title/content)BackgroundColor 選項導致透明度或著色選項被覆蓋的問題issue #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修復images 部分方法使用區域引數時 1 被誤解析為百分比的問題修復images 部分相關方法出現異常時 oneShot 標記功能失效的問題issue #372修復images 部分相關方法可能引發記憶體洩露的問題issue #372修復images.save 及 ImageWrapper#saveTo 方法傳入路徑不存在時無法正常寫入檔案的問題修復ImageWrapper#recycle 方法回收影像資源功能失效的問題修復ocr 部分過載方法可能無法正常使用的問題修復ocr.detect 方法獲得的結果可能與 ocr.mode 不匹配的問題issue #468修復auto.registerEvent 註冊的無障礙服務事件會被其他指令碼誤清理的問題issue #466issue #343修復Android 10 UiObject#child 方法可能出現 ArrayIndexOutOfBoundsException 異常的問題issue #416修復內建模組方法呼叫可能出現 Rhino 上下文可能不一致的問題修復指令碼建立大量浮動視窗後, 指令碼退出時可能出現視窗殘留的問題修復執行專案時 project.json 配置引數可能無法正常解析的問題修復專案打包時 project.json 的 excludedDirs 配置引數將導致配置檔案解析失敗的問題issue #428修復Android 7.x 可能無法正常使用打包功能的問題修復指令碼專案配置檔案儲存時原始鍵名可能會被修改的問題修復指令碼專案配置檔案中構建版本號或構建時間出現較大數字時可能導致應用崩潰的問題修復頻繁獲取或重建 ImageReader 時可能因緩衝區暫無可用幀導致應用崩潰的問題修復輸入事件觀察器 InputEventObserver 可能導致應用啟動時明顯示卡頓的問題修復Shizuku 使用者服務程序未能正常結束導致程序堆積的問題issue #474修復打包應用無法正常使用 Paddle OCR 與 Rapid OCR 功能的問題修復打包應用配置檔案 project.json 中的 key 值可能被意外修改的問題修復打包應用配置頁面滑動 "需要的許可權" 列表時可能出現核取方塊圖示閃爍的問題修復發行歷史頁面部分系統因字型差別導致統計資料顯示不完整的問題修復部分裝置無法正常初始化 MLKit Google OCR 的問題 (試修)issue #8修復部分裝置無法正常觸發檔案管理器功能按鈕點選事件的問題 (試修)issue #465修復部分裝置程式碼編輯器空行顯示方框字元的問題 (試修)修復程式碼編輯器軟鍵盤可能遮擋文字內容的問題修復程式碼編輯器在只讀模式下依然可以編輯程式碼內容的問題修復程式碼編輯器在只讀模式下點選標題區域及部分選單項導致應用崩潰的問題修復程式碼編輯器載入大檔案可能導致應用崩潰的問題 (試修)修復程式碼編輯器自動開啟新建檔案時功能按鈕狀態初始化異常修復程式碼編輯器編輯檔案時置於後臺可能導致應用崩潰的問題修復Android 15+ 程式碼編輯器點選 fx 按鈕無法顯示模組函式快捷面板的問題 (試修)修復ErrorDialogActivity 可能無法正常啟動或短時間自動消失的問題issue #479issue #471issue #414issue #340修復Canvas 建構函式可接受的引數型別錯誤issue #402修復崩潰報告頁面複製詳細資訊功能失效的問題修復Android 16+ 自定義返回邏輯失效導致返回功能異常的問題修復檔案管理器搜尋結果展示後點擊返回按鈕或切換標籤頁面時可能導致應用崩潰的問題修復檔案管理器刪除專案資料夾後 UI 未能自動重新整理的問題修復任務面板列表項頻繁變動時可能導致應用崩潰的問題修復使用 "三按鈕" 手勢導航時導航欄前景色可能與夜間模式關聯異常的問題修復APK 檔案型別資訊對話方塊可能無法獲取應用名稱及 SDK 資訊的問題修復客戶端模式連線後, 短時間斷開連線並再次連線時, 出現握手超時且難以再次建立連線的問題修復客戶端模式連線時, 旋轉螢幕及切換語言等觸發 Activity 重建的操作導致 AutoJs6 總是重建連線的問題修復服務端模式連線時, 旋轉螢幕及切換語言等觸發 Activity 重建的操作導致 VSCode 控制檯無法輸出日誌的問題issue #385修復連線 VSCode 外掛時, 多種方式同時連線可能導致日誌列印數量成倍增加的問題修復佈局分析頁面生成程式碼時對於集合控制元件可能生成失敗的問題 (試修)issue #328修復設定頁面 "使用 '音量減' 鍵控制錄製" 開關功能失效的問題issue #480修復錄製指令碼生成的程式碼檔案可能出現座標數值與螢幕實際畫素值不匹配的問題issue #480修復錄製指令碼生成的程式碼檔案首個行為 (如點選或滑動等) 總是被忽略的問題修復浮動按鈕 "執行指令碼" 對話方塊後臺操作檔案時可能導致應用崩潰的問題修復主頁活動頁面生命週期結束後重新進入主頁時, 浮動按鈕狀態可能被重置的問題修復小米裝置 "顯示在其他應用上層" 開關可能跳轉到錯誤設定頁面的問題修復檢查更新中止下載過程後, 網路資料包依然持續後臺獲取的問題 (試修)修復構建工具啟用 isCleanup[Paddle/Rapid]Ocr 配置選項時無法正常完成 Rebuild Project 任務的問題最佳化外掛化 Paddle OCR (PP-OCRv3) 相關功能issue #334issue #331issue #325最佳化runtime.loadJar 方法增強相容性 (by LYS86)pr #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最佳化檔案管理器浮動按鈕展開後點擊選單項時最佳化選單收起時機最佳化檔案管理器/任務面板支援顯示檔案/任務數量統計資訊最佳化程式碼編輯器儲存檔案失敗時自動存為草稿並支援另存為新檔案最佳化程式碼編輯器載入大檔案時提升一定程度的流暢度最佳化程式碼編輯器 "查詢/替換" 支援狀態持久化及即時顯示搜尋計數資訊最佳化程式碼編輯器提示儲存時確保儲存成功後再退出編輯器以降低儲存失敗率最佳化程式碼編輯器儲存按鈕的狀態更符合使用者主觀邏輯最佳化程式碼編輯器支援 "-", "=", "(", "[", "{", "<" 等按鍵長按功能最佳化打包應用打包過程對話方塊增加 "中止" 按鈕最佳化打包應用打包過程對話方塊的顯示方式並增加耗時統計最佳化打包應用使用新配置安裝時將覆蓋舊應用的相關配置最佳化打包應用配置頁面預設勾選必要許可權 (WAKE_LOCK/INTERNET/WRITE_EXTERNAL_STORAGE/...)issue #397最佳化打包應用配置頁面支援更多選項的讀取及配置 (啟動時顯示日誌/啟動時顯示啟動頁/啟動頁標語文字/...)最佳化打包應用設定頁面增加前臺服務開關issue #406最佳化指令碼專案配置檔案儲存時增加鍵名衝突檢測機制防止鍵名歧義最佳化崩潰報告頁面支援雙指縮放調整字型大小並新增常用功能按鈕最佳化應用啟動器圖示支援自適應圖示特性issue #405最佳化Rhino 引擎在泛型簽名解析失敗時回退為原始反射型別以增強低版本安卓系統的反射方法可用性最佳化主頁抽屜開關類條目新增分隔線, 支援點選標題文字區域顯示詳情對話方塊並按需支援快捷跳轉系統設定最佳化啟動或重啟 AutoJs6 時支援點選主頁抽屜 "客戶端模式" 標題文字區域中止正在嘗試建立的連線最佳化客戶端模式連線時支援使用 IPv6 地址及域名地址建立連線最佳化客戶端模式連線時支援特殊用途 IPv4 地址 (迴環/廣播/多播/保留/...) 檢測提示最佳化客戶端模式連線時支援連線狀態顯示及管理 (修正地址/中止連線)最佳化服務端模式連線時支援顯示已建立連線的客戶端數量最佳化讀取通知許可權支援自動重連機制 (requestRebind) 以增強通知監聽相關功能的穩定性最佳化浮動按鈕增強後臺啟動 Activity 的安全性以避免應用崩潰最佳化浮動按鈕 "更多" 對話方塊使用非同步載入資料方式提升顯示流暢度最佳化浮動按鈕 "執行指令碼" 對話方塊增加 "主頁" 選單項最佳化浮動按鈕 "執行指令碼" 對話方塊支援最小化及狀態恢復並盡最大努力保持視窗常駐或自動恢復最佳化支援使用 Shizuku 許可權錄製指令碼及錄製回放 (回放流暢度受一定影響)issue #320最佳化主題色設定頁面定位主題色時使用快速定位方式以提升定位效率最佳化使用 LiveData 及 SharedFlow 替代已棄用的 LocalBroadcastManager最佳化Gradle 構建指令碼提升 7z 格式檔案的解壓效率最佳化Gradle 構建指令碼支援獲取詳細的 Android Studio IDE 版本 (如 "2025.1.4.7")最佳化Gradle 構建指令碼支援自動生成 VersionCodesList 類所需資料以降低指令碼啟動延遲最佳化使用 版本目錄 (Version Catalogs) 集中管理 Gradle 依賴和外掛版本最佳化模組化 Gradle 構建指令碼, 將共享構建邏輯遷移至 build-logic 並抽象為約定外掛最佳化使用 Gradle 約定外掛簡化本地 AAR 庫載入邏輯最佳化移除 "android.enableJetifier=true" Gradle 配置選項以適配 Gradle 9最佳化使用 Toolchain 替代 sourceCompatibility/targetCompatibility 以降低構建環境差異最佳化部分依賴或本地庫版本調整CHANGELOG.md
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修復程式碼編輯器可能使用置信度不足的編碼寫入檔案導致內容解碼異常的問題 (試修)最佳化關於應用與開發者頁面增加布局適配通用性並去除不必要的佈局分類最佳化README.md 專案編譯構建小節新增多種方式便於定位目標設定頁面issue #404最佳化部分依賴或本地庫版本調整CHANGELOG.md
v6.6.3
2025/05/27
新增發行歷史功能, 可檢視發行版本的發行歷史記錄 (多語言) 與統計資料新增timers.keepAlive 方法 (已全域性化), 用於保持指令碼活躍狀態新增engines.on('start/stop/error', callback) 等事件監聽方法, 用於監聽指令碼引擎全域性事件新增images.detectMultiColors 方法, 用於多點顏色校驗issue #374新增images.matchFeatures/detectAndComputeFeatures 方法, 支援全解析度找圖 (Ref to Auto.js Pro)issue #366新增images.compressToBytes 方法, 用於壓縮影象並生成位元組陣列新增images.downsample 方法, 用於畫素降取樣並生成新的 ImageWrapper新增ui.keepScreenOn 方法, 用於 UI 頁面獲取焦點時保持裝置螢幕常亮新增ui.root 屬性 (getter), 用於獲取 UI 頁面佈局的 "視窗內容根容器" 節點新增webview 元素支援基於 JsBridge 的 Web 頁面佈局 (Ref to Auto.js Pro) [參閱 示例程式碼 > 佈局 > 可互動 HTML / Vue2 + Vant (SFC)]issue #281新增佈局分析支援控制元件隱藏 (by TonyJiangWJ)pr #371issue #355修復主頁文件標籤及文件活動頁面顯示線上文件時部分內容被系統導航欄遮擋的問題修復部分頁面 Toolbar 點選按鈕時可能導致標題點選事件誤觸發的問題修復部分裝置程式碼編輯器空行顯示方框字元的問題 (試修)修復主題色設定頁面調色盤對話方塊可能無限疊加的問題修復無障礙服務關閉時音量加鍵停止所有指令碼功能失效的問題修復定時任務頁面編輯自定義廣播內容時出現的輸入法遮擋問題修復webview 元素中的控制元件無法正常啟用輸入法軟鍵盤的問題修復APK 檔案型別資訊對話方塊可能無法獲取應用名稱及 SDK 資訊的問題修復檔案管理器示例程式碼進入專案目錄時可能無法自動載入子目錄檔案內容的問題修復Android 15 UI 模式頂部內容被狀態列覆蓋的問題修復Android 15 部分頁面狀態列背景顏色可能無法動態跟隨主題色的問題修復dialogs 模組無法正常使用 customView 屬性的問題issue #364修復dialogs.input 方法的表示式引數可能無法獲得執行結果的問題修復使用 JavaAdapter 時導致 ClassLoader 呼叫棧溢位的問題issue #376修復console.setContentTextColor 方法導致日誌字型顏色丟失預設值的問題issue #346修復console.setContentBackgroundColor 方法無法接受顏色名稱引數的問題issue #384修復images.compress 方法實現原理由畫素降取樣修正為編碼質量變化修復images.resize 方法無法正常使用的問題修復engines.all 方法可能觸發 ConcurrentModificationException 的問題issue #394修復README.md 中部分語言日期格式不正確的問題修復Gradle 構建指令碼可能因獲取到無效庫檔案檔案長度而導致構建失敗的問題issue #389最佳化佈局分析選單新增漸變分隔線實現一定程度的功能分組最佳化指令碼專案配置檔案 project.json 支援 permissions 選項 (by wirsnow)pr #391issue #362最佳化打包單檔案時自動讀取並勾選已安裝應用的宣告許可權issue #362最佳化主題色擴充適配範圍並支援更多控制元件型別最佳化主頁抽屜在橫向螢幕或超寬螢幕的寬度適應性最佳化關於應用與開發者頁面增加水平佈局及小屏佈局適配最佳化設定頁面對話方塊相關設定支援 "使用預設值" 選單選項最佳化檔案管理器浮動按鈕展開後點擊其他區域可自動隱藏最佳化程式碼編輯器格式化程式碼支援??,?.,??=等運算子最佳化程式碼編輯器支援 GB18030 / UTF-16 (LE/BE) / Shift_JIS 等編碼的檔案讀寫最佳化程式碼編輯器支援顯示檔案詳細資訊 (路徑/編碼/換行符/位元組及字元總數等)issue #395最佳化意圖相關操作 (編輯/檢視/安裝/傳送/播放等) 增加操作異常提示最佳化webview 元素的 url 屬性支援相對路徑最佳化ImageWrapper#saveTo 方法的路徑引數支援相對路徑最佳化images.save 方法使用 quality 引數時支援 png 格式的檔案體積壓縮issue #367最佳化已忽略更新記錄及客戶端模式連線地址記錄支援清空操作最佳化版本更新資訊支援多語言顯示 (與當前顯示語言同步)最佳化使用非同步載入方式一定程度提升檔案管理器列表滑動流暢性最佳化指令碼異常訊息在控制檯的顯示內容與格式最佳化示例程式碼支援將資料夾重置為初始內容最佳化APK 檔案簽名信息提升檢測效率最佳化APK 檔案型別資訊及媒體檔案型別資訊最佳化對話方塊顯示效率及資訊展示邏輯最佳化Gradle 構建指令碼提升版本自適應能力discussion #369最佳化部分依賴或本地庫版本調整CHANGELOG.md
更多發行歷史可參閱
專案編譯構建
如需對 AutoJs6 開源專案進行除錯或開發, 可使用 Android Studio (Google 公司產品) 或 IntelliJ IDEA (Jetbrains 公司產品).
本小節以 Android Studio 為例介紹 AutoJs6 開源專案的編譯構建方法, IntelliJ IDEA 與之類似.
Android Studio 準備
下載 Android Studio Panda 2 | 2025.3.2 版本 (按需選擇其一):
- android-studio-panda2-windows.exe (1.28 GiB)
- android-studio-panda2-windows.zip (1.29 GiB)
- android-studio-panda2-linux.tar.gz (1.32 GiB)
注: 上述版本釋出時間為 2026 年 3 月 3 日. 如需下載其他版本, 或上述連結已失效, 可訪問 Android Studio 發行版本歸檔 頁面.
安裝或解壓上述檔案, 執行 Android Studio 軟體 (如 "D:\android-studio\bin\studio64.exe").
Android SDK 準備
注: 如果計算機系統已安裝 Android SDK (安卓軟體開發工具包), 則可跳過此小節內容.
打開 Android SDK (安卓軟件開發工具包) 設置頁面 (任選一種方式):
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 工具) 設置頁面 (任選一種方式):
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 網站 下載.
打開 Gradle JDK 設置頁面 (任選一種方式):
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 (分散式版本控制系統).
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) 頁面.
注: 關於如何構建並執行應用的更多內容, 可參閱 Android Docs
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
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 宣告檔案 專案.
任務執行後生成一個 AutoJs6 專案最新的 JAR 檔案, 利用 Android d.ts Generator (by NativeScript) 工具可生成 AutoJs6 主應用的宣告檔案 (d.ts 格式).
- AutoJs6 [app:digest]
附加摘要資訊到 release 版本編譯產生的 APK 檔案, 主要服務於 AutoJs6 釋出最新版本到 GitHub 前確定最終的檔名.
以下為附加摘要資訊前後的檔名對比:
前:
autojs6-v6.6.2-arm64-v8a.apk
後:
autojs6-v6.6.2-arm64-v8a-0f2a9d74.apk
參閱: Android Docs
指令碼開發輔助
開發 AutoJs6 可執行的指令碼, 需使用合適的開發工具:
如需在 PC 上進行指令碼編寫與除錯, VSCode 外掛可以實現 PC 與手機的互聯:
- AutoJs6-VSCode-Extension - AutoJs6 偵錯程式 (VSCode 平臺外掛)
使用開發工具編寫程式碼時, 程式碼智慧補全功能可以更好地輔助開發者完成程式碼編寫:
- AutoJs6-TypeScript-Declarations - AutoJs6 宣告檔案 (程式碼智慧補全)
編寫程式碼時, AutoJs6 相關 API 及使用方式, 可隨時查閱應用文件:
- AutoJs6-Documentation - AutoJs6 應用文件
現有的指令碼開發專案可作為參考, 激發個人指令碼專案的創作靈感:
- Ant-Forest - 螞蟻森林能量自動收取指令碼 by TonyJiangWJ
- Ant-Forest - 螞蟻森林能量自動收取指令碼 by SuperMonster003
- autojs - Auto.js 實用指令碼 by e1399579
- autojsDemo - Auto.js 演示示例 by snailuncle
- autojs 相關倉庫 - GitHub 與 autojs 話題相關的全部倉庫
貢獻參與
感謝每一位參與 AutoJs6 專案開發的貢獻人員.
| 貢獻人員 | 提交數 | 最近提交 |
|---|---|---|
| Willie169 | 1 | 2026/03/03 |
LYS86 (Lin) |
4 | 2025/12/26 |
| wirsnow | 1 | 2025/05/19 |
| TonyJiangWJ | 4 | 2025/04/24 |
| luckyloogn | 3 | 2024/12/31 |
| kvii | 1 | 2024/10/16 |
chenguangming (Tom) |
2 | 2024/05/14 |
LZX284 (AI) |
7 | 2023/11/15 |
kojoe‑code (抠脚本人) |
12 | 2023/07/12 |
| aiselp | 6 | 2023/06/14 |
| 資料更新於 2026 年 3 月 4 日. |
資料條目按 最近提交 降序排序.
新發起的暫未處理的 Pull Request, 將在合併處理後加入資料統計.
部分貢獻人員在 GitHub Contributors 未能正常出現, 其提交記錄為空, 仍可透過 Pull Request 檢視貢獻記錄.
