Я считаю, что успешно установлен 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