1. 程式人生 > >[Android工具之-LeakCanary的使用]

[Android工具之-LeakCanary的使用]

   LeakCanary是一款針對java/android開發的記憶體洩露檢測工具,可以幫助開發人員在開發過程中提前識別到記憶體洩露問題。

    LeakCanary在AudioStudio中的使用:

    1. 在模組的配置檔案build.gradle中增加對LeakCanary的依賴,使用1.5.4及以上版本,使用低版本可能會有一些相容性的問題

dedependencies {
    debugCompile 'com.squareup.leakcanary:leakcanary-android:1.5.4'
    releaseCompile 'com.squareup.leakcanary:leakcanary-android-no-op:1.5.4'
}

    2. 在Application中初始化LeakCanary,並獲取RefWatcher物件,如果沒有自定義Application,需要先新增。在呼叫install方法時會自動生成一個ActivityRefWatcher物件,可以自動檢測所有Activity的洩露

public class MyApplication extends Application {

    private RefWatcher mRefWatcher = null;

    @Override
    public void onCreate() {
        super.onCreate();
        if (LeakCanary.isInAnalyzerProcess(getApplicationContext())) {
            return;
        }

        mRefWatcher = LeakCanary.install(this);
    }

    public static RefWatcher getRefWatcher(Context context) {
        MyApplication application = (MyApplication)context.getApplicationContext();
        return application.mRefWatcher;
    }
}

3.其它物件,未在自動檢測之列的,則需要主動呼叫watch方法註冊,例如Fragment

@Override
protected void onDestroy() {
    super.onDestroy();
    MyApplication.getRefWatcher(this).watch(this);
}

參考文章:

LeakCanary在Eclipse中的使用(目前在使用中還有報錯,還未成功)

1、下載為了eclipse使用專門修改過結構的leakCanary工程,建立一個庫工程
    https://github.com/cheyiliu/leakcanary/tree/leakcannary_eclipse_project
2、將庫工程新增到你的目標工程的庫引用
3、複製Activity、Service和permission相關的配置到你目標工程的AndroidManifest.xml檔案
4、參考如下指導進行使用
    https://github.com/square/leakcanary#how-do-i-use-it

相關推薦

[Android工具-LeakCanary的使用]

   LeakCanary是一款針對java/android開發的記憶體洩露檢測工具,可以幫助開發人員在開發過程中提前識別到記憶體洩露問題。     LeakCanary在AudioStudio中的使用:     1. 在模組的配置檔案build.gradle中增加對Le

Android工具實現截圖和禁止截圖

轉載地址:http://blog.csdn.net/xietansheng/article/details/52689384; 1. 應用內的程式碼截圖(獲取View的快照) Android的View類中提供了獲取控制元件繪製快取的方法,這種截圖的方式僅限於應用內

Android工具解決安卓6.0以上版本不能讀取外部儲存許可權的問題

/**      * 解決安卓6.0以上版本不能讀取外部儲存許可權的問題      * @param activity      * @return      */     public static boolean isGrantExternalRW(Activity activity) {        

Android 工具系統五層框架體系結構詳解

從下圖中可以很清楚得看出,整個架構可以分為五大層次: System Apps:即系統應用層,這一層中都是我們使用手機時都會直接接觸到的各種應用。 Java API Framework:即 Java 介面框架層,這一層是為了上層應用提供各種介面。 Native C/C

Android工具把int型別整數毫秒值轉換為時間分秒格式

importjava.util.Formatter; import java.util.Locale; public class Utils { private StringBuilder mFormatBuilder; private Formatter

android工具 aapt

一直用android開發,確不瞭解android SDK自帶的工具,確實是欠缺,於是就自己補了android相關工具的使用知識. aapt 是什麼?aapt即Android Asset Packaging Tool   雖然是針對android的apk的工具,但是任何zi

Android開發中有用工具--Log工具

util lena 日誌 日誌信息 stat 們的 常常 我們 imp 在開發的過程中。我們常常會使用Log來輸出日誌,幫助我們來調試程序 可是有時候並不能全然滿足我們的須要 ,比方我想知道這個日誌信息是來自於哪一個包 哪一個類 所以我們封裝一個這個Log類。方便我們的

Android內存優化8 內存檢測工具2 LeakCanary——直白的展現Android中的內存泄露

release title ngs rotation text this outer android中 class 之前碰到的OOM問題,終於很直白的呈現在我的眼前:我嘗試了MAT,但是發現不怎麽會用。直到今天終於發現了這個新工具: 當我們的App中存在內存泄露時會在通知

Android逆向旅---Hook神器家族的Frida工具使用詳解

常見 fin () 文件的 數值 isp extern dex文件 所有 一、前言 在逆向過程中有一個Hook神器是必不可少的工具,之前已經介紹了Xposed和Substrate了,不了解的同學可以看這兩篇文章:Android中Hook神器Xposed工具介紹 和 Andr

Android中APK簽名工具jarsigner和apksigner詳解

內容 value signature align light 文件簽名 item als release 一.工具介紹 jarsigner是JDK提供的針對jar包簽名的通用工具, 位於JDK/bin/jarsigner.exe apksigner是Google官方提

安卓學習筆記 -- (安裝環境) Android Studio安裝配置、環境搭建詳細步驟及基本使用 Android Studio和SDK官方開發工具下載 Android Studio教程從入門到精通 Android開發-第一個程式:HelloWorld!

1、下載Android Studio安裝配置、環境搭建詳細步驟及基本使用    https://www.cnblogs.com/yanglh6-jyx/p/Android_AS_Configuration.html https://blog.csdn.net/k491022087/ar

Android學習基礎知識三(Android日誌工具Log的使用)

Android中的日誌工具Log(android.util.Log):  1、列印日誌的方法(按級別從低到高排序):   Log.v():級別verbose,用於列印最為煩瑣,意義最小的日誌   Log.d():級別debug,列印一些除錯資訊,用於列印一些對你除錯程式和分析問題有幫助的資訊

Android 記憶體洩漏LeakCanary

導言: 記憶體管理是android開發效能中重要的一環,而leakCanary是Square開源框架,是一個Android記憶體洩露檢測庫,是個優秀的 記憶體洩露檢測工具,通過它大大降低oom的出現,提高app的質量 釋義: 記憶體洩漏:物件在有限生命週期內還持有引用,沒有被回

Android開發訪問WebService的工具

Android中使用WebService通訊,下面對訪問WebService的工具類進行記錄 package com.wjy.project.railway.tools; import android.os.Handler; import android.os.Message;

Android 效能分析工具TraceView

Android 效能分析工具之TraceView TraceView簡介 Traceview本身是一個數據分析工具, Android 平臺將Traceview作為 Android SDK內建的一個工具,主要用於載入 Android 應用程式所生成的trace檔案並且分析trace檔案採集到的資料裡面

Android 中效能優化工具Hierarchy Viewer使用總結

概述 Hierarchy Viewer提供了一個視覺化的介面來觀測佈局的層級, 讓我們可以優化佈局層級, 刪除多餘的不必要的View層級, 提升佈局速度. 應用Hierarchy Viewer 目前Hierarchy Viewer只能在root過的機器才能使用. 主要是在沒有ro

AndroidLeakCanary使用教程

安卓開發,新增使用最常用的記憶體洩漏檢測LeakCanary。記憶體洩漏同樣也是安卓面試和開發中最常見的問題之一。 一直在使用這個檢測記憶體洩漏,在此總結一下。 記憶體洩漏的原因: 1.在

Android開發小工具:Chrome Custom Tabs

參考文章 官方文件 官方原始碼 http://qq157755587.github.io/2016/08/12/custom-tabs-best-practices/ https://juejin.im/entry/586f089c61ff4b006d29f9c0 一

Android探索旅(第十篇) 推薦幾款非常好用的Bug除錯工具

首推 騰訊Bugly - 一種愉悅的開發方式是一款非常方便幫組開發者實時的檢測App的異常及應用統計,還有更加強大的應用更新及熱修復,讓你的App 6飛起 官網地址:https://bugly.qq

我的Android NDK旅(四),android串列埠通訊-mac+串列埠除錯工具

一些關於串列埠的知識 什麼是串列埠 串列埠是計算機上一種非常通用裝置通訊的協議,不要與通用序列匯流排Universal Serial Bus(USB)混淆。大多數計算機包含兩個基於RS232的串列埠。串列埠同時也是儀器儀表裝置通用的通訊協議;很多GP