Android new shriking tool R8 не отражает никаких изменений в размере APK

#android #dex #android-r8

#Android #dex #android-r8

Вопрос:

Когда я добавляю R8 для уменьшения размера Android dex, он не работает. Я добавил следующую строку:

gradle.properties:

 android.enableR8=true
  

Когда я попытался проанализировать свой код, я не смог найти никакой разницы в размере моего apk.
Это что-то еще, чего мне не хватает?

Должен ли я добавить какие-либо правила proguard и включить progaurd, добавив эти строки:

build.gradle

 minifyEnabled false
proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
  

Комментарии:

1. Вы анализируете отладочную сборку?

2. Да, @MarcinOrlowski.

3. Поскольку R8 является заменой ProGuard, вам все равно нужно настроить сжатие, как описано на странице developer.android.com/studio/build/shrink-code . Если вы используете Android Studio 3.4 или более позднюю версию, R8 является программой сжатия по умолчанию, и вам не нужно android.enableR8=true .

Ответ №1:

Как предложил sgjesse в своем комментарии, вам необходимо включить минимизацию для всех типов сборок, на которых вы хотите запускать R8.

Например, если вы хотите, чтобы R8 запускался во всех сборках выпуска, используйте minifyEnabled подобное в сборке на уровне вашего приложения.gradle:

 android {
  buildTypes {
    release {
      minifyEnabled true
    }
  }
}
  

Если вы хотите, чтобы R8 также запускался в ваших отладочных сборках, тогда вам нужно будет использовать minifyEnabled и для отладки.

Вы опубликовали эту строку как часть своего вопроса:

 proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
  

Использование proguardFiles таким образом необходимо только в том случае, если у вас есть свои собственные правила, которые вы хотели бы применить в дополнение к тем, которые содержатся в файле по умолчанию proguard-android.txt .

(Вам все равно нужно использовать android.enableR8=true в вашем файле gradle.properties, чтобы включить R8 вместо ProGuard, если вы используете версию плагина Android Gradle / Android Studio до версии 3.4)