首頁>技術>

什麼是auto.js

auto.js是一個支援無障礙服務的Android平臺上的JavaScript IDE,可以編寫各種自動化指令碼,它主要有以下優點:

由無障礙服務實現的簡單易用的自動操作函式懸浮窗錄製和執行更專業&強大的選擇器API,提供對螢幕上的控制元件的尋找、遍歷、獲取資訊、操作等。類似於Google的UI測試框架UiAutomator,您也可以把他當做移動版UI測試框架使用採用JavaScript為指令碼語言,並支援程式碼補全、變數重新命名、程式碼格式化、查詢替換等功能,可以作為一個JavaScript IDE使用支援使用e4x編寫介面,並可以將JavaScript打包為apk檔案,您可以用它來開發小工具應用支援使用Root許可權以提供更強大的螢幕點選、滑動、錄製功能和執行shell命令。錄製錄製可產生js檔案或二進位制檔案,錄製動作的回放比較流暢提供擷取螢幕、儲存截圖、圖片找色、找圖等函式可作為Tasker外掛使用,結合Tasker可勝任日常工作流帶有介面分析工具,類似Android Studio的LayoutInspector,可以分析介面層次和範圍、獲取介面上的控制元件資訊

軟體與按鍵精靈等軟體不同,主要區別是:

Auto.js主要以自動化、工作流為目標,更多地是方便日常生活工作,例如啟動遊戲時自動遮蔽通知、一鍵與特定聯絡人微信視訊(知乎上出現過該問題,老人難以進行復雜的操作和子女進行微信視訊)等Auto.js相容性更好。以座標為基礎的按鍵精靈、指令碼精靈很容易出現解析度問題,而以控制元件為基礎的Auto.js則沒有這個問題Auto.js執行大部分任務不需要root許可權。只有需要精確座標點選、滑動的相關函式才需要root許可權Auto.js可以提供介面編寫等功能,不僅僅是作為一個指令碼軟體而存在auto.js能做什麼

auto.js可以替代使用者做一些手機操作,比如以下指令碼:

我簡單了解了一下,新手階段過去之後,一個APP大概要兩三天能得到一元錢,這真是個體力活呢,算時薪的話幾乎沒法看了~

而且跳廣場舞的時候又不能使用手機看新聞,這真是廣場舞與羊毛不可兼得啊,這正是我們自動化指令碼的用武之處:這邊手機自動刷著新聞,那邊跳了一輪又一輪,跳完舞還可以對比一下誰刷的金幣多,啊,彷彿看見了廣場舞自由~

好了,不開玩笑了,使用指令碼刷金幣的行為是被廠家所禁止的,所以以下指令碼僅供學習交流使用,嚴禁使用於任何商業用途:

附手機營業廳自動領金幣指令碼一份(私我可發原文件)

 var Timeout = 6000; var Sleep = 5000; log("開啟手機營業廳") if (app.launchApp("手機營業廳")) { log("開啟手機營業廳成功") sleep(Sleep) var mark = className("android.widget.Image").text("oFr5vJX3UQPSC9zxHDaogEvWoQcnnqMLcSRw18J6ZKGBYq3rYYwU+bFUeVgLHba6x4zbn8bzKjtu8Nnnc5p8AAwDgFJ01yE0rBgAAAABJRU5ErkJggg==").findOne(Timeout) if (mark != null) { mark.click() } log("開始簽到") id("home_qiandao_image").findOne().click() log("簽到完成") sleep(Sleep) back() let ttcj = id("template_imageview_02").findOne(Timeout) if (ttcj) { ttcj.click() var btn = className("android.widget.Button").findOne(Timeout) if (btn) { for (let i = 0; i < 3; i++) { btn.click() // 當有彈窗時,直接關閉… var close = text("tt_guanbi_img").findOne(Timeout) log(i) if (close) { close.click() } } let back = id("web_back").findOne(Timeout) if (back) { back.click() } } } }

後續將擴大支援的App

  • BSA-TRITC(10mg/ml) TRITC-BSA 牛血清白蛋白改性標記羅丹明
  • 用於Linux的hpacucli實用程式命令指南