「按鍵精靈安卓版」關(guān)于全分辨率腳本的一些理解(非游戲app)

?在講全分辨率之前,先來說一下為什么我們平時(shí)寫的腳本不能實(shí)現(xiàn)全分辨率。

(1)腳本中含有固定坐標(biāo)值。

看下圖:

這是模擬兩個(gè)屏幕,一個(gè)“小屏”,一個(gè)“大屏”,假設(shè)我要點(diǎn)擊上面的腳本app(云掃碼),小屏點(diǎn)擊的坐標(biāo)是(x,y),大屏點(diǎn)擊的坐標(biāo)是(x1,y1),如果我們比較x和x1,或者y和y1,很明顯兩者數(shù)值是不相等的。

那么當(dāng)我們用tap x,y去點(diǎn)擊小屏上的app是可以點(diǎn)到,但是點(diǎn)擊大屏上的app,由于坐標(biāo)不對(duì),是點(diǎn)擊不到。這樣按照小屏寫的腳本只能在小屏上使用,按照大屏寫的腳本只能在大屏上使用,所以腳本不通用。

注:當(dāng)屏幕長寬比一樣時(shí),是可以通過縮放比例控制坐標(biāo)值,實(shí)現(xiàn)通用。

(2)腳本中使用了圖色命令

說一下圖色命令包括哪些,看下圖:

圖片中的命令都屬于圖色命令,只要你的腳本中用到了這些命令,基本上就不能實(shí)現(xiàn)全分辨率。

還是拿之前的圖為例:

同樣一個(gè)圖片,看起來很像,但是當(dāng)我們放大來看,會(huì)發(fā)現(xiàn)兩者的像素顏色排列是差別很大的。

而我們的圖色命令是基于像素顏色和坐標(biāo)的比對(duì)實(shí)現(xiàn)的,當(dāng)兩者差別很大的時(shí)候,即使看著很像,本質(zhì)上已經(jīng)是兩個(gè)“完全不同”的圖了,自然也就無法使用圖色命令。

(3)不同設(shè)備(不同系統(tǒng)版本)

同一個(gè)圖片,在不同的設(shè)備或者不同系統(tǒng)版本上,顯示的時(shí)候是有細(xì)微差別的。這個(gè)差別我們?nèi)庋鄯直姹容^難,但是對(duì)于圖色命令是很容易區(qū)分,這也是我們?cè)谑褂脠D色命令的時(shí)候,會(huì)把相似度稍微調(diào)低一點(diǎn)。

說完不能實(shí)現(xiàn)全分辨率的原因以后,我們說一下全分辨率怎么寫。

(1)能寫全分辨率的前提

你要操作的app必須有xml,不能是游戲app,對(duì)于蘋果ios系統(tǒng)的xml我不熟悉,這里暫時(shí)不做討論。

(2)什么是xml

具體描述你可以查看百度百科,簡單點(diǎn)說就是屏幕上的各個(gè)元素的代碼形式。

我們通過元素抓取可以看到,屏幕是由一個(gè)個(gè)小方塊組成,這些方塊就是界面的組成元素,我們稱為“節(jié)點(diǎn)”。

節(jié)點(diǎn)體現(xiàn)在代碼上就是node

node分為兩種形式:

①含有子節(jié)點(diǎn)的?子節(jié)點(diǎn)

②不含有子節(jié)點(diǎn)的?

node的屬性和屬性值

一個(gè)node節(jié)點(diǎn)有什么功能,在什么位置,都是由以上這些屬性決定的。這里面我標(biāo)紅兩個(gè)我們會(huì)用到的。

①text屬性,也就是文字,通常我們要提取一個(gè)界面上的文字,就是提取這個(gè)text屬性值

②bounds屬性,坐標(biāo)范圍,當(dāng)我們要點(diǎn)擊某個(gè)內(nèi)容,只要知道它的坐標(biāo)范圍,點(diǎn)擊這個(gè)范圍值就可以了。

(3)關(guān)于xml的提取

目前有三個(gè)方法,山海插件的getuixml命令,jsd插件,隱藏的Element命令,我個(gè)人比較喜歡山海插件的getuixml命令,按鍵自帶的,缺點(diǎn)是獲取xml需要的時(shí)間比較長。

(4)從xml里面提取節(jié)點(diǎn)屬性值。

除了自帶的節(jié)點(diǎn)提取命令以外,還有可以看看我前兩天發(fā)的文章:關(guān)于字符串提取的方法。

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容