亚洲免费在线-亚洲免费在线播放-亚洲免费在线观看-亚洲免费在线观看视频-亚洲免费在线看-亚洲免费在线视频

Android Developers:優(yōu)化布局結(jié)構(gòu)

系統(tǒng) 2819 0

這是一個(gè)普遍的誤解,使用基本的布局結(jié)構(gòu)是最高效率的布局。然而,每個(gè)你加入你的應(yīng)用程序的組件和布局 都需要初始化,布局,和繪制。例如,使用嵌套的LinearLayout實(shí)例能導(dǎo)致一個(gè)過(guò)深的視圖結(jié)構(gòu)。而且,嵌入 幾個(gè)使用laytou_wight參數(shù)的LinearLyaout實(shí)例,由于每個(gè)孩子需要被測(cè)量?jī)纱螌?dǎo)致特別昂貴的開(kāi)銷(xiāo)。當(dāng)布局是 一個(gè)反復(fù)的填充的時(shí)候,這個(gè)特別重要,例如當(dāng)被使用在一個(gè)ListView或者GridView中時(shí)。

在這個(gè)課程當(dāng)中,你將會(huì)學(xué)習(xí)使用Hierarchyt Viewer和Layotopt來(lái)檢查和優(yōu)化你的布局。

檢查你的布局

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

Android SDK工具包含了一個(gè)被稱為Hierarchy Viewer的工具,它允許你在你的應(yīng)用程序運(yùn)行的時(shí)候分析你的布 局。使用這個(gè)工具幫助你發(fā)現(xiàn)在你的布局性能里面的瓶頸。

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

例如,F(xiàn)igure 1顯示了一個(gè)布局,它被用做在一個(gè)ListView中的現(xiàn)象。這個(gè)布局在左邊顯示了一個(gè)小的位圖,和 在右邊堆放了兩個(gè)文本項(xiàng)。它是尤其的重要由于這個(gè)布局將會(huì)被填充到多個(gè)選項(xiàng)—如這個(gè)—被優(yōu)化性能執(zhí)行效 將會(huì)成倍增加。

這個(gè)hierarchyviewer工具在<sdk>/tools/目錄下提供,當(dāng)被打開(kāi)的時(shí)候,這個(gè)Hierarchy Viewer顯示了一列有 效設(shè)備和它正在運(yùn)行的組件。點(diǎn)擊Load View Hierarchy來(lái)查看這個(gè)被選擇組件的布局結(jié)構(gòu)。例如,F(xiàn)igure 2顯 示了Figure 1中列表項(xiàng)的布局。

在Figure 2中,你能看見(jiàn)一個(gè) 有一些問(wèn)題的 顯示文本的三級(jí)結(jié)構(gòu)。點(diǎn)擊這個(gè)選項(xiàng),顯示過(guò)程每個(gè)階段使用的時(shí) 間(Figure 3)。這樣哪個(gè)選項(xiàng)花費(fèi)最長(zhǎng)時(shí)間的測(cè)量,布局,和渲染,和哪里你應(yīng)該花費(fèi)時(shí)間來(lái)優(yōu)化,就變得 清晰了。

使用這個(gè)布局渲染整個(gè)列表項(xiàng)使用的時(shí)間是:

  • 測(cè)量:0.977ms

  • 布局:0.167ms

  • 繪制:2.717ms

修正你的布局

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

因?yàn)榍度氲腖inearLayout使這個(gè)布局性能過(guò)于緩慢,這個(gè)性能可能通過(guò)壓扁這個(gè)布局來(lái)改善—使這個(gè)布局扁且 寬,而不是窄且深。RelativeLayout可以作為這樣布局的的根節(jié)點(diǎn)。所以,當(dāng)這個(gè)設(shè)計(jì)轉(zhuǎn)變成使用RelativeLay out,你能看見(jiàn)這個(gè)布局成為一個(gè)2級(jí)的結(jié)構(gòu)。檢查這個(gè)新的布局如下:

現(xiàn)在渲染一個(gè)列表項(xiàng)花費(fèi):

  • 測(cè)量:0.598ms

  • 布局:0.110ms

  • 繪制:2.146ms

可能看起來(lái)是一個(gè)很小的提升,但是這個(gè)時(shí)間是成倍的,因?yàn)檫@個(gè)布局被用于在一個(gè)列表的每個(gè)選項(xiàng)。

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

使用Lint

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

運(yùn)行Lint工具, 在你的布局文件中搜索可能的視圖結(jié)構(gòu)最佳化是好的方式。Lint已經(jīng)替代了Layoutopt工具,并 且有更多更強(qiáng)大的功能。Lint規(guī)則的一些例子如下:

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

  • 合并根框架 — 如果一個(gè)FrameLayout是一個(gè)布局的根,沒(méi)有提供背景或者填充等,它能被一個(gè)更高效的 m erge標(biāo)記來(lái)替代。

  • 無(wú)用的葉子 — 一個(gè)沒(méi)有孩子或者沒(méi)有背景的布局通常被移除(因?yàn)樗遣豢梢?jiàn)的),為了一個(gè)更均勻的 更高效的布局結(jié)構(gòu)。

  • 無(wú)效的父母 — 一個(gè)布局有孩子,它沒(méi)有兄弟,它不是一個(gè)ScrollView或者一個(gè)根布局,并且沒(méi)有一個(gè)背 ,可以被移除,并且它的孩子直接放入這個(gè)父母中,為了一個(gè)均勻且高效的布局結(jié)構(gòu)。

  • 深布局 — 擁有過(guò)多嵌套不利于性能的布局。 考慮使用均勻的布局,如RelativeLayout或者Gridlayout來(lái)提 升性能。這個(gè)默認(rèn)的最大深度為10。


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


當(dāng)在Eclipse中被使用的時(shí)候,Lint有自動(dòng)固定一些問(wèn)題的能力,為別人提供建議和直接跳到出錯(cuò)的代碼檢查。 如果你沒(méi)有使用Eclipse開(kāi)發(fā),Lint也能通過(guò)命令行運(yùn)行。更多關(guān)于Lint的信息可以在tools.android.com中。

Android Developers:優(yōu)化布局結(jié)構(gòu)


更多文章、技術(shù)交流、商務(wù)合作、聯(lián)系博主

微信掃碼或搜索:z360901061

微信掃一掃加我為好友

QQ號(hào)聯(lián)系: 360901061

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

【本文對(duì)您有幫助就好】

您的支持是博主寫(xiě)作最大的動(dòng)力,如果您喜歡我的文章,感覺(jué)我的文章對(duì)您有幫助,請(qǐng)用微信掃描上面二維碼支持博主2元、5元、10元、自定義金額等您想捐的金額吧,站長(zhǎng)會(huì)非常 感謝您的哦!!!

發(fā)表我的評(píng)論
最新評(píng)論 總共0條評(píng)論
主站蜘蛛池模板: 欧美精品国产 | 99国产精品视频免费观看 | 够爱久久 | 偷偷狠狠的日日高清完整视频 | 亚洲日本中文字幕在线 | 日本高清一级片 | 欧美一级大片在线观看 | 国内精品久久久久久久影视麻豆 | 国产成人精品三级91在线影院 | 久久久久久久九九九九 | 国产大片91精品免费观看不卡 | 日韩欧美在线一级一中文字暮 | 色精品一区二区三区 | 欧美日韩成人午夜免费 | 成人精品福利 | 精彩视频一区二区三区 | 性感美女一级毛片 | 国产高清一区二区三区四区 | 女性一级全黄生活片 | 亚洲欧美不卡 | 日本一级作爱片在线观看 | 色综合欧美亚洲另类久久 | 亚洲一级黄色 | 亚洲一区二区在线视频 | 毛片大全网站 | 亚洲福利 影院 | 久久免费视频播放 | 亚洲五月花 | 青青青国产手机免费视频 | 午夜性色吃奶添下面69影院 | 中文字幕第5页 | 黄色毛片在线播放 | 波多野结衣精品中文字幕 | 操免费视频 | 久久久噜噜噜久久 | 美女视频黄的免费视频网页 | 色综合天天综合网站中国 | 亚洲无线码一区在线观看 | 国产精品麻豆久久久 | 欧美一级毛片免费大片 | www精品|