2014/08/12
Android の Log をリリース時にだけ表示しないようにする方法
しかし、デバッグ用に出力した Log はリリースビルドでは出力しないようにしたいものです。
Java にはプリプロセッサがありませんので、Android アプリの開発時、私は以下の様な方法(もしくは、同様のライブラリを作成すること)でデバッグ時にログを出力しないようにしてきました。
1 2 3 | if (BuildConfig.DEBUG) { LOG.d(TAG, "This is a log message" ); } |
しかし、先日購入した 50 Android Hacks 開発現場ですぐに役立つヒントとコード
それは ProGuard を利用して、後から Log を削除する方法です。
確かに、Android の開発環境ではリリース時にしか ProGuard がかからないようになっていますから、うってつけの方法と言えます1。
以下、Android Studio と Eclipse での具体的な方法です2。
Android Studio
proguard-rules.pro に以下の記述を追加proguard-rules.pro
1 2 3 4 5 6 7 8 | -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
1 2 3 4 5 6 | buildTypes { release { runProguard true proguardFiles getDefaultProguardFile( 'proguard-android-optimize.txt' ), 'proguard-rules.pro' } } |
Eclipse
proguard-project.txt に以下の記述を追加。proguard-project.txt
1 2 3 4 5 6 7 8 | -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
1 | proguard.config=${sdk.dir}/tools/proguard/proguard-android-optimize.txt:proguard-project.txt |
0 件のコメント:
コメントを投稿