auto.js是什麼

(*-*)浩
(*-*)浩原創
2019-05-18 13:43:5032524瀏覽

「auto.js」是一個基於JavaScript語言運行在Android平台上的腳本框架,「auto.js」主要運作原理是基於輔助服務「AccessibilityService」。

auto.js是什麼

Auto.js是利用安卓系統的「輔助功能」實作類似於按鍵精靈一樣,可以透過程式碼模擬一系列介面動作的輔助工作。

與「按鍵精靈」不同的是,它的模擬動作並不是簡單的使用在界面定坐標點來實現,而是類似與win一般,找窗口句柄來實現的,這一點,挺優雅。

因為Auto.js是基於JavaScript的,學習Auto.js的API之前建議先學習JavaScript的基本語法和內建對象,可以使用avaScript教學來學習。

如果您想要使用TypeScript來開發,目前已經有開發者公佈了可以把使用TypeScript進行Auto.js開發的工具,請參閱Auto.js DevTools。

如果想要在電腦而不是手機上開發Auto.js,可以使用VS Code以及相應的Auto.js插件使得在電腦上編輯的腳本能推送到手機運行,參見Auto.js-VSCode -Extension。

自動操作"的部分又可以大致分為基於控制和基於座標的操作。基於座標的操作是傳統按鍵精靈、觸控精靈等腳本軟體採用的方式,透過螢幕座標來點擊、長按指定位置模擬操作,從而到達目的。例如click(100, 200), press(100, 200, 500)等。這種方式在遊戲類腳本中比較有可行性,結合找圖找色、坐標放縮功能也能達到較好的兼容性。但是,這種方式對一般軟體腳本卻難以達到想要的效果,而且這種方式需要安卓7.0版本以上或者root權限才能執行。所以對於一般軟體腳本(例如批量添加聯絡人、自動提取簡訊驗證碼等等),我們採用基於控制的模擬操作方式,結合通知事情、按鍵事情等達成更好的工作流程。

在開發文件之外,個人遇到的問題,在此記錄

UI執行緒中循環語句循環多次後報錯誤

Auto.js(以下簡稱AJ)要修改介面的屬性,需使用

ui.run(function(){
        //TODO
});

在函數內不建議使用大量的邏輯程式碼,應盡量只包含少量的修改UI的程式碼。否則就會報錯

Only the original thread that created a view hierarchy can touch its views.

例如像這樣的程式碼,是很有可能出問題的

ui.run(function(){
    for(var i=0;i<len;i++){
		//数据准备操作
		//修改界面内容
	}
});

應改成:

 for(var i=0;i<len;i++){
	//数据准备
	ui.run(function(){
		//修改界面内容
		
    });
}

以上是auto.js是什麼的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
上一篇:app.json是什麼下一篇:app.json是什麼