Android / Java: переход / переход с ProGuard на R8? - PullRequest
0 голосов
/ 15 октября 2018

Интересно, как сделать переход / миграцию из ProGuard в R8 .

Должен ли я просто удалить строки, связанные с Proguard, из моих файлов Gradle и добавитьвместо строки android.enableR8 = true?

Спасибо.

1 Ответ

0 голосов
/ 22 октября 2018

Proguard разрабатывается и поддерживается GuardSquare, а R8 разрабатывается и поддерживается командой Android, что означает, что это два разных продукта, хотя R8 совместим с Proguard.

Как видно отсюда https://www.guardsquare.com/en/blog/proguard-and-r8

Совместимость ProGuard и R8

Хорошая новость для разработчиков заключается в том, что R8обратно совместим с ProGuard.Если у вас есть рабочая конфигурация ProGuard (возможно, эклектически скопированная из Stackoverflow), вы можете перенести ее на R8.В настоящее время он по-прежнему игнорирует некоторые параметры.Примечательно, что R8 не реализует опции -whyareyoukeeping и -addconfigurationdebugging, которые мы считаем необходимыми для быстрого перехода к рабочей конфигурации, как мы объясняли в предыдущем блоге.

Да, android.enableR8 = true включит функцию R8.

Также обратите внимание, что R8 в настоящее время (на момент выпуска Android Studio 3.2.1) не поддерживает проекты Android Archive Library (AAR).Он используется только при сборке APK-файлов.


Edit # 1

From @ Archie , если вы используете версию плагина Gradle 3.4.0 и выше, R8 - это на по умолчанию.

См .: https://developer.android.com/studio/releases#r8-default


Edit # 2

Для перехода от Proguard к R8 вы можете следовать нижешаги:

1.Отключить Proguard

Обновите конфигурацию buildTypes { }, чтобы отключить Proguard, например, для release тип сборки:

   android {
       ...
       buildTypes {
           release {
               useProguard false // <-- disable proguard
               minifyEnabled true // <-- enable minification
               proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro'
           }
       }
       ...
   }

В Android Studio 3.4, useProguard по умолчанию равно false.И R8 включен по умолчанию.

2.( Необязательно ) Установите полный файл отчета о конфигурации R8

Добавьте строку ниже в proguard-rules.pro, чтобы вывести полный отчет обо всех правилах, которые R8 применяет при создании проекта.

// You can specify any path and filename.
-printconfiguration <your-path>/full-r8-config.txt

3.Создайте запутанное приложение.

./gradlew assembleRelease

4.( Дополнительно ) Точная настройка и устранение неполадок

Найдите <your-path>/full-r8-config.txt для точной настройки конфигурации или устранения неполадок, если таковые имеются.

Ссылки:

https://developer.android.com/studio/build/shrink-code.html#configuration-files

...