365連休

にわかのandroidとかの開発メモ。

Android Studio 3.4でリリースビルドからLog関数を削除する。ProGuard使います。

Log関数はリリース時に必要ないので、勝手に削除してビルドしてくれるかというと、そんなことはありません。

Logcatでログの出力を確認できます。

なので、明示的に削除する必要があります。

 

削除の方法については、ビルド時にProGuardというのをかませて一括削除が可能です。

ProGuardというのはコード圧縮と難読化のためのツールです。

developer.android.com

 

 

Android Studio3.4で作ったプロジェクトのデフォルトのbuild.gradle設定には親切にもrelease用にのみProGuardを適用するようになっています。

しかし、Log関数の削除のルールは書いてないので、変更が必要です。

  • $getDefaultProguardFile('proguard-android-optimize.txt')
    Android StudioのProGuard設定、Android SDK/tools/proguard/
  • proguard-rules.pro
    →プロジェクト毎のルール、プロジェクト/app/
  • Minify使用可能化=true
    →trueにしないとLog関数を削除できないみたいです。

f:id:neet_rookie:20190430210319p:plain

[プロジェクト構造ウィンドウ]build.gradleをGUIで操作できる

 

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(...);
}

 

ファイル内の文法は以下を参照

www.guardsquare.com