AXV

build.gradle tuzilmasi va modullar

settings.gradle, project va module build.gradle, android{}, modullar

10-sinfAdvanced Android5-hafta · 13-dars

Bugun nimalarni o'rganamiz?

Gradle va fayllar

Loyihaning bosh rejasi

Module build.gradle

plugins, android{}, defaultConfig

Modullar bog'lanishi

include va project(...)

Takrorlash

GitHub Actions workflow fayli qaysi formatda yoziladi?

Workflow .github/workflows/*.yml fayllarida YAML formatida yoziladi.
01

Gradle va fayllar

Loyihaning bosh rejasi

Gradle fayllari ierarxiyasi

settings.gradle Projectbuild.gradle app/build.gradle APK yoki AAB Bosh reja, umumiy sozlama, modul sozlamasi, natija

Loyiha tuzilmasi


MyApp/
  settings.gradle.kts      <- modullar ro'yxati
  build.gradle.kts         <- project-level
  gradle/libs.versions.toml
  app/
    build.gradle.kts       <- module-level (eng muhim)
    src/main/...
  
Faylning kengaytmasi .gradle (Groovy) yoki .gradle.kts (Kotlin DSL) bo'lishi mumkin; mazmuni bir xil, sintaksis biroz farq qiladi.

Mini-test

Qaysi fayl ilovaning qanday qurilishini belgilaydi?

Module-level build.gradle ilova sozlamalari va kutubxonalarini belgilaydi.
02

Module build.gradle

plugins, android{}, defaultConfig

android{} bloki qismlari

plugins:modul turi compileSdk defaultConfig dependencies Har bir blok o'z vazifasiga ega

app/build.gradle.kts


plugins {
    id("com.android.application")
    id("org.jetbrains.kotlin.android")
}

android {
    namespace = "com.example.advanced"
    compileSdk = 34

    defaultConfig {
        applicationId = "com.example.advanced"
        minSdk = 24
        targetSdk = 34
        versionCode = 1
        versionName = "1.0"
    }
}
  
minSdk ni noto'g'ri tanlash ilovaning eski telefonlarda ishlamasligiga olib keladi. Har nashrda versionCode oshirilishi shart.

Mini-test

minSdk = 24 nimani bildiradi?

minSdk dan past versiyali qurilmalarga ilova o'rnatilmaydi.
03

Modullar bog'lanishi

include va project(...)

Modul bog'lanish yo'li

settings:include core: library app:project(core) Sync Now O'zgartirishdan keyin Gradle sinxronlanadi

Modul qo'shish


// settings.gradle.kts
include(":app")
include(":core")

// core/build.gradle.kts
plugins {
    id("com.android.library")
    id("org.jetbrains.kotlin.android")
}

// app/build.gradle.kts
dependencies {
    implementation(project(":core"))
}
  
Fayllarni o'zgartirgach Android Studio dagi Sync Now tugmasini bosing. app -> core yo'nalishi to'g'ri, teskarisi (core -> app) tsikl hosil qiladi.

Mini-test

app modulidan core modulini ishlatish uchun nima yoziladi?

Modul avval settings da e'lon qilinadi, so'ng project(...) bilan ulanadi.

Project-level va module-level

Project-level

Butun loyiha uchun umumiy plaginlar va sozlamalar
VS

Module-level

Aynan shu modul: android {}, defaultConfig, dependencies {}

Ilovaning asosiy sozlamalari module-level faylda.

Asosiy parametrlar. Bosing

applicationId

bosing

Ilovaning noyob nomi: com.example.advanced

minSdk / targetSdk

bosing

Eng past va moslashtirilgan Android versiyasi

versionCode

bosing

Ichki butun versiya raqami: har nashrda oshadi

versionName

bosing

Foydalanuvchiga ko'rinadigan versiya: 1.0

Yangi modul qo'shish

1. Modul yarating

File > New > New Module > Android Library.

2. include qiling

settings.gradle.kts da include(":core").

3. Ulang

app da implementation(project(":core")) va Sync.

Fayllar yonma-yon

FaylDarajasiNima beradi
settings.gradleloyihamodullar ro'yxati, repozitoriyalar
build.gradle (root)loyihaumumiy plaginlar
app/build.gradlemodulSDK, versiya, kutubxonalar
gradle.propertiesloyihaGradle parametrlari
libs.versions.tomlloyihaversiyalar katalogi

Pastga bosing: Sync qoidasi

Sync qoidasi

  1. Gradle faylini o'zgartiring.
  2. Sync Now tugmasini bosing.
  3. Xato bo'lsa Build oynasidagi birinchi qizil qatorni o'qing.

android bloki


android {
}
  

android bloki


android {
    namespace = "com.example.advanced"
    compileSdk = 34
}
  

Gradle raqamlarda

0
asosiy fayl turi: settings, project, module
0
modul turi: application, library
0
defaultConfig parametri: id, min, target, vCode, vName

Modul soni oshgan sari include ro'yxati ham o'sadi.

Amaliy topshiriq 20 daqiqa

OsonAtamalar: settings.gradle, project-level va module-level build.gradle vazifasini bir jumlada yozing.
O'rtadefaultConfig o'qish: Berilgan defaultConfig ni o'qing va minSdk, versionName qiymatlarini ayting.
O'rtaModul qo'shish: core kutubxona modulini yarating va app ga ulang.
QiyinXatoni toping: app moduli core ni ishlatmoqda, lekin Unresolved reference xatosi chiqdi. 2 ta mumkin bo'lgan sababni yozing.
QiyinversionCode siyosati: Ilovaning 1.0 (kod 1), 1.1 va 2.0 versiyalari uchun versionCode va versionName ni yozing.

Dars xulosasi

Gradle

Kod, resurs va kutubxonalarni ilovaga aylantiradi.

Fayllar

settings, project va module-level build.gradle.

Modullar

include va implementation(project(...)) bilan bog'lanadi.

Uyga vazifa: o'z loyihangiz fayllarini tahlil qiling va core modulini qo'shing.

Keyingi dars: Build variantlar

debug va release farqi

5-hafta · 14-dars