av一区二区在线观看_亚洲男人的天堂网站_日韩亚洲视频_在线成人免费_欧美日韩精品免费观看视频_久草视

您的位置:首頁(yè)技術(shù)文章
文章詳情頁(yè)

簡(jiǎn)單了解Android性能優(yōu)化方向及相關(guān)工具

瀏覽:48日期:2022-09-23 08:41:37

開發(fā)一款性能優(yōu)良的應(yīng)用是每一個(gè)Android開發(fā)者都必須經(jīng)歷的挑戰(zhàn)。在移動(dòng)端資源有限的前提下,提高應(yīng)用的性能顯得尤為重要。常見的提高APP性能的優(yōu)化方向有三個(gè):布局和渲染優(yōu)化、內(nèi)存優(yōu)化、功耗優(yōu)化。

一:布局優(yōu)化

所謂布局優(yōu)化,就是盡量減少布局的嵌套層級(jí),減少無(wú)用的布局。主要的優(yōu)化方法有:

(1)優(yōu)先使用RelativeLayout來(lái)減少布局嵌套層數(shù),否則盡量使用LinearLayout。這是因?yàn)镽elativeLayout能夠在不嵌套的情況下完成復(fù)雜的布局,而當(dāng)布局比較簡(jiǎn)單時(shí)優(yōu)先使用LinearLayout提高性能。

(2)使用include標(biāo)簽來(lái)重用布局,使用merge標(biāo)簽來(lái)合并布局。

(3)使用ViewStub來(lái)實(shí)現(xiàn)視圖的動(dòng)態(tài)加載,僅當(dāng)使用的時(shí)候才去加載它。

(4)精簡(jiǎn)布局,刪除無(wú)用的布局等。

布局優(yōu)化常用的工具有:Hierarchy Viewer等。

二:渲染優(yōu)化

渲染優(yōu)化主要就是提高渲染的速度,避免過(guò)度繪制,從而減少畫面卡頓。主要優(yōu)化方法有:

(1)通過(guò)布局優(yōu)化減少布局層級(jí),提高布局的繪制速度。

(2)當(dāng)同一幀的像素點(diǎn)被繪制多次時(shí),就會(huì)產(chǎn)生過(guò)度繪制問(wèn)題(OverDraw),導(dǎo)致資源被浪費(fèi),因此需要避免過(guò)度繪制。

(3)系統(tǒng)每16ms會(huì)發(fā)送一次同步信號(hào),進(jìn)行UI渲染,如果每次都能渲染成功,就能使FPS達(dá)到60,從而使用戶感覺(jué)不到畫面卡頓。這就要求onDraw()方法中不能做耗時(shí)的邏輯。

繪制優(yōu)化常用的工具有:開發(fā)者選項(xiàng)里的GPU呈現(xiàn)模式分析、調(diào)試GPU過(guò)度繪制等。

三:內(nèi)存優(yōu)化

內(nèi)存優(yōu)化最主要的就是避免內(nèi)存泄漏。常見的內(nèi)存泄漏有:

(1)使用Static將屬性或控件定義為靜態(tài)的

1)在Activity類里有一個(gè)Activity的靜態(tài)成員變量引用了該Activity實(shí)例,由于靜態(tài)成員生命周期長(zhǎng),從而導(dǎo)致Activity實(shí)例需要被GC時(shí)由于該實(shí)例被引用導(dǎo)致無(wú)法被回收。解決方法為在Activity的onDestroy()方法里將該成員變量賦為Null。

2)如果View定義為靜態(tài)的,由于View持有Activity的context,同樣會(huì)造成內(nèi)存泄漏。解決方法為回收Activity實(shí)例時(shí)同時(shí)調(diào)用View的onDestroy()方法釋放該View。

(2)非靜態(tài)內(nèi)部類、匿名內(nèi)部類造成內(nèi)存泄漏

由于非靜態(tài)內(nèi)部類和匿名內(nèi)部類默認(rèn)持有外部類的強(qiáng)引用,當(dāng)內(nèi)部類的生命周期比外部類長(zhǎng)時(shí)就會(huì)造成內(nèi)存泄漏。常見的例子比如Handler內(nèi)部類造成內(nèi)存泄漏等。解決方法為將內(nèi)部類定義為靜態(tài)的,因?yàn)殪o態(tài)內(nèi)部類沒(méi)有外部類的引用。如果內(nèi)部類要訪問(wèn)外部類的成員,可以通過(guò)弱引用的方式。

常用的檢測(cè)內(nèi)存泄漏工具有:Leakcanary、MAT等。

四:功耗優(yōu)化

功耗優(yōu)化主要是減少應(yīng)用的耗電量,減少不必要的網(wǎng)絡(luò)請(qǐng)求等。

五:其他優(yōu)化

比如減小安裝包體積,在UI線程避免耗時(shí)操作等等。

六:其他優(yōu)化工具

IDE自帶的靜態(tài)代碼檢測(cè)工具、各種AndroidMonitor;jdk自帶的traceView等。

以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持好吧啦網(wǎng)。

標(biāo)簽: Android
相關(guān)文章:
主站蜘蛛池模板: 久久久成人精品 | 无码一区二区三区视频 | 国产伦精品一区二区三区照片91 | 国产在线一区二区三区 | 免费99精品国产自在在线 | 中文无吗 | 久久9精品 | 不用播放器看的av | 欧美一区二区在线 | 91精品久久久 | 在线免费观看a级片 | 国产精品久久9 | 久久久免费毛片 | www.com久久久 | 亚洲欧美一区二区三区国产精品 | 日本不卡一区 | 亚洲毛片 | 91热在线| 午夜三区 | 中文字幕精品一区久久久久 | 国产精品一区视频 | 国产精品一区在线 | www.xxxx欧美 | 日本特黄a级高清免费大片 国产精品久久性 | 亚洲人精品午夜 | 密室大逃脱第六季大神版在线观看 | 久久久久久999 | 亚洲一二三在线 | 久久综合伊人 | 久久久成人一区二区免费影院 | 精品国产色| 日韩亚洲视频 | 黄色一级大片在线免费看产 | 精品国产精品国产偷麻豆 | 久久九九99 | 一区二区三区四区在线 | 午夜专区 | 久久久国产精品网站 | 久久精品在线 | 欧美三级成人理伦 | 日韩av一区二区在线观看 |