線上服務(wù)咨詢
Article/文章
記錄成長點(diǎn)滴 分享您我感悟
auto.js是什么
與“按鍵精靈”不同的是,它的模擬動(dòng)作并不是簡單的使用在界面定坐標(biāo)點(diǎn)來實(shí)現(xiàn),而是類似與win一般,找窗口句柄來實(shí)現(xiàn)的,這一點(diǎn),挺優(yōu)雅。
因?yàn)锳uto.js是基于JavaScript的,學(xué)習(xí)Aut沈陽軟件開發(fā)
如果您想要使用TypeScript來開發(fā),目前已經(jīng)有開發(fā)者公布了一個(gè)可以把使用TypeScript進(jìn)行Auto.js開發(fā)的工具,參見Auto.js DevTools。
如果想要在電腦而不是手機(jī)上開發(fā)Auto.js,可以使用VS Code以及相應(yīng)的Auto.js插件使得在電腦上編輯的腳本能推送到手機(jī)運(yùn)行,參見Auto.js-VSCode-Extension。
自動(dòng)操作"的部分又可以大致分為基于控件和基于坐標(biāo)的操作。基于坐標(biāo)的操作是傳統(tǒng)按鍵精靈、觸摸精靈等腳本軟件采用的方式,通過屏幕坐標(biāo)來點(diǎn)擊、長按指定位置模擬操作,從而到達(dá)目的。例如click(100, 200), press(100, 200, 500)等。這種方式在游戲類腳本中比較有可行性,結(jié)合找圖找色、坐標(biāo)放縮功能也能達(dá)到較好的兼容性。但是,這種方式對(duì)一般軟件腳本卻難以達(dá)到想要的效果,而且這種方式需要安卓7.0版本以上或者root權(quán)限才能執(zhí)行。所以對(duì)于一般軟件腳本(例如批量添加聯(lián)系人、自動(dòng)提取短信驗(yàn)證碼等等),我們采用基于控件的模擬操作方式,結(jié)合通知事情、按鍵事情等達(dá)成更好的工作流。
在開發(fā)文檔之外,個(gè)人遇到的問題,在此處記錄
UI線程中循環(huán)語句循環(huán)多次后報(bào)錯(cuò)
Auto.js(以下簡稱AJ)要修改界面的屬性,需使用
ui.run(function(){ //TODO});
在函數(shù)內(nèi)不建議使用大量的邏輯代碼,應(yīng)盡量只包含少量的修改UI的代碼。否則就會(huì)報(bào)錯(cuò)
Only the original thread that created a view hierarchy can touch its views.
比如像這樣的代碼,是很有可能出問題的
ui.run(function(){ for(var i=0;i<len;i++){//數(shù)據(jù)準(zhǔn)備操作//修改界面內(nèi)容}});
應(yīng)當(dāng)改成:
for(var i=0;i<len;i++){//數(shù)據(jù)準(zhǔn)備ui.run(function(){//修改界面內(nèi)容 });}
以上就是auto.js是什么的詳細(xì)內(nèi)容,更多請關(guān)注沈陽網(wǎng)站建設(shè)其它相關(guān)文章!
auto.js