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

62 KiB
Raw Blame History

autojs6-banner_800×224

Android 平臺支援無障礙服務的 JavaScript 自動化工具

GitHub release (latest by date) GitHub closed issues Created
Android Studio IntelliJ IDEA
Rhino JetBrains supporter GitHub License


語言 (Languages)


當前自述檔案 README.md 支援以下語言:


簡介


Auto.js 是一款 Android 平臺支援 無障礙服務 的 JavaScript 自動化工具軟體.

Auto.js 由 hyb19962017/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 外掛)

環境


  • Android 作業系統
  • API 24 (7.0) [N] 及以上

指南



主要變更


相較於 Auto.js 最終開源版本 4.1.1 Alpha2, AutoJs6 主要進行了以下升級或變更:


發行歷史


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 方法, 用於跨應用獲取統一共享裝置 ID issue #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/JobScheduler issue #457 issue #434 issue #449 issue #388 issue #378 issue #163 issue #53 issue #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 #466 issue #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 #479 issue #471 issue #414 issue #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 #334 issue #331 issue #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
  • 最佳化 主題色設定頁面定位主題色時使用快速定位方式以提升定位效率
  • 最佳化 使用 LiveDataSharedFlow 替代已棄用的 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 #371 issue #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 #391 issue #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 版本 (按需選擇其一):

注: 上述版本釋出時間為 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 相關 API 及使用方式, 可隨時查閱應用文件:

現有的指令碼開發專案可作為參考, 激發個人指令碼專案的創作靈感:


貢獻參與


感謝每一位參與 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
kojoecode (抠脚本人) 12 2023/07/12
aiselp 6 2023/06/14
資料更新於 2026 年 3 月 4 日.

資料條目按 最近提交 降序排序.

新發起的暫未處理的 Pull Request, 將在合併處理後加入資料統計.

部分貢獻人員在 GitHub Contributors 未能正常出現, 其提交記錄為空, 仍可透過 Pull Request 檢視貢獻記錄.