7

logcatが使用するログソース(デフォルト設定:) adb shell logcat。dmesgログはlogcatの出力に含まれていますか?そうでない場合、dmesgログとlogcatログの違いは何ですか?

4

2 に答える 2

9

ソースコードによると、https://github.com/android/platform_system_core/blob/master/liblog/logd_write.c Log.d(String tag, String message)はに直接書き込みます/dev/log/main

あなたはこのようにそこに書くことができますadb shell echo "Hello world" >> /dev/log/main

ただしdmesg、カーネルのリングバッファの内容を出力します。したがってdmesg、システムがカーネルログに書き込んだものだけlogcatを出力し、Androidアプリのログのみを出力します。

于 2012-11-04T21:44:09.403 に答える
4

LOGCAT--これはAndroidで使用され、Android内のアクティビティマネージャーによって書き込まれたさまざまなメッセージを表示します。AndroidもLinuxカーネルを使用しますが、カーネルが起動すると(ハードウェアの初期化/プローブが実行されます)、世話をします)、AndroidはすべてのAndroidシステムアクティビティを含むinit.rcファイルを解析するinitと呼ばれるプロセスを開始します。つまり、Androidが起動するための基本的なプロセスを意味します。このinit.rcファイルにはzygoteと呼ばれるプロセスがあります。 Dalvik仮想マシン、およびその後、ハードウェアと対話するためにアプリケーションによって使用される他のすべてのアクティビティマネージャー。したがって、基本的にはVMからのメッセージであり、アプリケーションプログラマーがデバッグするためのものです。logcatの例 http://pastebin.com/bV1Vd6EQ

Dmesg-それはカーネルからのメッセージです、あなたがドライバーを書くと仮定します、それはドライバーと他のカーネルコードをデバッグするためのツールとして使用できます、それらのほとんどはドライバーメッセージですそれはデバッグの良い方法です、カーネル、ドライバーなど。 dmesgの例 http://pastebin.com/P4ja9PFi

LogcatはAndroid専用であり、他のOSでは使用できません。Logcatとdmesgの両方がAndroidで使用できますが、Linuxディストリビューションではその逆はできません。

よろしく、zubraj

于 2012-11-05T11:13:38.703 に答える