2

現在、NDKを介してネイティブlibおよびAndroidアプリに組み込んでいる既存のネイティブC /C++コードがあります。ネイティブコードには、stdoutとstderrへのprintステートメントがたくさんあります。このようなもののベストプラクティスはありますか?それらを無視することはできますか、それともAndroidロギングシステムにリダイレクトする必要がありますか?

既存のコードをスタンドアロンのネイティブバイナリとしてビルドし、adbを介して実行すると、printf(stdoutへ)からコンソールへのすべての出力が表示されていました。

間抜けな質問のようですが、stdioはAndroidアプリのどこに行きますか?

4

1 に答える 1

1

デフォルトでは、Android アプリの stdout と stderr は /dev/null (どこにもありません) に送信されます。

adb setprop を使用して log.redirect-stdio を true に設定するか、「log.redirect-stdio=true」を /data/local.prop に設定できます (作成には root アクセスが必要になる場合がありますが、より信頼性が高くなります)。これを行うと、出力が logcat ログに送信されます。

「stdout と stderr の表示」を参照してください: http://developer.android.com/guide/developing/tools/adb.html

于 2011-10-11T02:06:11.990 に答える