AXV

Gradle Konfiguratsiyasi va Build Tizimi

Android ilovalarni avtomatlashtirilgan yig'ish, SDK darajalari va Gradle hayot sikli

10-sinfAdvanced Android1-hafta · 1-dars

Bugun nimani o'rganamiz?

Gradle nima?

Android ekotizimida Build Automation (yig'ishni avtomatlashtirish) tizimining o'rni va vazifasi

Fayllar arxitekturasi

settings.gradle, Project va Module-level build.gradle fayllarining tuzilishi

SDK va Hayot sikli

compileSdk, minSdk, targetSdk va Gradle Build Lifecycle ning 3 bosqichi

01

Gradle va Build Automation Mohiyati

Dasturchi kodi va resurslaridan tayyor APK / AAB yaratish jarayoni

Gradle — ilovaning bosh muhandisi

«Dasturchi yozgan har bir kod va chizgan har bir dizayn xomashyo hisoblanadi. Ularni yagona ilovaga aylantiruvchi bosh usta — Gradle.»

"Run" tugmasi ortida

Kompilyatsiya qilish, resurslarni siqish, kutubxonalarni yuklash va manifestlarni birlashtirish to'liq avtomatlashgan.

Yakuniy mahsulot

Barcha komponentlar foydalanuvchi telefoniga o'rnatiladigan yagona APK yoki AAB formatiga yig'iladi.

Android Build Pipeline arxitekturasi

Kotlin / Java Kodi Biznes mantiq & arxitektura Resurslar & XML Dizayn, rasmlar, matnlar Tashqi Kutubxonalar Retrofit, Room, Coil... AndroidManifest.xml Ruxsatlar va komponentlar GRADLE ENGINE Build Automation System Kotlinc / Javac (Kompilyatsiya) AAPT2 (Resurslarni siqish) D8 / R8 (DEX & Obfuscation) APK Fayli Sinov & Qurilmalarga AAB Formati Google Play Publish
02

Gradle Fayllari Arxitekturasi

Loyiha va modul darajasidagi konfiguratsiya fayllari

Gradle Scripts papkasidagi 5 ta ustun

settings.gradle

Loyihaning barcha modullarini (:app, :database) ro'yxatga oladi va repozitoriylarni boshqaradi.

build.gradle (Project)

Butun loyiha uchun umumiy qoidalar, global plaginlar va umumiy konfiguratsiyalarni belgilaydi.

build.gradle (Module: :app)

Ilovaning "vaziri": SDK darajalari, versiya raqami, paket nomi va barcha kutubxonalar shu yerda belgilanadi.

gradle.properties & wrapper

JVM xotira sozlamalari (RAM) va barcha kompyuterlarda bir xil versiyada yig'ishni kafolatlovchi Wrapper tizimi.

Gradle fayllari ierarxiyasi

settings.gradle (Modullar Xaritasi) include ':app' | include ':core-network' build.gradle (Project: Root) Global plaginlar va umumiy qoidalar :app Modul Asosiy ilova kodi :core-network Qo'shimcha modul YORDAMCHI TIZIMLAR gradle.properties JVM xotirasi (RAM) sozlamalari gradle-wrapper.properties Gradle versiyasi distributivi (URL) libs.versions.toml Version Catalog (Kutubxonalar)

build.gradle (Module: :app) ichki bloklari

plugins { ... }

Loyiha qanday turdagi dasturligini belgilaydi: com.android.application va org.jetbrains.kotlin.android.

defaultConfig { ... }

Ilovaning asosiy parametrlari: applicationId, minSdk, targetSdk, versionCode va versionName.

buildTypes { ... }

Ilova yig'ish rejimlarini boshqaradi (Debug va Release, kodni siqish va xavfsizlik sozlamalari).

dependencies { ... }

Ilovaga ulanadigan barcha tashqi kutubxonalar va ularning modullari ro'yxati.

03

SDK Versiyalari va Boshqaruvi

compileSdk, minSdk va targetSdk o'rtasidagi farqlar

SDK darajalarining vazifalari

compileSdk

Kompilyatsiya versiyasi

Ilova qaysi Android SDK versiyasi asosida kompilyatsiya qilinishini belgilaydi. Yangi API imkoniyatlarini ochadi.

minSdk

Minimal chegara

Ilova o'rnatilishi mumkin bo'lgan eng quyi Android versiyasi. Undan past qurilmalarda ilova o'rnatilmaydi.

targetSdk

Maqsadli sinov

Ilova qaysi versiya xavfsizlik va ruxsatlar qoidalariga moslab ishlab chiqilganini ko'rsatadi (Google Play talabi).

SDK darajalarining moslik piramidasi

Android API Darajasi (Yillar o'sishi) minSdk = 24 Android 7.0 Pastki chegara Undan past o'rnatilmaydi targetSdk = 34 Android 14 To'liq sinovdan o'tkazilgan versiya Google Play talabi compileSdk = 34 Android 14 Kompilyator eng yangi API'larni taniydi va kodga ruxsat beradi

Ilova versiyalash mexanizmi

versionCode (Butun son)

Faqat Google Play va tizim uchun mo'ljallangan butun son (1, 2, 3...).

Har safar yangi yangilanish (update) chiqarilganda bu son avvalgisidan qat'iy katta bo'lishi shart!

versionName (Matnli satr)

Foydalanuvchi ko'radigan tashqi versiya nomi (masalan, "1.0.0", "2.1.4-beta").

Semantic Versioning (Major.Minor.Patch) qoidalariga asoslanadi.

04

Gradle Build Lifecycle

Yig'ish jarayonining 3 ta fundamental bosqichi

Gradle Build Lifecycle: 3 Bosqich

1

Initialization

Gradle settings.gradle faylini o'qiydi va loyihada qaysi modullar ishtirok etayotganini aniqlaydi.

2

Configuration

Barcha modullarning build.gradle fayllari o'qiladi va bajarilishi lozim bo'lgan vazifalar grafigi (DAG) tuziladi.

3

Execution

Vazifalar navbat bilan bajariladi: kod kompilyatsiya qilinadi, resurslar siqiladi va tayyor APK hosil bo'ladi.

Gradle Build Lifecycle bosqichlari

1 Initialization Initsializatsiya settings.gradle o'qiladi Modullar ro'yxati olinadi Project obyektlari yasaladi 2 Configuration Konfiguratsiya build.gradle fayllari Tasklar grafigi (DAG) Kompilyatsiya hali yo'q! 3 Execution Bajarish va yig'ish Kod kompilyatsiya bo'ladi Resurslar ulanadi Tayyor APK/AAB yasaladi

Terminal orqali Gradle buyruqlari

./gradlew clean

Barcha eski yig'ilgan kesh va build/ kataloglarini butunlay o'chirib tozalaydi.

./gradlew assembleDebug

Ilovaning sinov (Debug) rejimdagi APK faylini kompilyatsiya qilib, diskka chiqarib beradi.

./gradlew tasks

Loyihada mavjud bo'lgan barcha yig'ish, sinov va verifikatsiya vazifalarini ko'rsatadi.

Amaliy taqqoslash: Xato vs To'g'ri amaliyot

Xato yondashuv

minSdkni 34 deb belgilash (foydalanuvchilarning 90% ilovani o'rnatolmaydi).

Kod o'zgartirilgach "Sync Now" bosmaslik.

Yangi yangilanishda versionCodeni oshirishni unutish.

Professional yondashuv

minSdkni 24 yoki 26 qilib muvozanatli tanlash.

Har bir o'zgarishdan so'ng doimiy Gradle Sync qilish.

versionCodeni qat'iy oshirish va gradlew Wrapperdan foydalanish.

Tezkor bilim sinovi

Ilovaning Google Play'dagi yangilanishini qaysi parametr tekshiradi va u qanday o'zgarishi shart?
versionName — har doim faqat harflardan iborat bo'lishi kerak
versionCode — har safar avvalgi sonidan qat'iy katta butun son bo'lishi shart
compileSdk — doimo 100 dan katta bo'lishi lozim
applicationId — har bir yangilanishda o'zgarishi kerak

Amaliy mashg'ulot topshirig'i

1. Fayllar tahlili

Android Studio'da yangi loyiha oching. settings.gradle va modul darajasidagi build.gradle fayllarini tahlil qiling.

2. Maxsus Task yaratish

build.gradle oxiriga ilova nomi, applicationId va versionName parametrlarini terminalga chiqaruvchi maxsus vazifa yozing.

Darsning asosiy xulosalari

Avtomatlashtirish kuchi

Gradle dasturchining o'nlab qo'lda bajariladigan ishlarini avtomatlashtirib, ishonchli build yaratadi.

Versiya nazorati

compileSdk, minSdk va versionCode ilovaning hayoti va mosligini belgilovchi eng muhim tayanchlardir.

Keyingi dars: Build variantlari va Product Flavors (Debug vs Release, Free vs Paid)