Что такое R8 компилятор

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

Ответ

R8 — это инструмент для обфускации, минификации и оптимизации кода в Android. Он заменяет ProGuard в современных сборках и работает быстрее, интегрируясь напрямую в Gradle.

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

  • Удаляет неиспользуемые классы/методы (деревяние)
  • Оптимизирует байт-код
  • Переименовывает классы/методы (обфускация)
  • Сокращает размер APK

Пример включения в build.gradle:

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

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