PHP中文网2017-04-17 16:32:34
アプリ インターフェイスの遅延、メモリ リーク検出ライブラリ Leakcannary、MAT などについて BlockCanary を確認します。
巴扎黑2017-04-17 16:32:34
フリーズして終了した場合でも、ログがクラッシュなのか ANR なのかを確認する必要があります
クラッシュした場合は、バックトレースを見て修正してください
ANR の場合、主なことは、より長いログを記録することですメインスレッドで実行されたアクションをサブスレッドで実行
高洛峰2017-04-17 16:32:34
投稿者の主な問題は、時間のかかる操作がメイン スレッドのどこで使用されているかがわからないことです。その場合、StrictMode をオンにすると、注意が必要なコードをすぐに見つけることができるでしょう。 strict モードは、Android によって提供されるランタイム検出メカニズムであり、コードの実行時にいくつかの不規則な操作を検出するために使用されます。最も一般的なシナリオは、メイン スレッドの IO 操作を検出することです。
StrictMode には 2 つの次元の概念が含まれています。
ポリシー (policy): いくつかの不正な操作に対する StrictMode の検出戦略を指します。これは 2 つのカテゴリに分けられます。1 つは
特定のスレッド (ThreadPolicy) 用で、もう 1 つは
特定のスレッド (ThreadPolicy) 用です。もう 1 つのカテゴリは、仮想マシンのすべてのオブジェクト (VMPolicy) 用です。
ペナルティ: 赤いボックスの描画、ログの印刷、ダイアログ ボックスの表示、プロセスの強制終了など、不正な操作を発見した後に StrictMode が罰する方法を指します。
Android には、ディスクの読み取りと書き込み、ネットワーク アクセス、システム
プロセスの起動など、多くのキー コード パスに StrictMode が埋め込まれています。 StrictMode は、設定されたポリシーに従ってチェックし、コードの実行中にプロセスに
違反操作がある場合、そのプロセスは「処罰」されます。
たとえば、次のコードでは、違反がある場合、不正な操作の場所とコール スタック情報が logcat に出力されます。
android.app.Application の onCreate は StickMode をオンにします:
リーリー
黄舟2017-04-17 16:32:34
1. クライアントは、OOM はテストでバグが発生するのを待たずに事前にセルフテストして解決できることを推奨しています。
build.gradle に参照を追加します。コンパイルごとに異なる参照が使用されます。
アプリケーション内:
リーリー2. Android Studio で Java ヒープのダンプを使用して hprof ファイルをエクスポートすることもできます。「hprof-conv xxxxx.hprof yyyyy.hprof」コマンドを使用して変換し、MAT で分析します (xxxxx.hprof)。は元のファイル、yyyyy .hprof は変換されたファイルです)。