2016-12-31 3 views
4

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

ли мой класс приложения должны быть явно называется?

No.

Как я знаю, если это все работает?

Утечка чего-то намеренно. Например, назначьте свой экземпляр активности запуска в поле static.

+0

Я пробовал, но, возможно, я сделал это неправильно. Я искал общие утечки памяти и пробовал эти два. Без изменений. Должно быть, я сделал что-то не так. Что я должен ожидать от утечки, если он работает правильно? – seekingStillness

+0

@seeking_stillness: «Я искал общие утечки памяти и пробовал эти два» - LeakCanary не обнаруживает произвольные утечки памяти из коробки. Единственное, что автоматически обнаружит, - это утечка активности. Вот почему я предположил, что вы протекаете из-за действия, назначая его в поле 'static'. «Что я должен ожидать от утечки, если он работает правильно?» - после того, как действие будет уничтожено (например, вы нажмете BACK), через несколько секунд, если LeakCanary полагает, что уничтоженная деятельность была просочилась, вы увидите пользовательский «Toast», указывающий, что LeakCanary сбрасывает кучу. – CommonsWare

+1

@seeking_stillness: спустя минуту или около того, если произошла утечка, вы должны увидеть «уведомление» в строке состояния. – CommonsWare

Смежные вопросы