Для чего нужен файл ProGuard

«Для чего нужен файл ProGuard» — вопрос из категории Gradle и сборка, который задают на 23% собеседований Android Разработчик. Ниже — развёрнутый ответ с разбором ключевых моментов.

Ответ

ProGuard — это инструмент для оптимизации, обфускации и минификации кода в Android-приложениях.

Основные функции:

  1. Обфускация — переименовывает классы, методы и поля в нечитаемые имена, усложняя реверс-инжениринг.
  2. Минификация — удаляет неиспользуемый код (например, неиспользуемые методы и классы).
  3. Оптимизация — улучшает производительность, удаляя лишние инструкции.

Пример настройки в build.gradle:

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

Важно: Нужно явно указывать, какие классы/методы нельзя обфусцировать (например, через @Keep или правила в proguard-rules.pro).