亚洲乱码中文字幕综合,中国熟女仑乱hd,亚洲精品乱拍国产一区二区三区,一本大道卡一卡二卡三乱码全集资源,又粗又黄又硬又爽的免费视频

Android性能優(yōu)化及性能優(yōu)化工具

 更新時(shí)間:2022年05月26日 11:22:33   作者:冬日毛毛雨  
這篇文章主要給大家分享的是Android性能優(yōu)化及性能優(yōu)化工具,下面文字會(huì)圍繞Android性能優(yōu)化的相關(guān)資料詳細(xì)的展開(kāi)具體內(nèi)容,需要的朋友可以參考一下,希望對(duì)大家有所幫助

 性能優(yōu)化的幫助工具:

  • MAT,
  • Memory Monitor(屬于AndroidMonitor中一個(gè)模塊),
  • HeapTool(查看堆信息),
  • Allaction Tracking
  • LeakCanary
  • Lint工具

1.Allaction Tracking

(1)追蹤

在內(nèi)存圖中點(diǎn)擊途中箭頭的部分,啟動(dòng)追蹤,再次點(diǎn)擊就是停止追蹤,隨后自動(dòng)生成一個(gè)alloc結(jié)尾的文件,這個(gè)文件就記錄了這次追蹤到的所有數(shù)據(jù),然后會(huì)在右上角打開(kāi)一個(gè)窗口。展示和第一種方式有點(diǎn)區(qū)別,各有所長(zhǎng),他有兩種展現(xiàn)方式。

(2)分類(lèi)我們的內(nèi)存分配

紅框中:

Group by Method:用方法來(lái)分類(lèi)我們的內(nèi)存分配,默認(rèn)會(huì)以Group by Method來(lái)組織

Group by Allocator:用內(nèi)存分配器來(lái)分類(lèi)我們的內(nèi)存分配

我們用 Group by Allocator的方式來(lái)查看一下:

可以看到我們自己包中,每一個(gè)類(lèi)的內(nèi)存分配次數(shù)和分配的大小。如果我們想看內(nèi)存分配的實(shí)際在源碼中發(fā)生的地方,可以選擇需要跳轉(zhuǎn)的對(duì)象,點(diǎn)擊該按鈕就能發(fā)現(xiàn)我們的源碼。

(3)查看統(tǒng)計(jì)圖

想看某個(gè)圖層詳細(xì)內(nèi)存分配,則雙擊速表左鍵進(jìn)入下一圖層:

內(nèi)存分配情況

通過(guò)[Layout方式查看更直觀:

2.LeakCanary

(1)配置

Getting started
In your build.gradle:
 dependencies {
   debugCompile 'com.squareup.leakcanary:leakcanary-android:1.5.2'
   releaseCompile 'com.squareup.leakcanary:leakcanary-android-no-op:1.5.2'
 }
In your Application class:

public class ExampleApplication extends Application {

  @Override public void onCreate() {

    super.onCreate();

    if (LeakCanary.isInAnalyzerProcess(this)) {

      // This process is dedicated to LeakCanary for heap analysis.

      // You should not init your app in this process.

      return;

    }

    LeakCanary.install(this);

    // Normal app init code...

  }

}

(2)制造一個(gè)單例內(nèi)存泄漏的點(diǎn)

public class CommonUtils {

    private static CommonUtils instance;

    private Context context;

    private CommonUtils(Context context) {

        this.context = context;

    }
    public static CommonUtils getInstance(Context context) {

        if (instance == null) {

            instance = new CommonUtils(context);

        }

        return instance;

    }

}

 protected void onCreate(Bundle savedInstanceState) {

        super.onCreate(savedInstanceState);

        setContentView(R.layout.activity_main);

        CommonUtils commonUtils = CommonUtils.getInstance(this);

    }

(3)LeakCanary 發(fā)出內(nèi)存泄漏通知

(4)LeakCanary 分析

LeakCanary 本質(zhì)上還是用命令控制生成hprof文件分析檢查內(nèi)存泄漏。

3.Lint分析工具

Android Studio很方便,很好用,你可以試試點(diǎn)擊AS菜單欄上面的Analyze選項(xiàng),然后點(diǎn)擊Inspection Scope,然后選擇你需要檢測(cè)的范圍(比如整個(gè)項(xiàng)目),然后AS會(huì)自動(dòng)彈出下圖所示的面板

可能出現(xiàn)內(nèi)存泄漏的類(lèi):

檢測(cè)資源文件是否有沒(méi)有用到的資源。

檢測(cè)常見(jiàn)內(nèi)存泄露

安全問(wèn)題SDK版本安全問(wèn)題

是否有費(fèi)的代碼沒(méi)有用到

代碼的規(guī)范---甚至駝峰命名法也會(huì)檢測(cè)

自動(dòng)生成的羅列出來(lái)

沒(méi)用的導(dǎo)包

可能的bug

到此這篇關(guān)于Android性能優(yōu)化及性能優(yōu)化工具的文章就介紹到這了,更多相關(guān)Android性能優(yōu)化內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

最新評(píng)論