2016-05-03 17 views
12

私は次のようにGradleのためのAndroidのプラグインは、minifyEnabled財産だけでなく、useProguard性質を持っていることを参照してください。Android Plugin for Gradleの "minifyEnabled"と "useProguard"の違いは何ですか?

android { 
    buildTypes { 
     debug { 
      minifyEnabled true 
      useProguard false 
     } 
     release { 
      minifyEnabled true 
      useProguard true 
     } 
    } 
} 

これら二つの性質の違いは何ですか?あるいは、むしろ、それぞれの意味は何ですか? tools.android.comを引用

+1

あなたがここにhttp://tools.android.com/tech-docs/new-build-system/resource-shrinkingそれについて読むことができ –

+0

(このコメントを書いている時点で)その文書には、については何も含まれていません'useProguard'プロパティ@ cricket_007。 'useProguard'がAndroidプラグインfor Gradleの最近のリリースで' shrinkResources'プロパティの名前に変更されていないのですか? –

+0

"リソース縮小は、コード縮小(ProGuardなど)と組み合わせてのみ機能します。" –

答えて

23

内蔵シュリンカーProGuardのの代わりに使用することができる実験 組み込みコードシュリンカーとのGradle船のためのAndroidプラグインの

バージョン2.0

。 ビルトインシュリンクャーは、高速インクリメンタルランをサポートし、繰返しサイクルを最大で 速くすることを目的としています。それは、次のコードスニペット を使用して有効にすることができます:

android { 
    buildTypes { 
     debug { 
      minifyEnabled true 
      useProguard false 
      proguardFiles getDefaultProguardFile('proguard-android.txt') 
     } 
    } 
} 

ビルトインシュリンカーは、デッドコードを削除することができ、それは、難読化または最適化しません。 ProGuardと同じファイルを使用して設定できますが、難読化または の最適化に関連するすべてのフラグは無視されます。 ProGuardのとは異なり

、我々は インスタントランと一緒に内蔵のシュリンカーを使用してサポートしています。このプロジェクトに応じて、それはかなり 初期ビルドを減少させ、時間をインストールすることができます。コード変更後に到達可能になる方法は、プログラムに新しく追加されたものとして表示され、 はインスタント実行ホットスワップを防止します。

+0

ありがとう@Mattia。これはそれを説明します。したがって、 'minifyEnabled'はデッドコードを削除しますが、難読化や最適化はしません。 –

+1

この解答と直接矛盾しているようですが、minifyは少し難解ですhttps://stackoverflow.com/questions/17290023/obfuscation-in-android-studio – pete

+0

更新されたドキュメントへのリンク:https://developer.android。 co.jp/studio/build/shrink-code.html#gradle-shrinker – mxttie