2016-09-29 2 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

Я не уверен, сколько других зависимостей у вас есть, но если вы делаете - подберите все модифицированные классы, это не похоже на то, что вы пытаетесь свести к минимуму. 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 в качестве базового конфигурационного файла proguard.

Первый настраивает как обфускацию, так и оптимизацию, в то время как последняя конфигурирует только обфускацию.

+0

Это примерно такой же размер с 'proguard-android-optimize.txt'. – nasch

+0

Кроме того, если у вас есть '-dontoptimize' в любой из конфигураций, что предотвращает запуск оптимизатора. – laalto

Смежные вопросы