欧美三区_成人在线免费观看视频_欧美极品少妇xxxxⅹ免费视频_a级毛片免费播放_鲁一鲁中文字幕久久_亚洲一级特黄

Android Developers:優化布局結構

系統 2885 0

這是一個普遍的誤解,使用基本的布局結構是最高效率的布局。然而,每個你加入你的應用程序的組件和布局 都需要初始化,布局,和繪制。例如,使用嵌套的LinearLayout實例能導致一個過深的視圖結構。而且,嵌入 幾個使用laytou_wight參數的LinearLyaout實例,由于每個孩子需要被測量兩次導致特別昂貴的開銷。當布局是 一個反復的填充的時候,這個特別重要,例如當被使用在一個ListView或者GridView中時。

在這個課程當中,你將會學習使用Hierarchyt Viewer和Layotopt來檢查和優化你的布局。

檢查你的布局

———————————————————————————————— ——————— ——————— ——————— ——————— ——

Android SDK工具包含了一個被稱為Hierarchy Viewer的工具,它允許你在你的應用程序運行的時候分析你的布 局。使用這個工具幫助你發現在你的布局性能里面的瓶頸。

Hierachy Viewer允許你選擇在一個連接的設備或者模擬器運行進程,然后顯示這個布局樹。在每個模塊的交通 燈代表了它的測量值,布局和繪制性能,幫助你確定潛在的問題。

例如,Figure 1顯示了一個布局,它被用做在一個ListView中的現象。這個布局在左邊顯示了一個小的位圖,和 在右邊堆放了兩個文本項。它是尤其的重要由于這個布局將會被填充到多個選項—如這個—被優化性能執行效 將會成倍增加。

這個hierarchyviewer工具在<sdk>/tools/目錄下提供,當被打開的時候,這個Hierarchy Viewer顯示了一列有 效設備和它正在運行的組件。點擊Load View Hierarchy來查看這個被選擇組件的布局結構。例如,Figure 2顯 示了Figure 1中列表項的布局。

在Figure 2中,你能看見一個 有一些問題的 顯示文本的三級結構。點擊這個選項,顯示過程每個階段使用的時 間(Figure 3)。這樣哪個選項花費最長時間的測量,布局,和渲染,和哪里你應該花費時間來優化,就變得 清晰了。

使用這個布局渲染整個列表項使用的時間是:

  • 測量:0.977ms

  • 布局:0.167ms

  • 繪制:2.717ms

修正你的布局

————————————————————————————— ——— ——— ——— ——— ——— ——— ——— ——— ——— ——————

因為嵌入的LinearLayout使這個布局性能過于緩慢,這個性能可能通過壓扁這個布局來改善—使這個布局扁且 寬,而不是窄且深。RelativeLayout可以作為這樣布局的的根節點。所以,當這個設計轉變成使用RelativeLay out,你能看見這個布局成為一個2級的結構。檢查這個新的布局如下:

現在渲染一個列表項花費:

  • 測量:0.598ms

  • 布局:0.110ms

  • 繪制:2.146ms

可能看起來是一個很小的提升,但是這個時間是成倍的,因為這個布局被用于在一個列表的每個選項。

由于在LinearLayout設計的時候使用了layout_weight屬性,大多數時間是不同的,它能減慢測量的速度。這 僅僅是每個布局如何被合適的使用,和你應該考慮使用layout_weight是必要的的一個例子。

使用Lint

—————————— ——— ——— ——— ——— ——— ——— ——— ——— ——— —————————————————————————

運行Lint工具, 在你的布局文件中搜索可能的視圖結構最佳化是好的方式。Lint已經替代了Layoutopt工具,并 且有更多更強大的功能。Lint規則的一些例子如下:

  • 使用復合圖片 — 一個包含一個ImageView和一個TextView的LinearLayout作為一個復合圖片能被高效的 理。

  • 合并根框架 — 如果一個FrameLayout是一個布局的根,沒有提供背景或者填充等,它能被一個更高效的 m erge標記來替代。

  • 無用的葉子 — 一個沒有孩子或者沒有背景的布局通常被移除(因為它是不可見的),為了一個更均勻的 更高效的布局結構。

  • 無效的父母 — 一個布局有孩子,它沒有兄弟,它不是一個ScrollView或者一個根布局,并且沒有一個背 ,可以被移除,并且它的孩子直接放入這個父母中,為了一個均勻且高效的布局結構。

  • 深布局 — 擁有過多嵌套不利于性能的布局。 考慮使用均勻的布局,如RelativeLayout或者Gridlayout來提 升性能。這個默認的最大深度為10。


Lint的其它的好處是它被整合到Eclipse的Android Development Tools(ADT 16+)。每當你輸出一個APK的時候 Lint自動運行,編輯和保存一個XML文件,或者使用這個布局編輯器。為了手動打開Lint,點擊在Eclipse工具 欄的Lint按鈕。


當在Eclipse中被使用的時候,Lint有自動固定一些問題的能力,為別人提供建議和直接跳到出錯的代碼檢查。 如果你沒有使用Eclipse開發,Lint也能通過命令行運行。更多關于Lint的信息可以在tools.android.com中。

Android Developers:優化布局結構


更多文章、技術交流、商務合作、聯系博主

微信掃碼或搜索:z360901061

微信掃一掃加我為好友

QQ號聯系: 360901061

您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點擊下面給點支持吧,站長非常感激您!手機微信長按不能支付解決辦法:請將微信支付二維碼保存到相冊,切換到微信,然后點擊微信右上角掃一掃功能,選擇支付二維碼完成支付。

【本文對您有幫助就好】

您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描上面二維碼支持博主2元、5元、10元、自定義金額等您想捐的金額吧,站長會非常 感謝您的哦?。。?/p>

發表我的評論
最新評論 總共0條評論
主站蜘蛛池模板: 精品亚洲一区二区三区四区五区 | 操你啦免费视频 | 黄色片快播 | 国产精品视频网站 | 精品久久久久久久久久 | 午夜院线 | 欧美18一12sex性处hd | 日韩aⅴ一区二区三区 | 国产精品久久国产精品 | 久久久九九精品国产毛片A片 | 日本不卡一区在线 | 99精品视频在线观看re | 国产精品视频福利 | 人人香蕉 | 欧美日韩亚洲高清不卡一区二区三区 | 黄网站在线免费 | 精品一区二区三区免费站 | 韩国三级中文字幕hd久久精品 | 午夜插插| 最新亚洲国产有精品 | 精品亚洲福利一区二区 | 一区二区中文字幕 | 国产大片在线观看 | 91免费版在线看 | 国产h视频在线观看高清 | 国产真实乱freesex | 国产99久久精品一区二区 | 性久久久久久久久波多野结衣 | 女人色毛片女人色毛片中国 | 五月婷婷在线观看视频 | 欧美色性 | 大喷水 | 中文字幕一区二区三区四区五区 | 欧美日韩中文字幕在线观看 | 2019中文字幕在线播放 | 来吧亚洲综合网 | 亚洲精品1 | 国产午夜三级一区二区三桃花影视 | 国产免费高清无需播放器 | 天天干国产| 一级黄色片a |