2011-12-15 5 views
0

ネイティブコードからlogcatログデータにアクセスする方法があるかどうか疑問に思っていましたか? また、ネイティブのLinuxシステムで直接デバイス自体にアクセスできるシェルの種類が分かっている場合(クライアントPC上でadbを介してシェルを起動しないでください!!!) ありがとうございますネイティブ(C)コードを使用してLogcatデータを取得

答えて

0

生データfom/dev/log/mainを読み込んだり、組み込みのシェルコマンドlogcatを実行して、その結果をいつものようにファイルディスクリプタにパイプすることができます。通常はlogcatコマンドを使用するのが好ましい。その理由は、印刷物のフィルタリングとフォーマットが容易であるからである。

組み込みシェルはツールボックスと呼ばれ、ソースはAndroidオープンソースプロジェクトにあります。シェルはbashと似ています。ツールボックスには、単なるシェル以外の多くの機能が含まれています。 Busyboxと非常によく似ていますが、別のライセンスでリリースされています。

0

あなたのソースファイル内のログタグを使用してそれを設定し、次にようにライブラリを含めることができます。

#define LOG_TAG "some.unique.identifier" //I usually use the class name 
#include <utils/Log.h> 

次にAndroid.mkにあなたのにliblogライブラリの依存関係を追加する必要がありますファイルLOCAL_SHARED_LIBRARIES

LOCAL_SHARED_LIBRARIES += liblog 

また、logcatはそれが簡単にあなたのログを探しますので、タグ付けの一部として含まれるようにLOG_TAG定義を探すことに注意してください。そして、次のようなログに記録することができます

int my_int = 0; 
ALOGI("some logs.... print my int: %d", my_int); 

ALOGIは情報のために、あなたはまた、それぞれ、エラー、デバッグ、冗長と警告ロギング用ALOGEALOGDALOGVALOGWを使用することができます。

ALOG*は、printfに似ています。さまざまなプラットフォームでデバッグする必要がある場合、私は時々それらを交換します。

+0

彼の質問はlogcatを読み込む方法でした。 – Adrian

関連する問題