element tree不刷新视图_安卓从入门到进阶第五章(视图查看)
安卓學(xué)習(xí)過程中,很多時(shí)候需要查看視圖,去定位問題,通過找尋的節(jié)點(diǎn),進(jìn)行代碼檢索,最終定位到流程,進(jìn)行修改,分析源碼。
今天我們就來說說如何查看一個(gè)界面的視圖。看不到進(jìn)程,說明你用的不是eng版本,或者你的app不是調(diào)試版本。
(系統(tǒng)開發(fā),不用eng版本,你怎么發(fā)揮工具強(qiáng)大的能力)
1我們使用Android Studio自帶的工具:
在菜單欄Tools ->Android -> Layout Inspector 打開即可
在打開后,選擇當(dāng)前打開的界面(這里我打開了圖庫,我們就看下圖庫的界面)
選中 com.android.gallery3d,點(diǎn)擊確定就會出來當(dāng)前界面的視圖信息。
1是ViewTree ,通過這個(gè)可以看到xml的對應(yīng)布局信息,點(diǎn)擊各個(gè)View,在2上面會顯示出來對應(yīng)View的區(qū)域,3會顯示這個(gè)View的對應(yīng)屬性,繪制信息。
通過點(diǎn)擊1或者2的對應(yīng)位置,找到你所關(guān)注的View,通過3的顯示,找到屬性信息,比如text 和id信息
如此可以分析這個(gè)界面的所有View的信息,然后通過一些特征信息(text id 或者自定義的view類型等等),去檢索代碼,找到代碼位置,進(jìn)行調(diào)整修改。
2 Sdk\tools\bin的uiautomatorviewer.bat
試用了下,沒有顯示出來界面,只有視圖列表信息。這個(gè)我平時(shí)也不用,就不做深入研究為什么不出來界面了。
3 我們的主角,我平時(shí)用的最多的工具h(yuǎn)ierarchyviewer。雖然懷舊,但是經(jīng)典。
從網(wǎng)上下載adt-bundle-windows-x86_64-20140702 開發(fā)包,sdk\tools\hierarchyviewer.bat 運(yùn)行起來。
這里顯示的信息,是window的title信息,我們可以看到狀態(tài)欄和虛擬按鍵的window也顯示了出來。
DockedStackDivider 這個(gè)是分屏的那個(gè)view,通過代碼搜索這個(gè)title,就能找到代碼位置。
通過目錄樹,可以知道這個(gè)是在SystemUI的源碼里面。
我們這里就看下GalleryActiivty的視圖。選中這個(gè),點(diǎn)擊Load ViewHierarchy進(jìn)入界面。
1 大視圖的view信息,可以拖動尋找你要的界面,雙擊會出現(xiàn)對應(yīng)的視圖界面。
2 小視圖的view信息,可以快速點(diǎn)擊選中一個(gè)區(qū)域,然后使用1去尋找目標(biāo)view。
3選中的view的相關(guān)信息。
4 整體視圖顯示,可以勾選show extras,顯示更多信息。
5 放大縮小區(qū)域,20%-200%,還可以使用id進(jìn)行搜索
6 回到主界面,重新選擇界面。
我們一般借用這個(gè)界面去定位我們的目標(biāo)view,使用的方式是,從左向右查找,從父類快速的收斂,定位目標(biāo)View的位置。
通過定位到View之后,我們雙擊這個(gè)view
這里可以操作上面的On White或者On Black 這個(gè)是用來設(shè)定背景色的。通過選擇黑色白色,可以查看這個(gè)View是否真的有背景色。
如果選中白的,界面顯示為白,選中黑的,顯示黑,意味這個(gè)view背景是透明的。這個(gè)為方便定位顏色到底是哪個(gè)父類設(shè)定的,很方便。
這里我們再來看看上面的菜單:
這邊常用的就是Profile Node,點(diǎn)擊后界面很多view下面出現(xiàn)三個(gè)點(diǎn),這個(gè)從左到右便是,測量,布局,繪制所耗的時(shí)間。紅點(diǎn)和黃點(diǎn)表示速度慢,而藍(lán)綠則相對好一些。
不知你學(xué)會了嗎?希望課后大家能夠?qū)嶋H使用起來,多看看它的屬性信息,那里可以看到布局信息,是否繪制,是否透明,主題的信息,都是幫助我們定位問題的方式。
—————END—————
總結(jié)
以上是生活随笔為你收集整理的element tree不刷新视图_安卓从入门到进阶第五章(视图查看)的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 如何查看及修改Oracle的字符编码
- 下一篇: An Introduction to O