當前自述文件 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 |
Auto.js Pro 7 | Auto.js | hyb1996 | 2019/03/13 |
2019/07/08 |
Auto.js Pro 8 | AutoJsPro | hyb1996 | 2019/10/13 |
2021/07/24 |
Auto.js | Auto.js M | TonyJiangWJ | 2019/11/21 |
- |
AutoX | Autox.js | kkevsekk1 | 2020/07/24 |
- |
Auto.js Pro 9 | AutoJsPro | hyb1996 | 2021/03/28 |
2023/02/09 |
AutoJs6 | AutoJs6 | SuperMonster003 | 2021/12/01 |
- |
AutoX | Autox.js v6 | wilinz | 2022/05/26 |
- |
AutoX | Autox.js v7 | aiselp | 2024/04/21 |
- |
表格中的日期為預估值, 與實際可能存在出入.
表格中 Auto.js Pro 7/8/9 為付費版本, 其餘為免費開源版本.
- 可用作 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 升級至 v1.7.16-SNAPSHOT
- 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 碼位 轉義支持 輔助平面 字符
提示
內置模塊使用 Kotlin 重新編寫以提升腳本運行效率但可能需要多次迭代逐步完善提示
內置 init.js 文件默認為空但支持開發者自行擴展內置模塊或掛載外部模塊新增
axios 模塊 / cheerio 模塊 (Ref to AutoX)新增
sqlite 模塊, 用於 SQLite 數據庫簡單操作 (Ref to Auto.js Pro) (參閲 項目文檔 > SQLite)新增
mime 模塊, 用於處理和解析 MIME 類型字符串 (參閲 項目文檔 > MIME)新增
nanoid 模塊, 可作為字符串 ID 生成器 (Ref to ai/nanoid)新增
sysprops 模塊, 用於獲取運行時環境配置數據 (參閲 項目文檔 > 系統屬性)新增
ocr 模塊支持 Rapid OCR 引擎新增
佈局分析支持切換窗口 (Ref to Auto.js Pro)新增
auto.clearCache 方法, 支持清除控件緩存 (Ref to Auto.js Pro)新增
threads.pool 方法, 支持線程池簡單應用 (Ref to Auto.js Pro)新增
images.matchTemplate 方法增加 useTransparentMask 選項參數, 支持透明找圖 (Ref to Auto.js Pro)新增
images.requestScreenCaptureAsync 方法, 用於 UI 模式異步方式申請截圖權限 (Ref to Auto.js Pro)新增
images.requestScreenCapture 方法增加 isAsync 選項參數, 支持異步方式獲取屏幕截圖 (Ref to Auto.js Pro)新增
images.on('screen_capture', callback) 等事件監聽方法, 支持監聽屏幕截圖可用事件 (Ref to Auto.js Pro)新增
images.stopScreenCapture 方法, 支持主動釋放截圖申請的相關資源 (Ref to Auto.js Pro)新增
images.psnr/mse/ssim/mssim/hist/ncc 及 images.getSimilarity 方法, 用於獲取圖像相似性度量值新增
images.isGrayscale 方法, 用於判斷圖像是否為灰度圖像新增
images.invert 方法, 用於反色圖像轉換新增
s13n.point/time 方法, 用於標準化點對象及時長對象 (參閲 項目文檔 > 標準化)新增
console 模塊 gravity (重力), touchThrough (穿透點擊), backgroundTint (背景着色) 等相關方法 (參閲 項目文檔 > 控制枱)新增
Mathx.randomInt/Mathx.randomFloat 方法, 用於返回指定範圍內的隨機整數或隨機浮點數新增
app.launchDual/startDualActivity 等方法, 用於處理雙開應用 (需要 Shizuku 或 Root 權限) (實驗性)新增
app.kill 方法, 用於強制停止應用 (需要 Shizuku 或 Root 權限)新增
floaty.getClip 方法, 用於藉助浮動窗口聚焦間接獲取剪切板內容修復
Fragment 子類 (如 DrawerFragment / ExplorerFragment 等) 中存在的 View Binding 內存泄漏修復
ScreenCapture / ThemeColorPreference 等類中存在的實例內存泄漏修復
Android 14+ 申請截圖權限導致應用崩潰的問題 (by chenguangming)pr #242
修復
Android 14+ 開啓前台服務導致應用崩潰的問題修復
Android 14+ 代碼編輯器運行按鈕點擊後無法正常亮起的問題修復
項目打包後應用可能因缺少必要庫文件無法正常運行的問題issue #202
issue #223
pr #264
修復
編輯項目時可能因指定圖標資源不存在而導致應用崩潰的問題issue #203
修復
截圖權限申請時無法正常使用參數獲取指定屏幕方向的截圖資源修復
部分設備無法正常添加腳本快捷方式的問題 (試修)issue #221
修復
調用 http 模塊與發送請求相關的方法將出現累積性請求發送延遲的問題issue #192
修復
Shizuku 服務在 AutoJs6 進入主活動頁面之前可能無法正常使用的問題 (試修)issue #255
修復
random(min, max) 方法可能出現結果越界的問題修復
pickup 方法結果類型參數無法正常傳入空數組的問題修復
UiObject#bounds() 得到的控件矩形可能被意外修改而破壞其不變性的問題修復
text/button/input 元素的文本內容包含半角雙引號時無法正常解析的問題修復
text/textswitcher 元素的 autoLink 屬性功能失效的問題修復
不同腳本可能錯誤地共享同一個 ScriptRuntime 對象的問題修復
全局變量 HEIGHT 及 WIDTH 丟失 Getter 動態屬性的問題修復
腳本啓動時 RootShell 隨即加載可能導致啓動高延遲的問題修復
控制枱浮動窗口設置背景顏色導致矩形圓角樣式丟失的問題修復
無障礙服務自動啓動可能出現的服務異常問題 (試修)修復
主頁文檔頁面左右滑動 WebView 控件時可能觸發 ViewPager 切換的問題修復
文件管理器無法識別包含大寫字母文件擴展名的問題修復
文件管理器首次進入項目目錄時可能無法自動識別項目的問題修復
文件管理器刪除文件夾後頁面無法自動刷新的問題修復
文件管理器排序文件及文件夾時可能出現 ASCII 首字母名稱置後的問題修復
代碼編輯器調試功能的 FAILED ASSERTION 異常修復
代碼編輯器調試過程中關閉編輯器後無法再次正常調試的問題修復
代碼編輯器跳轉到行尾時可能遺漏末尾字符的問題修復
主活動頁面啓動日誌活動頁面時可能出現閃屏的問題修復
打包應用無法正常使用 opencc 模塊的問題優化
打包頁面中 "不可用 ABI" 控件的點擊提示體驗優化
支持使用 Shizuku 控制 "指針位置" 顯示開關優化
支持使用 Shizuku 控制 "投影媒體" 及 "修改安全設置" 權限開關優化
automator.gestureAsync/gesturesAsync 支持回調函數參數優化
tasks 模塊使用同步方式進行數據庫操作避免可能的數據訪問不一致問題優化
腳本執行模式支持管道符號分隔模式參數 (如"ui|auto";
開頭)優化
腳本執行模式支持單引號及反引號且支持省略分號 (如'ui';
或'ui'
開頭)優化
腳本執行模式支持 axios, cheerio, dayjs 等模式參數快捷導入內置擴展模塊 (如"axios";
開頭)優化
腳本執行模式支持 x 或 jsox 模式參數快捷啓用 JavaScript 內置對象擴展模塊 (如"x";
開頭)優化
img 元素 src 及 path 屬性支持本地相對路徑 (如<img src="a.png"
/>)優化
代碼編輯器導入 Java 類和包名時支持智能判斷插入位置優化
images 模塊支持直接使用路徑作為圖像參數優化
importPackage 支持字符串參數優化
服務端模式 IP 地址支持剪切板導入智能識別且支持空格按鍵智能轉換優化
文件管理器新建文件時支持默認前綴選擇並自動生成合適的數字後綴優化
文件管理器運行項目時具體化異常消息提示issue #268
優化
文件管理器支持更多類型並支持顯示對應的圖標符號 (支持 800 多種文件類型)優化
文件管理器可編輯的文件類型 (jpg/doc/pdf...) 增加編輯按鈕優化
文件管理器 APK 文件支持查看基礎信息, Manifest 信息及權限列表優化
文件管理器音視頻等媒體文件支持查看基礎信息及 MediaInfo 信息優化
打包單文件時支持自動填入合適的標準化名包並支持無效字符過濾提示優化
打包單文件時支持根據已安裝同包名應用自動設置圖標並自增版本號及版本名稱優化
打包項目配置文件支持 abis/libs 選項指定默認包含的 ABI 架構及擴展庫優化
打包項目配置文件 abis/libs 選項無效或無可用時支持相關消息提示優化
LeakCanary 在正式發行版本中被排除以避免增加不必要性優化
項目源代碼所有英文註釋增加簡體中文翻譯以增強註釋可讀性優化
README 及 CHANGELOG 支持多語言 (由腳本自動生成)優化
Gradle 構建腳本提升版本自適應能力優化
部分依賴或本地庫版本調整CHANGELOG.md
新增
opencc 模塊 (參閲 項目文檔 > 中文轉換) (Ref to LZX284)新增
UiSelector 增加 plus 及 append 方法issue #115
新增
打包應用頁面增加 ABI 及庫的篩選支持 (Ref to AutoX)issue #189
修復
打包應用文件體積異常龐大的問題 (Ref to AutoX / LZX284)issue #176
修復
打包應用無法顯示並打印部分異常消息的問題修復
打包應用頁面選擇應用圖標後可能顯示空圖標的問題修復
打包應用包含 MLKit Google OCR 庫時可能出現的上下文未初始化異常修復
ocr.mlkit/ocr.recognizeText/detect 方法無效的問題修復
部分文本 (如日誌頁面) 顯示語言與應用設置語言可能不相符的問題修復
部分語言在主頁抽屜開關項可能出現文本溢出的問題修復
部分設備無障礙服務開啓後立即自動關閉且無任何提示消息的問題issue #181
修復
部分設備無障礙服務開啓後設備物理按鍵可能導致應用崩潰的問題 (試修)issue #183
issue #186
修復
使用 auto(true) 重啓無障礙服務後 pickup 功能異常的問題 (試修)issue #184
修復
floaty 模塊創建浮動窗口拖動時可能導致應用崩潰的問題 (試修)修復
app.startActivity 無法使用簡稱參數的問題issue #182
issue #188
修復
importClass 導入的類名與全局變量衝突時代碼拋出異常的問題issue #185
修復
Android 7.x 無法使用無障礙服務的問題修復
Android 14 可能無法正常使用 runtime.loadJar/loadDex 方法的問題 (試修)修復
安卓系統快速設置面板中 "佈局範圍分析" 和 "佈局層次分析" 不可用的問題issue #193
修復
自動檢查更新功能可能導致應用 ANR 的問題 (試修)issue #186
修復
文件管理器示例代碼文件夾點擊 "向上" 按鈕後無法回到工作路徑頁面的問題issue #129
修復
代碼編輯器使用替換功能時替換按鈕無法顯示的問題修復
代碼編輯器長按刪除時可能導致應用崩潰的問題 (試修)修復
代碼編輯器點擊 fx 按鈕無法顯示模塊函數快捷面板的問題修復
代碼編輯器模塊函數快捷面板按鈕函數名稱可能溢出的問題優化
代碼編輯器模塊函數快捷面板適配夜間模式優化
打包應用啓動頁面適配夜間模式並調整應用圖標佈局優化
打包應用頁面支持使用軟鍵盤 ENTER 鍵實現光標跳轉優化
打包應用頁面支持點擊 ABI 標題及庫標題切換全選狀態優化
打包應用頁面默認 ABI 智能選擇並增加不可選擇項的引導提示優化
文件管理器根據文件及文件夾的類型及特徵調整菜單項的顯示情況優化
文件管理器文件夾右鍵菜單增加打包應用選項優化
無障礙服務啓用但功能異常時在 AutoJs6 主頁抽屜開關處將體現異常狀態優化
控制枱打印錯誤消息時附加詳細的堆棧信息優化
部分依賴或本地庫版本調整CHANGELOG.md
新增
dialogs.build() 選項參數屬性 inputSingleLine新增
console.setTouchable 方法issue #122
修復
ocr 模塊部分方法無法識別區域參數的問題issue #162
issue #175
修復
Android 7.x 發現新版本時無法獲取版本詳情的問題修復
Android 14 申請截圖權限時導致應用崩潰的問題修復
主頁抽屜快速切換 "浮動按鈕" 開關時可能導致應用崩潰的問題修復
使用菜單關閉浮動按鈕時重啓應用後浮動按鈕可能依然顯示的問題修復
Android 13 及以上系統設置頁面選擇並切換 AutoJs6 語言後無法生效的問題修復
構建工具初次構建時無法自動完成 OpenCV 資源部署的問題優化
原生化 bridges 模塊以提升腳本執行效率 (Ref to aiselp)優化
重構無障礙服務相關代碼以增強無障礙服務的功能穩定性 (實驗性)issue #167
優化
UiObject 和 UiObjectCollection 的打印輸出格式優化
構建工具在構建環境 Gradle JDK 版本不滿足要求時作出升級提示優化
部分依賴或本地庫版本調整CHANGELOG.md
如需對 AutoJs6 開源項目進行調試或開發, 可使用 Android Studio (Google 公司產品) 或 IntelliJ IDEA (Jetbrains 公司產品).
本小節以 Android Studio 為例介紹 AutoJs6 開源項目的編譯構建方法, IntelliJ IDEA 與之類似.
下載 Android Studio Ladybug | 2024.2.1 Patch 2
版本 (按需選擇其一):
- android-studio-2024.2.1.11-windows.exe (1.13 GB)
- android-studio-2024.2.1.11-windows.zip (1.14 GB)
注: 上述版本發佈時間為 2024 年 10 月 31 日. 如需下載其他版本, 或上述鏈接已失效, 可訪問 Android Studio 發行版本歸檔 頁面.
安裝或解壓上述文件, 運行 Android Studio 軟件 (如 "D:\android-studio\bin\studio64.exe"
).
注: 如果計算機系統已安裝 Android SDK (安卓軟件開發工具包), 則可跳過此小節內容.
在 Android Studio 軟件中使用快捷鍵 CTRL + ALT + S
打開設置頁面:
Appearance & Behavior (外觀與表現) ->
System Settings (系統設置) ->
Android SDK (安卓軟件開發工具包)
Android SDK Location (安卓軟件開發工具包位置)
處如果是空白內容, 可點擊右側 Edit (編輯)
按鈕, 在彈出的窗口中多次點擊 Next (下一步)
.
注: 過程中可能需要同意一個或多個相關協議才能繼續.
待相關資源下載並安裝完畢, 點擊 Finish (完成)
按鈕.
上述 Android SDK Location (安卓軟件開發工具包位置)
處將自動完成路徑填寫, SDK 準備工作隨即完成.
AutoJs6 需要使用部分 SDK 工具 (如 NDK 及 CMake).
注: 如果計算機系統已安裝 AutoJs6 全部所需的 Android SDK Tools, 則可跳過此小節內容.
在 Android Studio 軟件中使用快捷鍵 CTRL + ALT + S
打開設置頁面:
Appearance & Behavior (外觀與表現) ->
System Settings (系統設置) ->
Android SDK (安卓軟件開發工具包) ->
SDK Tools (SDK 工具) (位於右側窗口)
勾選 Show Package Details (顯示包詳情)
, 依次點擊 NDK 及 CMake, 確保相應版本的工具已勾選, SDK 工具的版本信息位於 AutoJs6 項目根目錄的 version.properties
文件中.
AutoJs6 項目依賴的 JDK (Java 開發工具包)
發行版本不低於 17
, 但建議不低於 19
.
截至 2024 年 12 月 2 日, AutoJs6 可支持 JDK 最高版本為 23
.
注: 如果計算機系統已安裝 JDK 且版本滿足上述要求, 則可跳過此小節內容.
JDK 可使用 IDE 直接下載, 或訪問 Oracle 網站 下載.
在 Android Studio 軟件中使用快捷鍵 CTRL + ALT + S
打開設置頁面:
Build, Execution, Deployment (構建, 執行, 開發) ->
Build Tools (構建工具) ->
Gradle
Gradle JDK
處可選擇或添加不同版本的 JDK.
如果列表中已存在合適版本的 JDK (>= 17
), 則直接選擇即可.
否則可以選擇 Download JDK (下載 JDK)
下載合適的 JDK, 點擊 Download (下載)
按鈕並等待下載完成.
也可以選擇 Add JDK (添加 JDK)
添加已存在的本地 JDK, 定位其目錄並完成 JDK 添加.
在 Android Studio 主頁面點擊 Get from VCS (從版本控制系統獲取)
按鈕.
URL (統一資源定位地址)
處填入 https://github.com/SuperMonster003/AutoJs6.git
,
Directory (目錄)
處可根據需要修改為特定路徑.
點擊 Clone (克隆)
按鈕, 等待 AutoJs6 項目資源在設備本地完成克隆.
注: 上述過程可能需要安裝 Git (分佈式版本控制系統).
克隆完成後, Android Studio 將打開 AutoJs6 的項目窗口, 並自動完成初步的 Dependencies (依賴)
下載及 Gradle 構建工作.
注: 上述過程可能非常耗時. 若網絡條件欠佳, 可能需要重試多次 (點擊 Retry 按鈕).
構建完成後, Android Studio 的 Build
標籤頁將出現類似 BUILD SUCCESSFUL in 1h 17m 34s
的消息.
打包項目並生成可安裝到安卓設備的 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 可運行的腳本, 需使用合適的開發工具:
如需在 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 項目開發的貢獻人員.
貢獻人員 | 提交數 | 最近提交 |
---|---|---|
kvii | 1 | 2024/10/16 |
chenguangming | 2 | 2024/05/14 |
LZX284 | 17 | 2023/11/19 |
TonyJiangWJ | 4 | 2023/10/31 |
little‑alei | 12 | 2023/07/12 |
aiselp | 6 | 2023/06/14 |
LYS86 | 2 | 2023/06/03 |
數據更新於 2024 年 10 月 23 日.
數據條目按 最近提交
降序排序.
新發起的暫未處理的 Pull Request, 將在合併處理後加入數據統計.
部分貢獻人員在 GitHub Contributors 未能正常出現, 其提交記錄為空, 仍可通過 Pull Request 查看貢獻記錄.