2017-04-12 8 views
1

私はmultidexアプリケーションを作成しました。しかし、私はbuild.gradleに次きProGuardのに関しては:Android - multiDexKeepProguardの目的は何ですか?それはどのようにgralleのproguardFilesに近いですか?

android { 
    defaultConfig { 
     ... 
     multiDexEnabled true 
    } 
    productFlavors { 
     dev { 
      // Enable pre-dexing to produce an APK that can be tested on 
      // Android 5.0+ without the time-consuming DEX build processes. 
      minSdkVersion 21 
     } 
     prod { 
      // The actual minSdkVersion for the production version. 
      minSdkVersion 14 
     } 
    } 
    buildTypes { 
     release { 
      minifyEnabled true 
     *** proguardFiles getDefaultProguardFile('proguard-android.txt'), 
               'proguard-rules.pro' 
     } 
    } 
} 
dependencies { 
    compile 'com.android.support:multidex:1.0.1' 
} 

私の質問はmultiDexKeepProguardを使用して対progardFilesについてです。ドキュメントの状態:

ファイルmultiDexKeepProguard

クラスがメインのDEXファイルにコンパイルされているかを決定するために使用される追加ProGuardのルールに

テキストファイル。

設定すると、このファイルのルールは、ビルドシステムで使用されるデフォルトの ルールと組み合わせて使用​​されます。

私はmultiDexKeepProguardを使用しないと、クラスはまだコンパイルされますが、メインのdexファイルで終わることはありません。これがproguardFilesとどのように違うのかはっきりしていません。

Androidのマニュアルもreferences thisです。

答えて

0

アプリケーションでproguardを有効にしている場合は、通常、プロguardルールを定義する必要があります。 proguardFilesは、プログラムがアプリを小型化または難読化するための手順です。

multiDexKeepProguardは特に、アプリケーションの起動時にロードするファイルが重要であるため、maindexに保持するファイルをmultidexに伝えるためのものです。私が知っている限り、それは便宜のためにプロガード構文を使用しているだけです。これはオプションで、通常は実行時に問題がある場合にのみ設定されます。

関連する問題