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

使用Android Studio檢測(cè)內(nèi)存泄露(LeakCanary)

 更新時(shí)間:2016年12月01日 15:41:39   作者:zxc123e  
本篇文章主要介紹了用Android Studio檢測(cè)內(nèi)存泄露的問題的解決方法,Android Studio在為我們提供了良好的編碼體驗(yàn)的同時(shí),也提供了許多對(duì)App性能分析的工具,下面我們一起來了解一下。

內(nèi)存泄露,是Android開發(fā)者最頭疼的事。可能一處小小的內(nèi)存泄露,都可能是毀千里之堤的蟻穴。 怎么才能檢測(cè)內(nèi)存泄露呢?
AndroidStudio 中Memory控件臺(tái)(顯示器)提供了一個(gè)內(nèi)存監(jiān)視器。我們可以通過它方便地查看應(yīng)用程序的性能和內(nèi)存使用情況,從而也就可以找到需要釋放對(duì)象,查找內(nèi)存泄漏等。

熟悉Memory界面

打開日志控制臺(tái),有一個(gè)標(biāo)簽Memory ,我們可以在這個(gè)界面分析當(dāng)前程序使用的內(nèi)存情況。

運(yùn)行要監(jiān)控的程序(APP)后,打開Android Monitor控制臺(tái)窗口,可以看到Memory控制臺(tái)。 點(diǎn)擊Memory控制臺(tái)上Enable按鈕,Memory控制臺(tái)開始顯示正在運(yùn)行時(shí)程序的Memory使用情況。如上圖中顯示:

AndroidStudio Memory的功能:

  • 啟動(dòng)與關(guān)閉Memory監(jiān)測(cè)按鈕
  • 手動(dòng)觸發(fā)GC按鈕
  • dump java heap 按鈕,點(diǎn)擊Android Studio就開始干活了,成功后會(huì)自動(dòng)打開 hprof文件。
  • start(stop) allocation tracking按鈕先點(diǎn)擊一次,然后會(huì)看到Memory Recorder開始轉(zhuǎn)動(dòng),然后自己開始在APP上面做相應(yīng)的操作。在合適的時(shí)間再點(diǎn)一次,結(jié)束記錄。

如何檢測(cè)內(nèi)存泄露

我們點(diǎn)擊dump Java heap 這個(gè)按鈕,APP會(huì)Freeze住。大概幾十秒后,

dump成功后會(huì)自動(dòng)打開 hprof文件。

如果我們想了解內(nèi)存分配更詳細(xì)的情況,可以使用Allocation Traker來查看內(nèi)存到底被什么占用了。 點(diǎn)擊Starg Allocation Tracking按鈕。開始分配追蹤,過一些時(shí)間后,點(diǎn)擊Stop Allocation Tracking結(jié)束追蹤的位置。停止追蹤后 .alloc文件會(huì)自動(dòng)打開。

當(dāng)你想查看某個(gè)方法的源碼時(shí),右鍵選擇的方法,點(diǎn)擊Jump to source就可以了。

使用LeakCanary

LeakCanary是square公司推出的一款簡(jiǎn)單粗暴的檢測(cè)內(nèi)存泄漏的工具。

LeakCanary會(huì)檢測(cè)應(yīng)用的內(nèi)存回收情況,如果發(fā)現(xiàn)有垃圾對(duì)象沒有被回收,就會(huì)去分析當(dāng)前的內(nèi)存快照,也就是上邊MAT用到的.hprof文件,找到對(duì)象的引用鏈,并顯示在頁面上。這款插件的好處就是,可以在手機(jī)端直接查看內(nèi)存泄露的地方,可以輔助我們檢測(cè)內(nèi)存泄露。

使用: 

在build.gradle文件中添加,不同的編譯使用不同的引用:

dependencies { 
  debugCompile 'com.squareup.leakcanary:leakcanary-android:1.3'
  releaseCompile 'com.squareup.leakcanary:leakcanary-android-no-op:1.3'
}

在應(yīng)用的Application onCreate方法中添加LeakCanary.install(this),如下:

public class ExampleApplication extends Application {

 @Override public void onCreate() {
  super.onCreate();
  LeakCanary.install(this);
 }
}

應(yīng)用運(yùn)行起來后,LeakCanary會(huì)自動(dòng)去分析當(dāng)前的內(nèi)存狀態(tài),如果檢測(cè)到泄漏會(huì)發(fā)送到通知欄,點(diǎn)擊通知欄就可以跳轉(zhuǎn)到具體的泄漏分析頁面。

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

相關(guān)文章

  • android實(shí)現(xiàn)數(shù)獨(dú)游戲機(jī)器人

    android實(shí)現(xiàn)數(shù)獨(dú)游戲機(jī)器人

    這篇文章主要為大家詳細(xì)介紹了android實(shí)現(xiàn)數(shù)獨(dú)游戲機(jī)器人,文中安裝步驟介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2022-03-03
  • Android實(shí)現(xiàn)系統(tǒng)的桌面圖標(biāo)文字的雙行顯示效果

    Android實(shí)現(xiàn)系統(tǒng)的桌面圖標(biāo)文字的雙行顯示效果

    這篇文章主要介紹了Android實(shí)現(xiàn)系統(tǒng)的桌面圖標(biāo)文字的雙行顯示效果,非常不錯(cuò),具有一定的參考借鑒價(jià)值,需要的朋友參考下吧
    2018-10-10
  • Android Studio真機(jī)無線連接USB設(shè)備調(diào)試運(yùn)行詳解流程

    Android Studio真機(jī)無線連接USB設(shè)備調(diào)試運(yùn)行詳解流程

    你在Android Studio寫app時(shí)是否也有想過如果可以不用數(shù)據(jù)線連接手機(jī)調(diào)試運(yùn)行就好了?如果需要取出數(shù)據(jù)線插接的話我肯定是嫌麻煩的,但是模擬器有時(shí)候需要測(cè)試一些需要硬件支持的功能時(shí)又不管用,所以最好的測(cè)試還是在真機(jī)上,本篇教你扔掉數(shù)據(jù)線來無線調(diào)試
    2021-11-11
  • Android Studio引入FFmpeg的方法

    Android Studio引入FFmpeg的方法

    這篇文章主要介紹了Android Studio引入FFmpeg的方法,本文通過實(shí)例代碼給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2020-03-03
  • Android實(shí)現(xiàn)斷點(diǎn)多線程下載

    Android實(shí)現(xiàn)斷點(diǎn)多線程下載

    這篇文章主要為大家詳細(xì)介紹了Android實(shí)現(xiàn)斷點(diǎn)多線程下載,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2018-12-12
  • 兩個(gè)surfaceView實(shí)現(xiàn)切換效果

    兩個(gè)surfaceView實(shí)現(xiàn)切換效果

    這篇文章主要為大家詳細(xì)介紹了兩個(gè)surfaceView實(shí)現(xiàn)切換效果,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2019-11-11
  • Android登錄的簡(jiǎn)單處理

    Android登錄的簡(jiǎn)單處理

    這篇文章主要介紹了Android登錄的簡(jiǎn)單處理,一個(gè)簡(jiǎn)易的Demo模擬登錄情況和未登錄情況下的界面跳轉(zhuǎn)處理,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2017-03-03
  • 詳解Android SpannableString多行圖文混排的應(yīng)用實(shí)戰(zhàn)

    詳解Android SpannableString多行圖文混排的應(yīng)用實(shí)戰(zhàn)

    本篇文章主要介紹了Android SpannableString多行圖文混排的應(yīng)用實(shí)戰(zhàn),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2017-12-12
  • Kotlin協(xié)程flowOn與線程切換超詳細(xì)示例介紹

    Kotlin協(xié)程flowOn與線程切換超詳細(xì)示例介紹

    這篇文章主要介紹了Kotlin協(xié)程flowOn與線程切換,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2022-09-09
  • 非常實(shí)用的側(cè)滑刪除控件SwipeLayout

    非常實(shí)用的側(cè)滑刪除控件SwipeLayout

    這篇文章主要為大家詳細(xì)介紹了非常實(shí)用的側(cè)滑刪除控件SwipeLayout,類似于QQ側(cè)滑點(diǎn)擊刪除效果,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2018-08-08

最新評(píng)論

溧水县| 文化| 延庆县| 平遥县| 石狮市| 准格尔旗| 南木林县| 濮阳县| 广南县| 阜康市| 修文县| 普定县| 通许县| 宾阳县| 民县| 繁昌县| 庆安县| 博客| 名山县| 湖南省| 乐至县| 赤壁市| 淮南市| 福海县| 彭州市| 盘山县| 米泉市| 阿城市| 甘孜县| 邳州市| 达州市| 开封县| 那曲县| 海安县| 汤阴县| 开阳县| 稻城县| 宝兴县| 南郑县| 定日县| 延川县|