2016-09-29 8 views
1

タイトルはそれをまとめています - 私のアプリはProguardの有無にかかわらず、同じサイズで、APKのディスク上のサイズは同じです。私はAPKを解凍して、dexファイルの約72%を占めていますので、(私が含まれているすべてのクラスとメソッドを使用していなければ、私は標準のルールファイルと、いくつかのルールを保持している自分自身のルールファイルを使用しています。Android Proguardは縮小しませんAPK

のGradleファイル:

release { 
      signingConfig signingConfigs.release 
      zipAlignEnabled true 
      minifyEnabled true 
      proguardFiles getDefaultProguardFile("proguard-android.txt"), "proguard-rules.pro" 
     } 

proguard-rules.proは:

-dontwarn retrofit.** 
-keep class retrofit.** { *; } 
-keepattributes Signature 
-keepattributes Exceptions 

は、私は、この問題についての情報のトンがあるだろうが、私の知る限りほとんど何もありませんと思いました。

+1

他にどれだけの依存関係があるのか​​わかりませんが、すべてのレトロフィットクラスを-keepしていると、最小化しようとしているようには見えません。 https://github.com/square/okhttp/issues/2230#issuecomment-236068544 私はここには表示されない他の依存関係を最小限に抑えているかもしれません。 – Emma

+0

他にもたくさんの依存関係があります。私はちょうど改造のドキュメントからそれらのルールをコピーしました。 – nasch

+0

は@Emmaに同意します。他にどのような依存関係がありますか?他の依存関係には他のルールが必要です。 –

答えて

2

minifyEnabled true:それはProGuardの

shrinkResources trueを実行します:それは、ProGuardの未使用としてフラグが立てられたリソースを削除します。

DEXから不要なファイルを削除すると、APKサイズも小さくなります。

+1

'shrinkResources'はリソース用ですが、ProGuardは未使用のコードを削除することでAPKを「小型化」することになっています。それはやっていない。 – nasch

0

proguard-android-optimize.txtではなく、proguard-android.txtをベースプロアグアード設定ファイルとして使用します。

最初のものは難読化と最適化の両方を構成し、後者は難読化のみを構成します。

+0

これは 'proguard-android-optimize.txt'とほぼ同じサイズです。 – nasch

+0

さらに、configsに '-dontoptimize'があると、オプティマイザが実行されなくなります。 – laalto

関連する問題