SDK Platform Android — bu ma'lum bir operatsion tizim versiyasi uchun kutubxonalar, tizim tasvirlari va vositalar to'plamidir. Har bir platforma o'z API Level-iga biriktirilgan va Android API sinflari bilan android.jar, runtime komponentlari va emulatorni o'z ichiga oladi. Google Developer Documentation, 2026 ma'lumotlariga ko'ra, dasturchilar SDK Platform-dan kodni maqsadli OT versiyasiga qarshi kompilyatsiya qilish uchun foydalanadilar. O'rnatilgan platforma bo'lmasa, APK yig'ish yoki emulatorda ilovani ishga tushirish mumkin emas. SDK Manager ushbu komponentlarni yuklab olish, yangilash va o'chirishni boshqaradi.
Asosiy ma'lumotlar
SDK Platform — Android SDK-ning asosiy komponenti bo'lib, ma'lum bir Android versiyasi ostida ilovalar ishlab chiqish uchun kutubxonalar va vositalarning to'liq to'plamini taqdim etadi. Har bir platforma API Level bilan identifikatsiyalanadi — yangi OT versiyalari chiqishi bilan o'sib boruvchi butun son. Masalan, Android 13 API Level 33-ga, Android 14 API Level 34-ga, Android 15 API Level 35-ga mos keladi.
Android Studio (IDE) dan farqli o'laroq, SDK Platform kod muharriri yoki tuzatuvchini o'z ichiga olmaydi. Bu kompilyator va quruvchiga ulanadigan tizim qatlamidir. Dasturchi import android.app.Activity yozganda, kompilyator ushbu sinfni ma'lum SDK Platform-ning android.jar faylidan oladi. Kerakli API Level bilan platforma o'rnatilmagan bo'lsa, kod kompilyatsiya qilinmaydi.
Google har bir barqaror Android versiyasi uchun yangi SDK Platform chiqaradi. Tarix 35 dan ortiq API Level-ni o'z ichiga oladi — Android 1.0 (API 1) dan Android 15 (API 35) gacha. Har bir platforma orqaga qarab mos keladi: API Level 21 uchun yozilgan kod API Level 35 da ishlaydi, lekin aksi mumkin emas.
Android tez rivojlanadi: har bir versiya yangi API-lar qo'shadi, mavjudlarining xatti-harakatini o'zgartiradi va cheklovlar kiritadi. Masalan, Android 10 (API 29) Scoped Storage-ni joriy qildi, Android 12 (API 31) — SplashScreen API, Android 14 (API 34) — majburiy BroadcastReceiver bayroqlari. Dasturchi ushbu imkoniyatlardan foydalanish uchun ilovani joriy platformaga qarshi yig'ishi kerak.
Shu bilan birga ilova eski OT versiyalarida ishlashi mumkin. Buning uchun Gradle-da minSdk — ilova ishga tushadigan minimal API Level ko'rsatiladi. Kod versiya tekshiruvi va shartli API chaqiruvlaridan foydalanadi. Bunday yondashuv yangi funksiyalarni yo'qotmasdan moslikni ta'minlaydi.
| Android versiyasi | API Level | Kod nomi | Chiqarilgan yil |
|---|---|---|---|
| Android 12 | 31 | Snow Cone | 2021 |
| Android 13 | 33 | Tiramisu | 2022 |
| Android 14 | 34 | Upside Down Cake | 2023 |
| Android 15 | 35 | Vanilla Ice Cream | 2024 |
SDK Platform — bu bitta fayl emas, balki birgalikda ilovaning kompilyatsiyasi, yig'ilishi va sinovdan o'tkazilishini ta'minlaydigan komponentlar to'plamidir. Asosiy element android.jar — ushbu versiyaga kiritilgan Android API sinflari bilan arxiv. Ushbu fayl Kotlin yoki Java kompilyatoriga ulanadi va dasturchi uchun qaysi sinflar, metodlar va annotatsiyalar mavjudligini belgilaydi.
Har bir SDK Platform Android Virtual Device emulatori uchun System Image — operatsion tizim tasvirini o'z ichiga oladi. Tegishli tasvir bo'lmasa, emulator kerakli API Level bilan virtual qurilmani ishga tushira olmaydi. System Images har xil turlarda bo'ladi: Google APIs (Google xizmatlari bilan), Google Play (Play Store bilan) va AOSP (Google xizmatlarisiz toza Android).
SDK Platform ma'lum API Level uchun optimallashtirilgan Build-Tools va Platform-Tools versiyasini o'z ichiga oladi. Build-Tools aapt2 (Android Asset Packaging Tool), dx/d8 (Dalvik/ART kompilyatori) va ApkSigner-ni o'z ichiga oladi. Platform-Tools ADB (Android Debug Bridge), fastboot va SQLite-ni taqdim etadi. Ushbu vositalar SDK Platform-dan mustaqil ravishda SDK Manager orqali yangilanadi.
Har bir platforma standart Android resurslarini — tizim mavzulari, stillari, animatsiyalari, ranglari va o'lchamlarini o'z ichiga oladi. Ushbu resurslar kompilyatsiya vaqtida ishlatiladi: agar dasturchi @android:style/Theme.Material.Light ga murojaat qilsa, quruvchi ta'rifni SDK Platform resurslaridan oladi. Bu barcha qurilmalarda tizim komponentlarining bir xil ko'rinishini kafolatlaydi.
| Komponent | Tavsif | Hajmi (taxminan) |
|---|---|---|
| android.jar | Kompilyatsiya uchun Android API kutubxonalari | 50–120 MB |
| System Image | Emulator uchun OT tasviri | 600–1500 MB |
| Build-Tools | APK va AAB yig'ish vositalari | 200–400 MB |
| Platform Resources | Tizim resurslari (mavzular, stillar) | 30–80 MB |
| Skins | Emulator uchun qurilma profillari | 10–50 MB |
API Level — Android SDK versiyasining butun sonli identifikatoridir. Har bir Android reliziga monoton ravishda o'sib boruvchi bitta API Level mos keladi. Dasturchi API Level-ni build.gradle faylidagi uchta asosiy parametrda ko'rsatadi: compileSdk, minSdk va targetSdk. Ushbu parametrlarning tanlovi qaysi API-lar mavjudligi va tizim ilovani qanday boshqarishiga bog'liq.
Google minSdk darajasini joriy tarqalish chegarasidan past bo'lmagan holda saqlashni tavsiya qiladi — Android Studio Distribution Dashboard (2026) ma'lumotlariga ko'ra, qurilmalarning taxminan 95% Android 8.0 (API 26) va undan yuqori versiyalarda ishlaydi. compileSdk eng so'nggi barqaror bo'lishi kerak — bu yangi API-larga kirish imkonini beradi va lint tekshiruvlariga eskirgan metodlarni aniqlashga imkon beradi.
Har bir yangi API Level bilan Google muhim o'zgarishlarni joriy qiladi. Android 6.0 (API 23) runtime ruxsatnomalarini qo'shdi — ilova ruxsatlarni o'rnatish vaqtida emas, balki ish paytida so'raydi. Android 8.0 (API 26) formalarni avtomatik to'ldirish va bildirishnoma kanallarini joriy qildi. Android 12 (API 31) intent-larga yondashuvni tubdan o'zgartirdi — SplashScreen API va exported atributi orqali komponentlarni eksport qilish paydo bo'ldi. Android 14 (API 34) BroadcastReceiver uchun bayroqlarni ko'rsatishni majburiy qildi va foreground services uchun qattiq cheklovlar joriy qildi.
API Level tarixini tushunish dasturchiga to'g'ri moslik strategiyasini tanlashga yordam beradi. Agar ilova compileSdk 35 dan foydalansa, lekin minSdk 26 bo'lsa, kod API 35 metodlarini faqat Build.VERSION.SDK_INT orqali versiyani tekshirgandan keyin chaqirishi mumkin. Bunday yondashuv version-gated development deb ataladi va sanoat standartidir.
| Android | API | Yil | Asosiy yangilik |
|---|---|---|---|
| 6.0 Marshmallow | 23 | 2015 | Runtime ruxsatnomalari |
| 8.0 Oreo | 26 | 2017 | Bildirishnoma kanallari, Autofill |
| 10 | 29 | 2019 | Scoped Storage, Dark Theme |
| 12 | 31 | 2021 | SplashScreen, exported atributi |
| 14 | 34 | 2023 | Broadcast bayroqlari, Foreground Services |
SDK Manager — Android SDK komponentlarini boshqarish vositasi: yangi SDK Platform-larni o'rnatish, mavjudlarini yangilash va eskirganlarini o'chirish. SDK Manager Android Studio-da grafik interfeys sifatida ham, sdkmanager orqali buyruq qatori rejimida ham mavjud. Buyruq qatori orqali SDK Manager grafik interfeysi bo'lmagan CI/CD pipeline-larida foydalanish uchun qulaydir.
SDK Manager platformalarni Android SDK katalogiga o'rnatadi, standart sifatida Linux va macOS da $HOME/Android/Sdk, Windows da esa %LOCALAPPDATA%\Android\Sdk manzilida joylashgan. platforms katalogi ichida android-{API Level} ko'rinishidagi papkalar mavjud, ularning har biri to'liq SDK Platform-ni o'z ichiga oladi.
sdkmanager buyrug'i "platforms;android-{API}" formatida paket identifikatorini qabul qiladi. Masalan, SDK Platform 35 ni o'rnatish uchun buyruq quyidagicha ko'rinadi:
# API Level 35 uchun SDK Platform o'rnat
sdkmanager "platforms;android-35"
# Bir buyruq bilan bir nechta platformani o'rnat
sdkmanager "platforms;android-34" "platforms;android-33" "platforms;android-31"
# O'rnatilgan platformalar ro'yxati
sdkmanager --list_installed | grep platforms
# Eskirgan platformani o'chir
sdkmanager --uninstall "platforms;android-28"
Zamonaviy Android loyihalari birinchi yig'ishda SDK Platform-ni avtomatik o'rnatishi mumkin bo'lgan Gradle Plugin-dan foydalanadi. Buning uchun build.gradle da compileSdk ko'rsatilishi va mahalliy konfiguratsiyada SDK katalogi qo'shilishi kerak. Android Studio ham loyihani ochishda etishmayotgan platformani o'rnatishni taklif qiladi — Gradle sinxronizatsiya oynasida "Install SDK Platform" tugmasini bosish kifoya.
SDK Platform-ni SDK Manager orqali muntazam yangilab turish muhimdir — platforma bilan birga Build-Tools va Platform-Tools ham yangilanadi, bu yig'ish samaradorligi va tuzatish barqarorligiga ta'sir qiladi. Google SDK yangilanishlarini har 2-3 haftada tekshirishni tavsiya qiladi, ayniqsa Google Play da ilovaning yangi versiyasini chop etishdan oldin.
Muayyan API Level bilan emulatorni ishga tushirish uchun bir xil versiyadagi System Image o'rnatilishi kerak. SDK Manager turli arxitekturalar (x86_64, arm64-v8a) va turlarning (Google APIs, Google Play, AOSP) tasvirlarini yuklab olish imkonini beradi. Tasvir yuklab olingandan so'ng, AVD Manager uning asosida virtual qurilma yaratadi.
# API 35 uchun Google APIs bilan System Image o'rnat
sdkmanager "system-images;android-35;google_apis;x86_64"
# Buyruq qatori orqali AVD yarat
avdmanager create avd -n pixel8 -k "system-images;android-35;google_apis;x86_64"
# Yaratilgan AVDlar ro'yxati
avdmanager list avd
Uchta parametr build.gradle faylida ilovaning SDK Platform bilan ishlashini belgilaydi. compileSdk — kompilyatsiya uchun ishlatiladigan API Level. Ushbu parametr kodda qaysi Android API sinflari mavjudligini ko'rsatadi. compileSdk uchalasining eng yangisi bo'lishi kerak va runtime xatti-harakatiga ta'sir qilmaydi — ilova kompilyatsiya qilinadi, lekin faqat qurilmada mavjud bo'lgan API-lardan foydalanadi.
minSdk — ilova o'rnatilishi mumkin bo'lgan minimal API Level. Google Play ilovani minSdk dan past versiyali qurilmada o'rnatishga ruxsat bermaydi. Ushbu parametr moslik chegarasini belgilaydi va auditoriya qamroviga ta'sir qiladi. minSdk qanchalik past bo'lsa, shuncha ko'p qurilmalar qo'llab-quvvatlanadi, lekin tekshiruvsiz kamroq yangi API-lardan foydalanish mumkin.
targetSdk — ilova sinovdan o'tkazilgan API Level. Android tizimi xatti-harakat o'zgarishlarini qo'llash uchun targetSdk dan foydalanadi: agar ilova yangi API Level ga yangilanmagan bo'lsa, tizim eski versiyalar uchun moslik rejimini yoqadi. Google Play ma'lum darajadan past bo'lmagan targetSdk talab qiladi — 2026 yil uchun bu API 34 (Android 14).
android {
compileSdk 35
defaultConfig {
applicationId "com.example.app"
minSdk 26
targetSdk 35
versionCode 1
versionName "1.0"
}
compileOptions {
sourceCompatibility JavaVersion.VERSION_17
targetCompatibility JavaVersion.VERSION_17
}
}
// Android SDK versiyasi SDK Manager orqali o'rnatilishi kerak
// sdkmanager "platforms;android-35"
Tanlash strategiyasi loyihaning maqsadlariga bog'liq. Yangi ilova uchun: compileSdk — eng so'nggi barqaror (2026 yil boshida 35), minSdk — API 26 (Android 8.0, qurilmalarning 95% ni qamrab oladi), targetSdk — eng so'nggi barqaror. Mavjud ilovani yangilash uchun: compileSdk ni darhol oshiring, targetSdk — barcha xatti-harakat o'zgarishlari sinovdan o'tkazilgandan so'ng, minSdk — faqat eskirgan qurilmalardan voz kechish zarurati tug'ilganda.
Google targetSdk ning yangi Android versiyasi chiqqandan keyin bir yil ichida yangilanishini talab qiladi. Ushbu talabga javob bermaydigan ilovalar Google Play da yangilanishlarni chop eta olmaydi. Muddatlarni kuzatish uchun rasmiy Android OS yangilanish taqvimidan foydalaning.
| Parametr | Maqsad | Tavsiya |
|---|---|---|
| compileSdk | Kompilyatsiya uchun API versiyasi | Eng so'nggi barqaror |
| minSdk | Minimal qo'llab-quvvatlanadigan versiya | 95% qamrov uchun API 26 |
| targetSdk | Xatti-harakat o'zgarishlari uchun versiya | Eng so'nggi barqaror + sinov |
Turli Android versiyalari ostida ilovalar ishlab chiqishda API-larning mavjudligini hisobga olish kerak. Agar ilova compileSdk 35 dan foydalansa, lekin API 31 bo'lgan qurilmada ishlasa, API 34 da qo'shilgan metodlarni chaqirish NoSuchMethodError yoki AbstractMethodError ga olib keladi. Yangi API-larni xavfsiz chaqirish uchun Build.VERSION.SDK_INT orqali versiya tekshiruvi qo'llaniladi.
class FeatureChecker {
fun registerNotificationChannel(context: Context) {
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O) {
// Notification channels API 26 dan boshlab mavjud
val channel = NotificationChannel(
"updates",
"Yangilanishlar",
NotificationManager.IMPORTANCE_DEFAULT
)
val manager = context.getSystemService(NotificationManager::class.java)
manager.createNotificationChannel(channel)
}
}
}
Faqat ma'lum versiyalarda chaqiriladigan metodlar uchun @RequiresApi annotatsiyasidan foydalaning. Bu lint tekshiruvlariga metod xavfsiz ekanligini bildiradi va ogohlantirishlarni o'chiradi. SDK_INT tekshiruvi bilan birgalikda annotatsiya kodni tozaroq va ko'rib chiqanlar uchun tushunarliroq qiladi.
@RequiresApi(Build.VERSION_CODES.UPSIDE_DOWN_CAKE)
fun scheduleExactAlarm(manager: AlarmManager, time: Long) {
// API 34: SCHEDULE_EXACT_ALARM bayrog'i bilan scheduleExact
if (manager.canScheduleExactAlarms()) {
manager.setExact(AlarmManager.RTC_WAKEUP, time, pendingIntent)
} else {
// SCHEDULE_EXACT_ALARM ruxsatini so'raymiz
val intent = Intent(Settings.ACTION_REQUEST_SCHEDULE_EXACT_ALARM)
context.startActivity(intent)
}
}
fun safeScheduleAlarm(context: Context, triggerTime: Long) {
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.UPSIDE_DOWN_CAKE) {
scheduleExactAlarm(getAlarmManager(context), triggerTime)
} else {
// Ruxsat tekshiruvisiz eski setExact metodi
getAlarmManager(context).setExact(AlarmManager.RTC_WAKEUP, triggerTime, pendingIntent)
}
}
Ba'zan dasturchi qurilmasida yoki CI da qaysi SDK Platform versiyasi o'rnatilganligini bilish kerak bo'ladi. Buni ADB orqali yoki ilova kodida dasturiy ravishda amalga oshirish mumkin. Qurilmaning API Level ini bilish versiyaga xos xatti-harakatni sinovdan o'tkazishda yordam beradi.
fun logDeviceInfo() {
with (Build.VERSION) {
Log.d("SDK_Demo", "SDK_INT: $SDK_INT")
Log.d("SDK_Demo", "RELEASE: $RELEASE")
Log.d("SDK_Demo", "CODENAME: $CODENAME")
Log.d("SDK_Demo", "PREVIEW_SDK_INT: $PREVIEW_SDK_INT")
}
// Natija: SDK_INT: 35, RELEASE: 15, CODENAME: REL
}
Ko'p beriladigan savollar
Android Studio IDE, SDK Platform esa kompilyatsiya uchun kutubxonalar va vositalar to'plamidir. Studio ilovalarni yig'ish uchun SDK Platform dan foydalanadi, lekin platformalar SDK Manager orqali alohida yuklab olinadi va Studio versiyasidan mustaqil ravishda yangilanishi mumkin.
Odatda uchta versiya yetarli: eng yangi (compileSdk), minimal (minSdk) va sinov uchun bitta oraliq. SDK Manager ehtiyojga qarab platformalarni osongina qo'shish va o'chirish imkonini beradi. Dasturchilar o'rtacha ishchi kompyuterida 3-5 platformani saqlaydilar.
Yo'q. Har bir SDK Platform faqat o'z versiyasining API-larini o'z ichiga oladi. API 35 dan metodlarni chaqirish uchun android-35 platformasi kerak. Eski platforma o'rnatilgan holda yangi compileSdk ko'rsatish kompilyatsiya xatosiga olib keladi.
Google har bir versiya uchun SDK Platform yangilanishlarini chiqaradi: xato tuzatishlari, yangi API-lar, samaradorlik yaxshilanishlari. SDK Manager mavjud yangilanishlar haqida xabar beradi. Barqaror yig'ish uchun platformaning eng so'nggi reviziyasini o'rnatish tavsiya etiladi.
Standart sifatida har bir SDK Platform Android/Sdk/platforms/android-{API} katalogida 200-800 MB joy egallaydi. Papka ichida android.jar, resurslar bilan data papkasi va emulator va yig'ish uchun konfiguratsiya fayllari joylashgan.
Xulosa
Biz kalit topshirig'i bilan mobil ilovani ishlab chiqamiz
IT Sectr 2017-yildan beri startaplar va korxonalar uchun iOS va Android ilovalarini yaratadi. Biz sizga maslahat beramiz va eng yaxshi yechimni taklif qilamiz.