2

Android Devのログドキュメントを検索すると、次のようなセクションがあります。

冗長性の観点から、最小から最大の順序は、ERROR、WARN、INFO、DEBUG、VERBOSEです。開発中を除いて、Verboseをアプリケーションにコンパイルしないでください。デバッグログはコンパイルされますが、実行時に削除されます。エラー、警告、および情報ログは常に保持されます。

この宣伝文句の2番目の部分は、現在私を混乱させているものです。それはそれを意味しますか

a)コンパイラオプティマイザは、すべての冗長ログを自動的に削除します(特にデバッグではないことが示唆されているように)

また

b)リリースする前に、すべてのLog.v()を見つけて「」に置き換える必要があります。

エンドユーザーにとって詳細なログ記録は望ましくないことを理解しています。これには完全に同意しますが、開発中は可能な限りログを利用する必要があると思います。私は理論的には次のようなことをすることができると思います

if(IS_VERBOOSE_LOGGING_ENABLED) 
{ 
    Log.v("My log message here");
} 

ただし、これはまだ提案に違反します(コンパイル時の前に削除することを意味すると仮定します)。

コミュニティからの説明をいただければ幸いです。

4

1 に答える 1

2

これを行うには、リリースアーティファクトのすべてのログを削除するようにproguardを構成するのが最善です。そうすれば、まったく心配する必要はありません。

# get rid of all the logging
-assumenosideeffects class android.util.Log {
    public static int v(...);
    public static int d(...);
    public static int w(...);
    public static int i(...);
}
于 2012-04-05T01:07:48.160 に答える