Skip to content
Michael Bely edited this page Apr 29, 2024 · 2 revisions

Important

ВНИМАНИЕ!
ЭТОТ РАЗДЕЛ БОЛЬШЕ НЕ ПОДДЕРЖИВАЕТСЯ!
РОАДМАП ПЕРЕЕХАЛ В NOTION

Compatibility Matrix

Gradle
Система автоматической сборки проектов

kapt
Обработчики аннотаций поддерживаются с помощью плагина кампилятора kapt (замена annotationProcessor). Kapt использует компилятор Java для запуска обработчиков аннотаций

ksp
Kotlin Symbol Processing - используется для легковесных подключаемых модулей. Работает до 2 раз быстрее kapt, не привязан к JVM, минимизирует время сборки

gradle.properties file

Build Environment

# When configured, Gradle will run in incubating parallel mode.
# This option should only be used with decoupled projects. More details, visit
# http://www.gradle.org/docs/current/userguide/multi_project_builds.html#sec:decoupled_projects
org.gradle.parallel=true

# AndroidX package structure to make it clearer which packages are bundled with the
# Android operating system, and which are packaged with your app"s APK
# https://developer.android.com/topic/libraries/support-library/androidx-rn
android.useAndroidX=true

# Automatically convert third-party libraries to use AndroidX
android.enableJetifier=true

# Kotlin code style for this project: "official" or "obsolete"
kotlin.code.style=official

# Access to all resources in all modules
android.nonTransitiveRClass=false

# Disable unused features for all project
android.defaults.buildFeatures.aidl=false
android.defaults.buildFeatures.buildConfig=false
android.defaults.buildFeatures.compose=false
android.defaults.buildFeatures.dataBinding=false
android.defaults.buildFeatures.prefab=false
android.defaults.buildFeatures.renderScript=false
android.defaults.buildFeatures.resValues=false
android.defaults.buildFeatures.shaders=false
android.defaults.buildFeatures.viewBinding=false

Build Variants & Product Flavors

Configure build variants

Настраиваемые варианты сборки, для создания разных версий приложения из одного проекта. Gradle использует определенный набор правил для объединения настроек, кода и ресурсов, настроенных в ваших типах сборки и вариантах продукта

buildTypes {
    release {
        isMinifyEnabled = true
        proguardFiles(getDefaultProguardFile("proguard-android.txt"), "proguard-rules.pro")
    }
    debug {
        applicationIdSuffix = ".debug"
        isDebuggable = true
    }
    qa {
        initWith(getByName("debug"))
        manifestPlaceholders["hostName"] = "internal.example.com"
        applicationIdSuffix = ".debugStaging"
    }
}
flavorDimensions += "version"
productFlavors {
    demo {
        dimension = "version"
        applicationIdSuffix = ".demo"
        versionNameSuffix = "-demo"
    }
    full {
        dimension = "version"
        applicationIdSuffix = ".full"
        versionNameSuffix = "-full"
    }
}

def buildType = gradle.startParameter.taskNames.any { 
    it.toLowerCase().contains("debug") 
} ? "debug" : "release"
Clone this wiki locally