В чем разница между proguard-android.txt и proguard-rules.pro? - Android

В моем buildType я вижу следующее:

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

У меня есть несколько вопросов:

  1. Почему есть два файла?
  2. В чем разница между ними?
  3. Где я должен писать свои правила?

Ответ 1

Метод getDefaultProguardFile('proguard-android.txt') получает настройки ProGuard по умолчанию из tools/proguard/ Android SDK tools/proguard/. proguard-android-optimize.txt также доступен в этой папке Android SDK с теми же правилами, но с включенными оптимизациями. Оптимизации ProGuard выполняют анализ на уровне байт-кода, внутри и между методами, чтобы сделать ваше приложение меньше и работать быстрее. Android Studio добавляет файл proguard-rules.pro в корневой модуль модуля, поэтому вы также можете легко добавлять собственные правила ProGuard, относящиеся к текущему модулю.

См. Это: http://developer.android.com/intl/es/tools/help/proguard.html

Это означает, что вы должны добавить свой файл proguard в proguard-rules.pro, если вы хотите отделить некоторые правила ко многим файлам, вы можете сделать это и объявить их после этого:

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

Ответ 2

getDefaultProguardFile('proguard-android.txt') будет извлекать настройки ProGuard, которые хранятся в Android SDK в tools/proguard

proguard-rules.pro - это файл, который находится в корне модуля. Цель состоит в том, чтобы вы могли добавлять пользовательские правила (ProGuard), которые являются специфическими для модуля.

Для получения дополнительной информации