最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

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

 更新時(shí)間:2020年08月06日 11:41:40   作者:志不堅(jiān)者智不達(dá)  
這篇文章主要介紹了簡(jiǎn)單了解Android性能優(yōu)化方向及相關(guān)工具,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下

開發(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)化主要就是提高渲染的速度,避免過度繪制,從而減少畫面卡頓。主要優(yōu)化方法有:

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

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

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

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

三:內(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)部類沒有外部類的引用。如果內(nèi)部類要訪問外部類的成員,可以通過弱引用的方式。

常用的檢測(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í)有所幫助,也希望大家多多支持腳本之家。

相關(guān)文章

  • Android?Bugreport實(shí)現(xiàn)原理深入分析

    Android?Bugreport實(shí)現(xiàn)原理深入分析

    這篇文章主要介紹了Android?Bugreport實(shí)現(xiàn)原理,Bugreport主要用于分析手機(jī)的狀態(tài),在應(yīng)用開發(fā)中,程序的調(diào)試分析是日常生產(chǎn)中進(jìn)程會(huì)進(jìn)行的工作,Bugreport就是很常用的工具,需要的朋友可以參考下
    2024-05-05
  • Android編程中沉浸式狀態(tài)欄的三種實(shí)現(xiàn)方式詳解

    Android編程中沉浸式狀態(tài)欄的三種實(shí)現(xiàn)方式詳解

    這篇文章主要介紹了Android編程中沉浸式狀態(tài)欄的三種實(shí)現(xiàn)方式,簡(jiǎn)單描述了沉浸式狀態(tài)欄的概念、功能并結(jié)合實(shí)例形式詳細(xì)分析了Android實(shí)現(xiàn)沉浸式狀態(tài)欄的三種操作技巧與注意事項(xiàng),需要的朋友可以參考下
    2018-02-02
  • Android 中Lambda表達(dá)式的使用實(shí)例詳解

    Android 中Lambda表達(dá)式的使用實(shí)例詳解

    這篇文章主要介紹了 Android 中Lambda表達(dá)式的使用實(shí)例詳解的相關(guān)資料,需要的朋友可以參考下
    2017-05-05
  • Android應(yīng)用自動(dòng)跳轉(zhuǎn)到應(yīng)用市場(chǎng)詳情頁(yè)面的方法

    Android應(yīng)用自動(dòng)跳轉(zhuǎn)到應(yīng)用市場(chǎng)詳情頁(yè)面的方法

    最近在工作中遇到一個(gè)需求,推廣部門要求實(shí)現(xiàn)應(yīng)用自動(dòng)跳轉(zhuǎn)到應(yīng)用市場(chǎng)詳情頁(yè)面,通過查找一些資料,實(shí)現(xiàn)出來(lái)了,覺得有必要整理下方便以后或者有需要的朋友們參考借鑒,下面來(lái)一起詳細(xì)看看Android應(yīng)用自動(dòng)跳轉(zhuǎn)到應(yīng)用市場(chǎng)詳情頁(yè)面的方法吧。
    2016-12-12
  • 詳解Android微信登錄與分享

    詳解Android微信登錄與分享

    本篇文章主要對(duì)Android微信登錄與分享功能的實(shí)現(xiàn)進(jìn)行了介紹。具有很好的參考價(jià)值,下面跟著小編一起來(lái)看下吧
    2017-01-01
  • Android Intent基礎(chǔ)用法及作用詳解

    Android Intent基礎(chǔ)用法及作用詳解

    Intent是一種重要的消息傳遞對(duì)象,用于在不同組件(如活動(dòng)(Activity)、服務(wù)(Service)、廣播接收器(BroadcastReceiver)等)之間進(jìn)行通信和交互,本文介紹Android Intent基礎(chǔ)用法及作用,感興趣的朋友一起看看吧
    2024-07-07
  • Android實(shí)現(xiàn)單選與多選對(duì)話框的代碼

    Android實(shí)現(xiàn)單選與多選對(duì)話框的代碼

    這篇文章主要介紹了Android實(shí)現(xiàn)單選與多選對(duì)話框的代碼,非常不錯(cuò),具有參考借鑒價(jià)值,需要的朋友可以參考下
    2017-01-01
  • 25個(gè)實(shí)用酷炫的Android開源UI框架

    25個(gè)實(shí)用酷炫的Android開源UI框架

    本文為大家分享了25個(gè)實(shí)用酷炫的Android開源UI框架,靈活運(yùn)用這些UI框架可在日常工作中節(jié)省不少時(shí)間
    2018-04-04
  • Android入門教程之RecyclerView的具體使用詳解

    Android入門教程之RecyclerView的具體使用詳解

    RecyclerView是Android一個(gè)更強(qiáng)大的控件,其不僅可以實(shí)現(xiàn)和ListView同樣的效果,還有優(yōu)化了ListView中的各種不足。其可以實(shí)現(xiàn)數(shù)據(jù)縱向滾動(dòng),也可以實(shí)現(xiàn)橫向滾動(dòng)(ListView做不到橫向滾動(dòng))。接下來(lái)講解RecyclerView的用法
    2021-10-10
  • Android漂浮背景效果的制作方法

    Android漂浮背景效果的制作方法

    這篇文章主要為大家詳細(xì)介紹了Android漂浮背景效果的制作代碼,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2017-02-02

最新評(píng)論

沈丘县| 樟树市| 全椒县| 金堂县| 辽中县| 陈巴尔虎旗| 晋江市| 高青县| 怀宁县| 普洱| 阿勒泰市| 惠州市| 商河县| 吉首市| 昌邑市| 平谷区| 深州市| 太谷县| 当雄县| 邓州市| 晋城| 峨山| 湛江市| 安徽省| 沧源| 罗田县| 望奎县| 河间市| 科技| 宁强县| 海伦市| 思南县| 苍南县| 大荔县| 丰县| 巫山县| 河津市| 蒲城县| 九台市| 湖北省| 吴旗县|