2014/08/12
Android の Log をリリース時にだけ表示しないようにする方法
しかし、デバッグ用に出力した Log はリリースビルドでは出力しないようにしたいものです。
Java にはプリプロセッサがありませんので、Android アプリの開発時、私は以下の様な方法(もしくは、同様のライブラリを作成すること)でデバッグ時にログを出力しないようにしてきました。
if (BuildConfig.DEBUG) { LOG.d(TAG, "This is a log message"); }
しかし、先日購入した 50 Android Hacks 開発現場ですぐに役立つヒントとコード に、もっとエレガントな方法が載っていました。
それは ProGuard を利用して、後から Log を削除する方法です。
確かに、Android の開発環境ではリリース時にしか ProGuard がかからないようになっていますから、うってつけの方法と言えます 。
以下、Android Studio と Eclipse での具体的な方法です 。
Android Studio
proguard-rules.pro に以下の記述を追加proguard-rules.pro
-assumenosideeffects public class android.util.Log { public static *** v(...); public static *** d(...); public static *** i(...); public static *** w(...); public static *** e(...); public static *** wtf(...); }
以下のように ProGuard を有効にします。
proguard-android-optimize.txt を使っているところに注意。デフォルトでは proguard-android.txt なので書き換える必要があります。
app/build.gradle
buildTypes { release { runProguard true proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro' } }
Eclipse
proguard-project.txt に以下の記述を追加。proguard-project.txt
-assumenosideeffects public class android.util.Log { public static *** v(...); public static *** d(...); public static *** i(...); public static *** w(...); public static *** e(...); public static *** wtf(...); }
以下のように ProGuard を有効にします。
proguard-android-optimize.txt を使っているところに注意。デフォルトでは proguard-android.txt なので書き換える必要があります。
project.properties
proguard.config=${sdk.dir}/tools/proguard/proguard-android-optimize.txt:proguard-project.txt
0 件のコメント:
コメントを投稿