2012-11-04 35 views
7

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

答えて

8

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

あなたはこのadb shell echo "Hello world" >> /dev/log/main

しかしdmesg版画のように存在し、カーネルのリングバッファの内容を書き込むことができます。したがって、dmesgはカーネルログへのシステム書き込みのみを出力し、logcatはアンドロイドアプリのログのみを出力します。

+0

私は両方のdmesgとlogcatでスクリプトを実行するLinuxで「エコーXXX」を見つけることができないので、どこに行くのでしょうか? – ransh

2

LOGCAT--これはAndroidの中のアクティビティマネージャーによって書かれたさまざまなメッセージを見るために使用されています。アンドロイドもLinuxカーネルを使用していますが、カーネルが起動すると/ probingが処理されている)、アンドロイドはinitというプロセスを起動します。このプロセスは、すべてのアンドロイドシステムアクティビティを含むinit.rcファイルを解析します。このinit.rcファイルにはアンドロイドの基本プロセスがありますDalvik仮想マシンを起動するzygoteと呼ばれ、その後、アプリケーションがハードウェアとやりとりするために使用される他のすべてのアクティビティマネージャが含まれます。その基本的にVMからのメッセージです。アプリケーションプログラマがそれをデバッグするためのものです。 logcat例 http://pastebin.com/bV1Vd6EQ

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

LogcatのみAndroidと他のOSでの利用できないため、Logcatとdmesgの両方が、すべてのLinuxディストリビューションのために逆にAndroid上で利用可能であるが、されていません。

に関して、 zubraj

+0

dmesgとlogcatの両方でスクリプトを実行しているLinuxで "echo xxx"が見つかりません。どこに行くのですか? – ransh