AutoJS
一個支持無障礙服務的 Android 平臺上的 JavaScript IDE。Autojs 主要是基於安卓系統的無障礙服務,實現自動化操控和監控手機信息處理。web
特性:
由無障礙服務實現的簡單易用的自動操做函數shell
懸浮窗錄製和運行微信
更專業&強大的選擇器 API,提供對屏幕上的控件的尋找、遍歷、獲取信息、操做等。相似於 Google 的 UI 測試框架 UiAutomator,您也能夠把他當作移動版UI測試框架使用app
採用 JavaScript 爲腳本語言,並支持代碼補全、變量重命名、代碼格式化、查找替換等功能,能夠做爲一個 JavaScript IDE 使用框架
支持使用 e4x 編寫界面,並能夠將 JavaScript 打包爲 apk 文件,您能夠用它來開發小工具應用編輯器
支持使用 Root 權限以提供更強大的屏幕點擊、滑動、錄製功能和運行 shell 命令。錄製錄製可產生js文件或二進制文件,錄製動做的回放比較流暢函數
提供截取屏幕、保存截圖、圖片找色、找圖等函數工具
可做爲 Tasker 插件使用,結合 Tasker 可勝任平常工做流佈局
帶有界面分析工具,相似 Android Studio 的 LayoutInspector,能夠分析界面層次和範圍、獲取界面上的控件信息測試
安裝
免費版在網上搜索 autojs.apk,下載後便可安裝,免費版已更新至 4.1.1Beta而且再也不更新。
最新版已經開始收費,下載地址:https://pro.autojs.org/
開啓手機無障礙服務
在 某些版本 上打開音量上鍵中止全部腳本,防止死循環腳本(我所使用的版本上默認開啓)
打開懸浮窗進行佈局分析
編輯環境配置
autojs 軟件提供了很是好的手機端編寫支持,擁有強大的提示功能,基本上咱們在手機端進行編寫也是很是溫馨的。
同時有 VS Code 插件可提供基礎的在桌面開發的功能。
免費版咱們下載:Auto.js-VSCodeExt
插件命令:
按 Ctrl+Shift+P 或點擊「查看」->「命令面板」可調出命令面板,輸入 Auto.js 能夠看到如下命令:
Start Server: 啓動插件服務。以後在確保手機和電腦在同一區域網的狀況下,在Auto.js的側拉菜單中使用鏈接電腦功能鏈接。
Stop Server: 中止插件服務。
Run: 運行當前編輯器的腳本。若是有多個設備鏈接,則在全部設備運行。
Rerun: 中止當前文件對應的腳本並從新運行。若是有多個設備鏈接,則在全部設備從新運行。
Stop: 中止當前文件對應的腳本。若是有多個設備鏈接,則在全部設備中止。
StopAll: 中止全部正在運行的腳本。若是有多個設備鏈接,則在全部設備運行全部腳本。
Save: 保存當前文件到手機的腳本默認目錄(文件名會加上前綴remote)。若是有多個設備鏈接,則在全部設備保存。
RunOnDevice: 彈出設備菜單並在指定設備運行腳本。
SaveToDevice: 彈出設備菜單並在指定設備保存腳本。
New Project(新建項目):選擇一個空文件夾(或者在文件管理器中新建一個空文件夾),將會自動建立一個項目
Run Project(運行項目):運行一個項目,須要 Auto.js 4.0.4 Alpha5 以上支持
Save Project(保存項目):保存一個項目,須要 Auto.js 4.0.4 Alpha5 以上支持
使用 vscode 進行開發
在命令面板選擇 Start Server 啓動服務,右下角會顯示 Auto.js server running
將手機與電腦鏈接到同一個WiFi,查看電腦的 IP 地址。
在手機端 AutoJS 側邊菜單中選擇遠程調試,並輸入電腦 IP,vscode 中會顯示鏈接成功
vscode 中建立 JS 文件,按 F5 或者選擇 Run 命令,便可在手機端進行運行
在 vscode 命令面板中選擇 Save,將自動發送並保存到手機上
經常使用命令及函數
auto.waitFor()
檢查無障礙服務是否已經啓用,若是沒有啓用則跳轉到無障礙服務啓用界面,並等待無障礙服務啓動;當無障礙服務啓動後腳本會繼續運行。
app.launchApp(appName)
appName
{string} 應用名稱
經過應用名稱啓動應用。若是該名稱對應的應用不存在,則返回false; 不然返回true。若是該名稱對應多個應用,則只啓動其中某一個。
UiSelector.text(str)
str
{string} 控件文本返回 {UiSelector} 返回選擇器自身以便鏈式調用
爲當前選擇器附加控件"text等於字符串str"的篩選條件。
控件的text(文本)屬性是文本控件上的顯示的文字,例如微信左上角的"微信"文本。
UiSelector.textContains(str)
str
{string} 要包含的字符串
爲當前選擇器附加控件"text須要包含字符串str"的篩選條件。
這是一個比較有用的條件,例如QQ動態頁和微博發現頁上方的"你們都在搜…."的控件能夠用textContains("你們都在搜").findOne()
來獲取。
bounds()
返回 Rect
返回控件在屏幕上的範圍,其值是一個Rect對象
findOne(selector)
selector
UiSelector返回 UiOobject
根據選擇器selector在該控件的子控件、孫控件…中搜索符合該選擇器條件的控件,並返回找到的第一個控件;若是沒有找到符合條件的控件則返回null
。
其餘API請看官方文檔。要注意控件的click函數不必定會生效,所以推薦使用全局點擊click函數。
京東簽到領京豆
開啓 AutoJS 的懸浮窗
打開京東商城 APP
選擇 AutoJS 懸浮窗的佈局分析
選擇佈局分析
佈局範圍分析
點擊領京豆
生成代碼
查看 text、id、desc,也能夠選擇生成代碼
上面咱們看到生成代碼失敗了,那麼就要 查看控件信息,發現底下 text 屬性爲「領京豆」
而後咱們就能夠在代碼中使用text('領京豆')
,來獲取這個控件了。
目前最新版的 AutoJS Pro 已是付費制了,37元永久免費,也但願你們能支持做者,可是免費版的在網上依然能搜到,能夠下載比較新的版本使用,基本上也能知足咱們不少需求。另外論壇已經中止更新了,可是咱們依然能夠在上面搜索到一些腳本。
固然直接在 GitHub上就能夠搜索到更多的腳本。
簽到領京豆腳本已經上傳到公號後臺,請關注公衆號,並回復:領京豆,獲取源代碼。
固然,也能夠參考以前的這篇文章,直接利用 Tasker 天天定時去簽到領取京豆。
本文分享自微信公衆號 - AirPython(AirPython)。
若有侵權,請聯繫 support@oschina.cn 刪除。
本文參與「OSC源創計劃」,歡迎正在閱讀的你也加入,一塊兒分享。