4
4-dars: Dependency management va ziddiyatlarni hal qilish
Dependency management va ziddiyatlarni hal qilish: tranzitiv bog'liqliklar, exclude, resolutionStrategy
Haftada 3 ta dars. Slaydlarni oching va darsning o'quvchi sahifasida qo'shimcha ma'lumot hamda topshiriqlarni toping.
Dependency management va ziddiyatlarni hal qilish: tranzitiv bog'liqliklar, exclude, resolutionStrategy
ProGuard va R8 yordamida kodni optimallashtirish (1-qism): Shrinking, Obfuscation, Optimization
ProGuard va R8 qoidalari bilan ishlash (2-qism): -keep qoidalari, Reflection, mapping.txt
Mazkur haftada o'tilgan darslar bo'yicha mustaqil bajarish uchun topshiriqlar to'plami. Har bir vazifa 25–30 daqiqaga mo'ljallangan.
./gradlew app:dependencies --configuration releaseRuntimeClasspath buyrug'ini ishga tushiring.androidx.core:core yoki kotlinx-coroutines) aniqlang va u qaysi asosiy kutubxona orqali loyihaga kirib kelganini daftaringizga yozing.app/build.gradle faylida exclude group: yoki resolutionStrategy.force yordamida uni yagona barqaror versiyaga moslashtiring.app/build.gradle (yoki .kts) faylini oching va buildTypes.release blokiga quyidagi sozlamalarni kiriting: isMinifyEnabled = true (yoki Groovy'da minifyEnabled true)isShrinkResources = true (yoki Groovy'da shrinkResources true)./gradlew assembleRelease buyrug'i orqali Release APK hosil qiling.classes.dex ichidagi klass nomlari qanday qisqarganini (masalan, a.b.c) ko'zdan kechiring.UserProfile(val id: Long, val name: String, val role: String)OrderDetails(val orderId: String, val totalSum: Double)UserProfile klassini app/proguard-rules.pro faylida -keep class ... { *; } qoidasi orqali himoyalang.OrderDetails klassiga esa androidx.annotation.Keep kutubxonasidagi @Keep annotatsiyasini qo'llang.app/build/outputs/mapping/release/mapping.txt faylini ochib, ushbu klasslar qanday saqlanganini tekshiring.