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();
}
}
我试过了,但也许我做错了。我搜索了一些常见的内存泄漏,并尝试了这两种。不用找了。我一定做错了什么。如果工作正常,我应该期望从泄漏的金丝雀身上看到什么? – seekingStillness
@seeking_stillness:“我搜索了常见的内存泄漏并尝试了这两个”--LeakCanary没有检测到任何内存泄漏。它会自动检测的唯一事情是泄漏的活动。这就是为什么我建议你通过将一个分配给一个'static'字段来泄漏一个活动。 “如果泄漏金丝雀工作正常,我应该期望看到什么?” - 在活动被破坏后(例如,您按BACK),几秒钟后,如果LeakCanary认为您销毁的活动已泄漏,您将看到自定义的“Toast”,表示LeakCanary正在倾倒堆。 – CommonsWare
@seeking_stillness:然后,一分钟后,如果发生泄漏,您应该在状态栏中看到一个“通知”。 – CommonsWare