Android 15: SDK 35 ga o‘tishdagi muammolar va yechimYaratilgan sanasi: 09 June, 2025

Eslatma: Ha, Android 16 tez orada chiqadi, lekin hali ham Android 15 haqida gapirish kech emas. Ayniqsa yirik katta kompaniyalarda ilovalar yangilanishlar bir zumda amalga oshmaydi. Barqarorlik, kutubxonalarning mosligi va foydalanuvchilarning yangilanishni qabul qilishi bularning barchasi vaqt talab qiladi. Agar siz hozirgina SDK 35 maqsad qilayotgan bo‘lsangiz, siz ortda qolgan emassiz siz amaliy yondashyapsiz.
Google har safar yangi Android versiyasini chiqarganida, bu ishlab chiquvchilar uchun har doim hayajonli(va ba’zida xavotirli) palladir. Yaqinda men ham targetSdkVersion
va compileSdkVersion
ni API darajasi 34(Android 14) dan API darajasi 35(Android 15)ga yangiladim. Ushbu blog postda esa siz bilan bu jarayondagi tajribamni yaxshi tomonlari, asabni buzgan joylari va avval bilganimda foydali bo‘lardi degan saboqlarimni bo‘lishaman.
Nega yangilanish zarur?
Dasturchi sifatida, operatsion tizimning so‘nggi versiyalaridan xabardor bo‘lib borish quyidagilar uchun muhim:
- Ilovaning mosligini ta’minlash
- Yangi API va tizimdagi o‘zgarishlardan foydalanish
- Kelajakdagi foydalanuvchi migratsiyasiga tayyor turish
- Agar siz SDK versiyasini vaqtida yangilamasangiz, Google oxir-oqibat sizni baribir yangilashga majbur qiladi aks holda ilovangizning yangi versiyasini Play Store’ga joylay olmaysiz.
Yangilash jarayoni
Muhitni sozlash
- Android Studio Giraffe / Hedgehog (versiyangizga qarab) o‘rnatildi
- SDK va vositalar yangilandi
- Android 15 tizimi (Beta yoki Stable) o‘rnatildi
Ilovani moslashtirish
- targetSdkVersion 35 ga yangilandi
- Kutubxonalar va bog‘liqliklar mosligini ta’minlash uchun yangilandi
Behavioral o'zgarish
Ba’zi ruxsatlar va fon vazifalarining ishlash tartibi o‘zgardi. Misol uchun:
- Foreground servis limiti:
dataSync
vamediaProcessing
servislari kuniga atigi 6 soat ishlashi mumkin. - Foreground xatti-harakati: Agar
onTimeout()
ichidastopSelf()
chaqirilmasa, tizim istisno(exception) chiqaradi. BOOT_COMPLETED
o‘zgarishi: Ilovalar endi avtomatik tarzda ba’zi foreground servislarni yuklash vaqtida ishga tushira olmaydi.- Overlay talabi: Fon rejimida foreground servisni ishga tushirish uchun endi ko‘rinadigan overlay kerak bo‘ladi.
Duch kelgan qiyinchiliklar
Hammasi silliq ketayotgan edi to Toolbar Status bar ustiga(overlap) chiqib qolgan muammoga duch kelgunimcha.

Manba: GitHub
Bu muammoni hal qilish uchun quyidagilarni res/values-v35/themes.xml
fayliga qo‘shishingiz kerak:
<item name="android:windowOptOutEdgeToEdgeEnforcement">true</item>
Yana bir variant biroz boshqacha. Siz enableEdgeToEdge()
funksiyasini Activity ichidagi onCreate()
metodida chaqirishingiz kerak va uni setContentView
yoki setContent {}
dan oldin bajarilayotganiga amin bo'ling.
Avvaliga muammo hal bo‘lganday tuyuldi va biroz xotirjam bo‘ldim. Lekin bir necha kun o‘tib, QA jamoamiz Pixel qurilmalarida, Android 15 da status bar hali ham toolbar ustiga chiqib ketayotganini aniqladi.
Eng g‘alati tomoni shundaki, bu muammo faqat Pixel telefonlarida yuzaga kelardi. Boshqa ishlab chiqaruvchilar qurilmalar(Samsung, Huawei va boshqalar) esa interfeysni to‘g‘ri ko‘rsatardi odatda hamma qurilmalarda muammo bo‘lishi yoki umuman bo‘lmasligi kerak.
Men esa chuqur qidiruvga kirishdim: Google’da izladim, StackOverflow’ni tekshirdim, rasmiy hujjatlarni ko‘zdan kechirdim. Ammo hech qanday javob topmadim, go‘yo dunyoda men bitta ushbu muammo bilan birinchi bo‘lib duch kelayotgan dasturchi edim.
Oxir-oqibat, soatlab debugging va tajribalar natijasida sababni topdim, yechim tungi rejim(night mode) uchun ham alohida qo‘llanishi kerak ekan. res/values-night-v35/themes.xml
faylida shu tema o‘zgartirishini qo‘shish Pixel qurilmalaridagi muammoni barqaror hal qildi.
Pixel va boshqa qurilmalarda, shuningdek, yorug‘ va qorong‘i rejimlarda bir xilligini ta’minlash uchun quyidagi fayllarga bir xil tema o‘zgartirishlarini qo‘shdim:
res/values-v35/themes.xml
res/values-night-v35/themes.xml
Natijada, barcha konfiguratsiyalarda status bar va toolbar ustma-ust kelish muammosi butunlay hal bo‘ldi.
Olingan saboqlar
- Rasmiy o‘zgarishlar hujjatlarini doimo o‘qing va tezda ko‘z yugurtirib chiqish yetarli emas. Ba’zi nozik o‘zgarishlar (masalan,
windowOptOutEdgeToEdgeEnforcement
) UI’ingizni hech qanday aniq belgilarsiz buzishi mumkin. - Bir yechim barcha rejimlar va qurilmalar uchun mos deb o‘ylamang
Faqat yorug‘ rejimda yoki bitta qurilmada ishlagani bilan ish tugadi hammasi hal degani emas. Qorong‘i rejim va Pixel qurilmalariga xos xatti-harakatlar o‘ziga xos muammolar keltirib chiqarishi mumkin. - Bir nechta qurilma brendlari va tizim konfiguratsiyalarida sinov o‘tkazing
Pixel qurilmalari platforma o‘zgarishlarini ko‘proq qat’iy qabul qiladi doim ular QA matritsangizda bo‘lishi kerak. - Tuzatishlarni yorug‘ va qorong‘i rejimlar uchun ham qo‘llang agar
values-v35
faylida o‘zgartirish qilgan bo‘lsangiz,values-night-v35
da ham unutmang agar haqiqatan kerak emasligiga ishonchingiz komil bo‘lmasa. - Target SDK’ni oshirishdan oldin bog‘liqliklarni yangilang kutubxonalarni birinchi yangilash moslik muammolarini erta aniqlashga yordam beradi va ko‘p vaqt sarflanadigan debuggingni kamaytiradi.
Yakuniy fikrlar
Android 14 dan 15 ga yangilanish faqat versiya raqamini oshirish emas, balki platforma o‘zgarishlari, xatti-harakatdagi nozikliklar va qurilmaga xos nomuvofiqliklarni chuqur tushunishni talab qiladi.
Bunday holatlar professional Android ishlab chiqishda sinov(testing), hujjatlarni o‘qish va jamoatchilik fikrini(DX) kuzatishning nega muhimligini eslatadi. Ba’zida qiyin bo‘lsa-da, aynan shu qiyinchiliklarni yengish bizni yanada yaxshi dasturchi qiladi.
Agar Android 15 ga yangilanishni rejalashtirayotgan bo‘lsangiz, vaqt ajrating, sinovlarni to‘liq o‘tkazing va qorong‘i rejimni tekshirishni unutmang.