2016-12-31 72 views
4

我相信已经成功安装了LeakCanary。我的leakcanary工作吗?如何知道?

我将调试,发布和测试依赖项添加到build.gradle文件中。

我将必要的文件添加到我的应用程序类。根据需要导入。确认应用程序类已正确添加到清单。我的应用程序类是否需要显式调用?

<application 
    android:name=".MyApplication" 
    android:allowBackup="true" 
    android:icon="@mipmap/ic_launcher" 

我在模拟器上运行我的应用程序,没有看到任何不同。我监视Android监视器并没有看到任何区别。我如何知道它是否全部正常工作?我已经分享了我的应用程序类。

import android.app.Application; 
import android.content.res.Configuration; 
import com.squareup.leakcanary.LeakCanary; 

public class MyApplication extends Application { 

@Override 
public void onCreate() { 
    super.onCreate(); 

    if (LeakCanary.isInAnalyzerProcess(this)) { 
     return; 
    } 
    LeakCanary.install(this); 
} 

@Override 
public void onConfigurationChanged(Configuration newConfig) { 
    super.onConfigurationChanged(newConfig); 
} 

@Override 
public void onLowMemory() { 
    super.onLowMemory(); 
} 

}

回答

2

请问我的应用程序类需要显式调用?

我怎么知道是否一切正常?

故意泄漏东西。例如,将您的启动器活动实例分配给static字段。

+0

我试过了,但也许我做错了。我搜索了一些常见的内存泄漏,并尝试了这两种。不用找了。我一定做错了什么。如果工作正常,我应该期望从泄漏的金丝雀身上看到什么? – seekingStillness

+0

@seeking_stillness:“我搜索了常见的内存泄漏并尝试了这两个”--LeakCanary没有检测到任何内存泄漏。它会自动检测的唯一事情是泄漏的活动。这就是为什么我建议你通过将一个分配给一个'static'字段来泄漏一个活动。 “如果泄漏金丝雀工作正常,我应该期望看到什么?” - 在活动被破坏后(例如,您按BACK),几秒钟后,如果LeakCanary认为您销毁的活动已泄漏,您将看到自定义的“Toast”,表示LeakCanary正在倾倒堆。 – CommonsWare

+1

@seeking_stillness:然后,一分钟后,如果发生泄漏,您应该在状态栏中看到一个“通知”。 – CommonsWare

相关问题