logcatが使用するログソース(デフォルト設定:) adb shell logcat
。dmesgログはlogcatの出力に含まれていますか?そうでない場合、dmesgログとlogcatログの違いは何ですか?
2 に答える
ソースコードによると、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アプリのログのみを出力します。
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