Androidシステムログには、さまざまな点で役立つ興味深いものがたくさんあります

  • 根本原因を見つける問題の数
  • 不正なアプリを特定する

Androidログを表示および確認するにはどうすればよいですか?

コメント

回答

Android4.1以降

推奨される方法は、 SDK をダウンロードしてadb logcat(デバイスで"開発者向けオプション"を有効にする必要があります。

利用可能なアプリがありますシステムログ全体を表示しますが、ルート化されたデバイスでのみ機能するか、adbを介して手動コマンドを発行して機能させる必要があります。詳細については、この質問を参照してください。

Android4.0以前

SDK でadb logcatを使用するか、 Logcat Extrem をスマートフォンに直接ログを表示するGooglePlayストア。

コメント

  • または、コマンド logcat > /sdcard/log.txt "は、SD上のファイルにログを継続的に書き込みますカード。これは、ランダムな再起動の問題を理解するのに役立ちます。
  • 良い点です。一部の電話は些細な情報でいっぱいのログをスパムする傾向があるため、通過するファイルサイズとデータを最小限に抑えたい場合は、セクション"フィルタリングログ出力 on developer.android.com/guide/developing/tools/adb.html#logcat
  • LogCatAppsは' JellyBeanでは任意に機能します。 GoogleはAndroidAPIを変更し、アプリは'自分以外のアプリからログを読み取る権限をもう持っていません。
  • 収集する簡単なユーティリティを作成しましたPCからのログ: gist.github.com/hrj/5983971
  • Logcat Extremeは、ログを表示するのに最適なアプリです

回答

ログファイルの場所

ログが記録されるディレクトリがいくつかあります(クラッシュからのものを含む)表示される場合があります-すべてが標準化されているわけではありません(つまり、ROM固有のものもあります)。

  • /data/anr:一部のトレースファイルはここにあるようです(DalvikはここANRにスタックトレースを書き込みます。つまり、「Application Not Responding」、別名「Force-Close」です。たとえば、ログの抜粋ここを参照してください)
  • /data/dontpanicは標準の場所(AOSP)のようで、トレースを含むいくつかのクラッシュログが含まれています(例: viaForensics および St ackOverflow
  • /data/kernelpanicsは別の場所です。Androidデバイスで「カーネルパニック」が発生していないため、コンテンツはまだ表示されていません。
  • /data/panic/panic_daemon.configは、構成されている他の場所を指している場合があります。私のDroid 2では、/sdcard/panic_data/
  • と記載されています。

  • 前述のDroid2には/data/panicreportsディレクトリもあります(ここでは空です)
  • /data/tombstonesには複数の

ファイル(nnはシリアルであり、新しいファイルごとに増加します)。トゥームストーンは死者のために配置されるため、ここでは「プロセスが偶然に死んだ」(つまりクラッシュした)ために行われます。これは、Linux / Unixシステムでは「コアダンプ」と呼ばれるものです。ただし、すべてのアプリがトゥームストーンを作成するわけではありません。これは、開発者が明示的に有効にする必要があります( Androidコアダンプのデバッグを参照)。

他にも場所がある場合があります。私を逃れた。ただし、ほとんどのログはtmpfsで実行されるため、これらのデータは再起動すると失われ、OPの質問と一致しません。

端末で使用するコマンドをログに記録します。 app(またはadb)

いくつかのコマンドを使用すると、大量の情報を取得できます。ほとんどの場合、ファイルにリダイレクトするか(> filename.ext)、フィルターにパイプする(| grep search-for-this)ことをお勧めします。 ):

カーネルログ

以下はルートなしで機能します:

$ dmesg <6>[82839.126586] PM: Syncing filesystems ... done. <7>[82839.189056] PM: Preparing system for mem sleep <4>[82839.189361] Freezing user space processes ... (elapsed 0.05 seconds) done. <4>[82839.240661] Freezing remaining freezable tasks ... (elapsed 0.00 seconds) done. <snip> 

Logcat

ここであなたは例えばすることができます興味のある分野を指定してください-ラジオ、イベント…

# logcat -b events I/am_create_service( 3457): [1085416560,nitro.phonestats/.widget.WidgetProvider4x1$WidgetUpdateService4x1,,3721] I/am_destroy_service( 3457): [1085416560,nitro.phonestats/.widget.WidgetProvider4x1$WidgetUpdateService4x1,3721] I/notification_cancel( 3457): [nitro.phonestats,4,0] <snip> 

デバイス情報の取得

そしてそれのトン:デバイス詳細、アカウント情報、サービス…

$ dumpsys Currently running services: LocationProxyService SurfaceFlinger accessibility account activity <snip> DUMP OF SERVICE account: Accounts: 1 Account {[email protected], type=com.google} <snip> $ dumpstate ======================================================== == dumpstate: 2012-08-18 23:39:53 ======================================================== Build: Gingerbread GWK74 - CyanogenMilestone2 Bootloader: 0x0000 Radio: unknown <snip> ------ MEMORY INFO (/proc/meminfo) ------ MemTotal: 487344 kB MemFree: 10436 kB <snip> 

オールインワン

logcatからdumpstateまで、すべてをまとめて大きなボールを作ります:

$ bugreport > /mnt/sdcard/bugreport.txt 

最後のコマンドを本当にリダイレクトしたいのは確かです… xD

権限に関する何か

PS:ソースのほとんどは内部ストレージにあるため、当然、これらの情報へのアクセスにはルートが必要になる場合があります。

コメント

  • adb logcatコマンドの詳細については、こちらをご覧ください。
  • または、ロギングタグ-wiki @testingを確認してください–さらに多くの参照があります:)
  • " Androidコアダンプのデバッグ"が停止しました。別の方法を入手できますか?
  • @Spidey there 'は、この種の問題に対して常に Archive.ORG です(リンクは作業コピーに移動しますt
  • Androidを初めて使用する私のような人は、上記のコマンドを実行するために、最初に$ adb shellを実行してデバイスに接続する必要があります。ターミナル経由。 (もちろん、デバイスがコンピューターに接続され、USBデバッグがオンになっていることを確認してください。)

回答

CatLog は、AndroidログをaLogcatよりも少し良く表示することがわかりました。 adb logcatの他に、それが私が使用しているものです。

コメント

  • 上記のコメントを参照してください。 LogCatアプリに関して。
  • 質問を更新しました。相対位置情報(例:"上記"に注意してください)回答の順序は時間とともに変化する可能性があるため、簡単に古くなる可能性があります。

回答

Aルートなしの方法。新しいAndroidバージョンでも機能します。

前提条件:

  • Linux、Windows、またはMac
  • デバイス用のUSBケーブル
  • Androidデバイス

手順:

  1. adbを使用するためのデバイスドライバーをインストールします。必要なものはすべてここ
  2. OS用のadb実行可能ファイルをダウンロードします。これはAndroidSDKの一部ですが、adb実行可能ファイルを個別に見つけることができる場合があります。
  3. Androidデバイスを接続します。
  4. 開発者向けオプションを有効にします
  5. USBデバッグを有効にします。
  6. コマンドプロンプト(Windows)またはターミナル(linux / mac)を開きます。方法:Windowsの場合:windows + r>「cmd」(引用符なし)を入力> Enter |をクリックLinuxの場合:ターミナルを開く方法がわかりませんか?LOL | Macの場合:SpotlightにTerminalと入力し、それを開きます
  7. CDをadb実行可能ファイルがあります。Windowsの場合:adb実行可能ファイルをダウンロードしたディレクトリに移動し、Shift +右クリックして[コンソールを開く](または同様のもの)を選択します| Linux / Macの場合:ディレクトリを右クリックして[ここでターミナルを開く]を選択します(または単にディレクトリにCDを挿入します)
  8. cmd / terminal:adb devicesと入力して、デバイスが正しく接続されていることを確認します。
  9. Ifデバイスが正しく選択されている場合は、adb logcatと入力して、強力で魔法のログキャット、別名スタックトレースを表示します。
  10. デバイスでエラー(またはその他)を再現します。
  11. 直後に、cmd /ターミナルウィンドウ全体を http://pastebin.com/ のような貼り付けサービスに貼り付けます。送信してください。

(ほとんどは Leandros からコピー)

An swer

/sdcard/bugreportsにあります。

コメント

  • '携帯電話にこのようなフォルダはありませんでした…これはメーカーまたはデバイスに固有のものですか?

Logcat-CyanogenMod Wiki :マジックキーの組み合わせを使用して、/ sdcard / bugreportsにバグレポートファイルを作成できます。したがって、これは)OPが"自動生成された"もの。