1. ホーム
  2. android

[解決済み] Android Plugin for Gradleの "minifyEnabled "と "useProguard "の違いは何ですか?

2023-05-15 15:34:42

質問

GradleのAndroid Pluginには minifyEnabled プロパティと同様に useProguard プロパティを以下のように指定します。

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

この2つのプロパティの違いは何でしょうか?というか、それぞれの意味は何でしょうか?

どのように解決するのですか?

引用元 tools.android.com :

<ブロッククオート

シュリンカー内蔵

Android Plugin for Gradleのバージョン2.0では、実験的なビルトインコードシュリンカーが同梱されています。 内蔵のコードシュリンカーが同梱されており、ProGuard の代わりに使用することができます。内蔵のシュリンカーは、高速なインクリメンタル実行をサポートし 内蔵のシュリンカーは、高速なインクリメンタル実行をサポートし、反復サイクルを高速化することを目的としています。 イテレーションサイクルを高速化するためのものです。次のコードで有効にすることができます。 スニペットで有効にできます。

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

ビルトインのシュリンカーはデッドコードを削除するだけで、難読化・最適化は行いません。ProGuard と同じファイルを使って設定することができます。 ProGuard と同じファイルを使って設定できますが、難読化や最適化に関連するすべてのフラグを無視します。 最適化に関するすべてのフラグを無視します。

ProGuard とは異なり、ビルトインのシュリンカーを次のものと一緒に使用することをサポートします。 プロジェクトによっては、最初のビルドとインストールの時間を大幅に短縮することができます。 プロジェクトによっては、最初のビルドとインストールにかかる時間を大幅に短縮することができます。コード変更後に到達可能になったすべてのメソッドは コード変更後に到達可能になったメソッドは、プログラムに新たに追加されたものとして表示され、Instant Runのホットスワップを防止します。 Instant Run のホットスワップを防止します。