Где взять файлы прогуарда по умолчанию для R8 - PullRequest
0 голосов
/ 06 мая 2020

Я работаю над приложением в Android Studio 3.6 и только что понял, что мне не хватает файлов proguard-android.txt или proguard-android-optimize.txt и proguard-rules.pro.

Они есть определен в моем файле build.gradle (app):

buildTypes {
    release {
        minifyEnabled true
        shrinkResources true
        proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro'
    }
}

, но у меня нет этих файлов, которые находятся где-либо в моем дереве проекта или в папках проекта.

Я использую gradle 3.6 .3 в соответствии с моим файлом build.gradle (ProjectName), поэтому я знаю, что R8 будет фактически использоваться, а не ProGuard, но я понимаю (из https://developer.android.com/studio/build/shrink-code#keep -code ), что R8 по-прежнему использует те же файлы для определения что следует оптимизировать и что следует сохранить и т. д. c.

Я хочу убедиться, что мое приложение оптимизировано и запутано, но мне также нужно защитить некоторый код с помощью предложений -keep, которые, как я считаю, должны go в файл proguard-rules.pro.

Итак, пара вопросов:

  1. Почему у меня нет этих файлов?
  2. Как мне получить использовать последние официальные файлы по умолчанию в качестве отправной точки?

1 Ответ

1 голос
/ 07 мая 2020

Содержимое этих файлов построено из текстовых файлов в https://android.googlesource.com/platform/tools/base/+/studio-master-dev/build-system/gradle-core/src/main/resources/com/android/build/gradle.

В зависимости от имени аргумента getDefaultProguardFile один или несколько из этих ресурсов выбираются в качестве файлов конфигурации в https://android.googlesource.com/platform/tools/base/+/studio-master-dev/build-system/gradle-core/src/main/java/com/android/build/gradle/ProguardFiles.java.

...