Что происходит под капотом при сборке проекта в Android Studio

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

Ответ

Сборка Android-проекта проходит несколько этапов:

  1. Компиляция Java/Kotlin: Исходный код компилируется в байт-код (.class файлы) с помощью javac/kotlinc.

  2. DEX-конвертация: Bайт-код преобразуется в Dalvik Executable (.dex) формат для Android Runtime (ART) с помощью d8/r8.

  3. Обработка ресурсов: AAPT2 компилирует ресурсы (XML, изображения) в бинарный формат и генерирует R.java.

  4. Объединение зависимостей: Библиотеки (AAR/JAR) объединяются с основным кодом.

  5. Подписание и упаковка: APK/AAB подписывается и упаковывается с помощью zipalign.

Пример команды сборки:

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