4
私はLeakCanaryを正常にインストールしたと信じています。私のリークキャナリーは機能していますか?知る方法?
私は、build.gradleファイルにdebug、release、およびtestの依存関係を追加しました。
私はアプリケーションクラスに必要なファイルを追加しました。必要に応じてインポートします。マニフェストにアプリケーションクラスが正しく追加されていることを確認しました。私のアプリケーションクラスを明示的に呼び出す必要がありますか?
<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つを試しました。変化なし。私は間違ったことをしたに違いない。リーク・カナリアが正常に機能しているとすれば、何が見えるはずですか? – seekingStillness
@seeking_stillness:「一般的なメモリリークを検出し、その2つを試しました」 - LeakCanaryは、任意のメモリリークを検出しません。自動的に検出されるのは、漏洩したアクティビティだけです。これは、あなたが 'static 'フィールドに1つを割り当てることによってアクティビティをリークすることを提案した理由です。 「正常に機能していると、リークカナリアからどのように見えたらいいでしょうか?」 - アクティビティが破棄された後(例えば、BACKを押すと)、数秒後に、あなたが破壊したアクティビティが漏洩したとLeakCanaryが信じると、LeakCanaryがヒープをダンプしていることを示すカスタムのToastが表示されます。 – CommonsWare
@seeking_stillness:その後、1分ほどでリークがあった場合は、ステータスバーに「通知」が表示されます。 – CommonsWare