
如圖,這是巴比智慧園早教app的一個界面,通過adb dump 界面結構ui得到xml如下
<?xml version='1.0' encoding='UTF-8' standalone='yes' ?>
<hierarchy rotation="1">
<node index="0" text="" resource-id="" class="android.widget.LinearLayout" package="com.zhihui" content-desc="" checkable="false" checked="false" clickable="false" enabled="true" focusable="false" focused="false" scrollable="false" long-clickable="false" password="false" selected="false" visible-to-user="true" bounds="[0,0][1600,900]">
<node index="0" text="" resource-id="com.zhihui:id/cancletask" class="android.widget.LinearLayout" package="com.zhihui" content-desc="" checkable="false" checked="false" clickable="false" enabled="true" focusable="false" focused="false" scrollable="false" long-clickable="false" password="false" selected="false" visible-to-user="true" bounds="[412,201][1188,699]">
<node index="0" text="" resource-id="com.zhihui:id/part1" class="android.widget.LinearLayout" package="com.zhihui" content-desc="" checkable="false" checked="false" clickable="false" enabled="true" focusable="false" focused="false" scrollable="false" long-clickable="false" password="false" selected="false" visible-to-user="true" bounds="[428,217][624,273]" />
<node index="1" text="" resource-id="com.zhihui:id/part2" class="android.widget.LinearLayout" package="com.zhihui" content-desc="" checkable="false" checked="false" clickable="false" enabled="true" focusable="false" focused="false" scrollable="false" long-clickable="false" password="false" selected="false" visible-to-user="true" bounds="[412,306][1143,498]">
<node index="0" text="更新提示: 1.【開放】課本點讀,全冊免費、無廣告; 2.【新增】幼ò肝文全解,哪里不懂點哪里; 3.【新增】語文詞語朗讀、解釋、聽寫等;" resource-id="com.zhihui:id/update_content" class="android.widget.TextView" package="com.zhihui" content-desc="" checkable="false" checked="false" clickable="true" enabled="true" focusable="true" focused="false" scrollable="false" long-clickable="true" password="false" selected="false" visible-to-user="true" bounds="[462,306][1143,498]" />
</node>
<node index="2" text="" resource-id="com.zhihui:id/part3" class="android.widget.LinearLayout" package="com.zhihui" content-desc="" checkable="false" checked="false" clickable="false" enabled="true" focusable="false" focused="false" scrollable="false" long-clickable="false" password="false" selected="false" visible-to-user="true" bounds="[462,526][1137,549]">
<node index="0" text="" resource-id="com.zhihui:id/update_progress" class="android.widget.ProgressBar" package="com.zhihui" content-desc="" checkable="false" checked="false" clickable="false" enabled="true" focusable="false" focused="false" scrollable="false" long-clickable="false" password="false" selected="false" visible-to-user="true" bounds="[485,526][1114,549]" />
</node>
<node index="3" text="" resource-id="com.zhihui:id/part4" class="android.widget.LinearLayout" package="com.zhihui" content-desc="" checkable="false" checked="false" clickable="false" enabled="true" focusable="false" focused="false" scrollable="false" long-clickable="false" password="false" selected="false" visible-to-user="true" bounds="[551,582][1049,658]">
<node NAF="true" index="0" text="" resource-id="com.zhihui:id/bokpc" class="android.widget.Button" package="com.zhihui" content-desc="" checkable="false" checked="false" clickable="true" enabled="true" focusable="true" focused="false" scrollable="false" long-clickable="false" password="false" selected="false" visible-to-user="true" bounds="[551,582][753,658]" />
<node NAF="true" index="1" text="" resource-id="com.zhihui:id/bcanclepc" class="android.widget.Button" package="com.zhihui" content-desc="" checkable="false" checked="false" clickable="true" enabled="true" focusable="true" focused="false" scrollable="false" long-clickable="false" password="false" selected="false" visible-to-user="true" bounds="[847,582][1049,658]" />
</node>
</node>
</node>
</hierarchy>
顯然,xml中看不到“現在升級”和“稍后升級”兩個按鈕的文本,只能看到對應的兩個clickable="true"的控制元件,text屬性為空。
想請問,應該用什么框架或者方法可以識別到這種按鈕文本?
上述只是舉例說明,包括其他類似app也有這種情況,希望有通用性的方法識別,而不是定制化方法,感謝!
uj5u.com熱心網友回復:
看名字好像就是原生的,可能這個是圖片資源,設成了背景。uj5u.com熱心網友回復:
class="android.widget.LinearLayout" 即表示這個控制元件是一個LLinearLayout;如果你像找到按鈕,那么有class="android.widget.Button",因為按鈕控制元件在android在這個包下面,或者androidX下面,反正是Buttom結尾的控制元件。
因為xml中可以通過參考資源檔案的形式去參考文字資源,因此“現在升級”和“稍后升級”兩個按鈕的文本,有可能看不到
轉載請註明出處,本文鏈接:https://www.uj5u.com/yidong/261525.html
標籤:Android
上一篇:關于使用QFile打開檔案的問題
