お気に入りのアプリが突然クラッシュしたことはありませんか? 開発者が何が起こったのかをデバッグするのを手伝いたいですか? Logcat をキャプチャしてフィルタリングする方法については、ガイドを参照してください。
2013年6月30日、ザグレブのバン・イェレシッチ広場でクロアチアのEU加盟を祝い、EUの旗を振るクロアチア人たち。 旧ユーゴスラビア共和国の血なまぐさい独立戦争が終わってから約20年が経った日曜深夜(グリニッジ標準時22時)、数万人のクロアチア人がクロアチアの欧州連合加盟を応援した。 AFP写真/ストリンガー
それは私たち全員に一度は起こったことがあるでしょう。 それを認めることは恥ずかしいことではありません。 時々、Android アプリがクラッシュすることがあります。 Google マップを実行するために完全にストックされたデバイスを使用しているか、Xowned モジュールを備えた高度にカスタマイズされた ROM を使用しているかに関係なく、 Google ハングアウトを強化する、アプリケーションのクラッシュやその他の問題が発生し、かなりの障害になる可能性があります。 これは、当社の Web サイトにある多くのような小規模な調整やアプリケーションの開発に特に当てはまります。 問題が発生した場合、ユーザーがクラッシュの性質について開発者に提供できる最も建設的で役立つ洞察の 1 つは、 ログキャット. 開発者にとっては非常に役立ちますが、この情報を入手することは一般ユーザーにとってはやや困難に思えるかもしれません。
通常、関与する ADB を介したコマンドライン ツール、コマンド ラインの経験がほとんどない、またはまったくない多くのユーザーにとって、Logcat は手の届かないものです。 ただし、特定のアプリのリリースにより、Logcat の取得と送信における ADB コマンドの関与が排除、または少なくとも大幅に削減され、画面を数回タップするだけで簡単に実行できるようになりました。 開発者の開発を支援するという私たちの終わりのない使命の中で、Logcat の送信方法をユーザーに教えるための初心者向けガイドを紹介します。
Logcat とは何ですか? Logcat を取得するにはどうすればよいですか?
Logcat は、すべてのシステム イベントのログを取得するために使用される ADB シェル ツールです。 これには、エラー、警告、スタック トレース、および一般的なシステムの出来事が含まれます。 エラーが発生した場合、障害の原因を示す重要な情報がこのログに出力されるため、トラブルシューティングに非常に役立ちます。 通常、これらは ADB コマンドを通じて取得およびフィルタリングされます。 ただし、次のようなアプリ
ログキャット, カタログ、そしてこの記事で選んだツールは、 マトログは、これらのコマンド ツールを Play ストアでダウンロード可能なアプリの GUI にコンパイルすることで、ユーザーの労力を節約しました。前述したように、Logcat の収集に使用しているのは Matlog です。 飾り気のないユーザーフレンドリーなインターフェイスで選ばれた Matlog は、XDA ジュニア メンバーによって作成されました プラスキューブ そしてそれに基づいて ノーラン・ローソンの オープンソース アプリ Catlog。 カタログのように, マトログは、 ソースからコンパイルされた、 または Google Play ストアから無料でダウンロード. root 化するとセットアップ中の手順をスキップできますが、 Logcat の収集に root アクセスは必要ありません. デバイスが root 化されていない場合、1 つの ADB シェル コマンドにより、デバイスのログを読み取るためのアクセス権がアプリケーションに付与されます。 マシンに ADB をまだセットアップしていませんか? 問題ありません。次の手順に従って起動して実行してください。
注: Huawei 社の携帯電話では、Logcat 出力が完全に無効になっています。 非表示の設定を変更する必要があります このガイドの残りの部分に進む前に、
ADBのセットアップ
初め、 ADB バイナリを Google から直接ダウンロードします 特定の OS 用のファイルを作成し、コンピュータ上の別のディレクトリに抽出します。 次、 適切なドライバーをインストールする あなたの特定の携帯電話に。 次に、[設定] --> [開発者向けオプション] で [USB デバッグ] を有効にします。 開発者向けオプションが表示されない場合は、[設定] --> [端末情報] に移動し、[ビルド番号] を 7 回タップして有効にする必要があります。 最後に、ADB バイナリと同じディレクトリでコマンド プロンプトを起動し (右クリック --> [ここでコマンド プロンプトを開く])、次のコマンドを実行して、ADB が動作していることを確認します。
adb devices
デバイスのシリアル番号が表示されれば (未承認であることが示されていない場合)、あなたは成功です。 コンピュータに ADB アクセスを許可するかどうかを尋ねるポップアップが携帯電話に表示されたら、「はい」と答えてください。 どちらも起こらない場合は、コンピュータ/携帯電話を再起動し、コンピュータに再接続してみてください。 それ以外の場合は、ドライバーを再インストールしてみてください。
Matlog のセットアップ
これで ADB が起動して実行できるようになったので (できれば)、Matlog で Logcat をキャプチャできるようにするために必要なのは、ADB シェルで次のコマンドを発行することだけです。 繰り返しますが、デバイスがすでにルート化されている場合は、このコマンドを実行する必要はありません。これはルート化されていない電話にのみ必要です。
adbshellpmgrantcom.pluscubed.matlogandroid.permission.READ_LOGS
有効にして開くと、Matlog はシステム イベントをリアルタイムで表示します。 一時停止ボタンをタップしてこれを停止し、省略記号メニューをタップして「クリア」を選択して無関係なデータのフィールドを取り除くことができます。 ログ サイズを削減するために、誤動作しているアプリをログに記録する準備としてこれを行うことをお勧めします。 手順を短縮し、ログの長さをさらに短縮するには、右に示すように、ホーム画面で問題のクラッシュしているアプリケーションの隣に Matlog ウィジェットを追加します。 この場合には、 Apktool X は私たちの誤動作しているアプリです。
ウィジェットをタップすると、ログに名前を付けて記録を開始できます。 次に、ログの記録を開始した直後に誤動作を再現するだけで、問題に関連する情報が Logcat に書き込まれます。 問題が再現されたら、ウィジェットをもう一度タップするだけでログの記録が完了します。
これを実行すると、Matlog が開き、キャプチャされたログが表示されます。 省略記号をタップし、「送信」を選択すると、一般的なデバイス情報とともにログがテキスト ファイルの添付として電子メールで送信されます。 それでおしまい! Logcat は正常にキャプチャされ、送信されました。 オーキド教授へ.
上記の例では、Apktool X がクラッシュした理由は、デバイスが root 化されていないためであることがわかります。 ドー! 完全にそうすべきだった 記事を読む アプリを使用する前に。
簡単すぎた
もちろん、すべての問題を簡単に把握できるわけではありません。 場合によっては、起動に関する問題や、長期間にわたる問題をキャプチャするには、アプリのさまざまな機能が必要になる場合があります。 このような場合は、Matlog をバックグラウンドで実行し (一時停止したりクリアしたりしないでください)、ログ レベルとフィルター関数を利用してデータを解析するとよいでしょう。
通常、関連データを収集するために必要な唯一の方法ではありませんが、状況によっては、 より多くのコンテキスト – これらの各ツールを長いログに対して使用して、データを並べ替えて指定できます。 開発者。 当然のことながら、これはエラーの性質と開発者の要求によって異なります。 これらのいずれかを使用するには、Matlog を実行して問題を再現し、Matlog に戻り、ドット メニューをタップして、これら 2 つの並べ替え方法のいずれかを選択します。
ログレベル
Matlog によって簡素化されたもう 1 つの ADB コマンドであるログ レベル機能を使用すると、特定の種類のシステム イベントおよびメッセージを表示できます。 以下は、Android Developers Web サイトで説明されているさまざまなメッセージ タイプの簡単な説明であり、Matlog のラベルに一致するように色分けされています。
優先度の低いものから高いものまで:
- V: 詳細 (一般的なシステム イベント)
- D: デバッグ
- 私: 情報
- W: 警告
- E: エラー
- F: 致命的
- S: サイレント (最も優先度が高く、何も印刷されません)
ログ レベル機能には、これらのメッセージの対応するリストがあり、各優先レベルでログをフィルタリングできます。 ログ レベルを選択すると、その優先レベル以上のイベントのみが表示されるため、ログ レベルの識別とグループ化が容易になります。 場合によっては数千行に及ぶテキスト行を手動でスクロールする必要はなく、 それで。
フィルター
フィルタを使用してログ データを並べ替えることもできます。 キーワード検索を開始すると、ユーザーはこのキーワードを明示的に参照するメッセージのみを表示できるようになります。 有用なキーワードには、すべての優先レベルの用語のインスタンスが含まれるため、誤動作しているアプリの名前や「エラー」という単語が含まれる場合があります。 ではない すべての「ログ レベル」エラーが含まれます。
開発者がアプリケーションのデバッグを支援するときに、特定のキーワードを頻繁に検索/フィルタリングしていることに気付いた場合 (または、 開発者は、検索できる一意のログ イベントを明示的に作成しました)、その後で戻ることができるフィルターを保存することもできます。 未来。 これは、何を探しているのかが事前にわかっている場合に便利です。開発者と協力して作業している場合、これは頻繁に起こります。
デバッグの準備はできましたか?
そうではないかもしれないが、 今 Android アプリのデバッグの専門家になり、Logcat を収集して送信する方法を学ぶと、お気に入りのアプリの開発者にとって優れたリソースとなります。 Matlog と上で概説した機能を使用すると、誤動作しているアプリに関する関連情報の収集、分類、送信がこれまでになく簡単になります。
Matlog または別の Logcat アプリを使用したことがありますか? このガイドは役に立ちましたか? 以下のコメント欄でお知らせください。