SDK Platform: bu nima, versiyalar va Android SDK Manager

Muallif: IT Sectr Nashr etilgan: 2026-02-09 O'qish vaqti: 11 daq

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 — ma'lum bir API Level-ga mos keladigan bir Android versiyasi uchun kutubxonalar va vositalar to'plami.
  • API Level — mavjud sinflar va metodlarni belgilaydigan Android SDK versiyasining raqamli identifikatori.
  • SDK Manager — SDK Platform, Tools va tizim tasvirlarini o'rnatish, yangilash va o'chirish uchun vosita.
  • compileSdk — ilovani kompilyatsiya qilish uchun ishlatiladigan SDK Platform versiyasi, eng yangi barqaror bo'lishi kerak.
  • targetSdk — ilova sinovdan o'tkazilgan va runtime xatti-harakati optimallashtirilgan API Level.

SDK Platform nima

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.

Nega har bir versiya uchun alohida SDK Platform kerak

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 versiyasiAPI LevelKod nomiChiqarilgan yil
Android 1231Snow Cone2021
Android 1333Tiramisu2022
Android 1434Upside Down Cake2023
Android 1535Vanilla Ice Cream2024

SDK Platform tarkibi: asosiy komponentlar

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.

Tizim tasvirlari va emulator

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).

Yig'ish va tuzatish vositalari

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.

Platforma resurslari

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.

KomponentTavsifHajmi (taxminan)
android.jarKompilyatsiya uchun Android API kutubxonalari50–120 MB
System ImageEmulator uchun OT tasviri600–1500 MB
Build-ToolsAPK va AAB yig'ish vositalari200–400 MB
Platform ResourcesTizim resurslari (mavzular, stillar)30–80 MB
SkinsEmulator uchun qurilma profillari10–50 MB

API Level va SDK Platform versiyalari

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.

API Level evolyutsiyasi: asosiy o'zgarishlar

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.

AndroidAPIYilAsosiy yangilik
6.0 Marshmallow232015Runtime ruxsatnomalari
8.0 Oreo262017Bildirishnoma kanallari, Autofill
10292019Scoped Storage, Dark Theme
12312021SplashScreen, exported atributi
14342023Broadcast bayroqlari, Foreground Services

SDK Manager: o'rnatish va sozlash

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 orqali SDK Platform o'rnatish

sdkmanager buyrug'i "platforms;android-{API}" formatida paket identifikatorini qabul qiladi. Masalan, SDK Platform 35 ni o'rnatish uchun buyruq quyidagicha ko'rinadi:

bash
# 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"

Gradle orqali avtomatik o'rnatish

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.

Emulator uchun tizim tasvirini sozlash

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.

bash
# 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

Gradle-da compileSdk, targetSdk va minSdk

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).

Gradle konfiguratsiyasi namunasi

groovy
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"

compileSdk, minSdk va targetSdk ni qanday tanlash

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.

ParametrMaqsadTavsiya
compileSdkKompilyatsiya uchun API versiyasiEng so'nggi barqaror
minSdkMinimal qo'llab-quvvatlanadigan versiya95% qamrov uchun API 26
targetSdkXatti-harakat o'zgarishlari uchun versiyaEng so'nggi barqaror + sinov

Kodda SDK Platform bilan ishlash misollari

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.

Runtime da API Level tekshirish

kotlin
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)
        }
    }
}

@RequiresApi bilan yangi API-lardan foydalanish

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.

kotlin
@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)
    }
}

O'rnatilgan SDK Platform aniqlash

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.

kotlin
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

SDK Platform Android Studio dan nimasi bilan farq qiladi?

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.

Nechta SDK Platform o'rnatish kerak?

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.

Yangi API-lar uchun eski SDK Platform ishlatish mumkinmi?

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.

SDK Platform yangilanishlari nima?

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.

SDK Platform-lar diskda qayerda saqlanadi?

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

  • SDK Platform — ma'lum bir API Level-ga mos keladigan bir Android versiyasi uchun kutubxonalar va vositalar to'plami.
  • API Level — mavjud sinflar, metodlar va tizim xatti-harakatini belgilaydigan raqamli identifikator.
  • SDK Manager — SDK Platform, System Images va Build-Tools ni GUI yoki buyruq qatori orqali o'rnatish va yangilash vositasi.
  • build.gradle faylidagi compileSdk, minSdk va targetSdk parametrlari kompilyatsiya uchun platforma versiyasini va moslikni boshqaradi.
  • Eski qurilmalarda yangi API-larni chaqirish uchun Build.VERSION.SDK_INT tekshiruvlari va @RequiresApi annotatsiyasidan foydalaning.
  • Google Google Play da chop etish uchun targetSdk ni yangi Android versiyasi chiqqandan keyin bir yil ichida yangilashni talab qiladi.
  • SDK Platform ni SDK Manager orqali muntazam yangilab turish yangi API-larga, tuzatishlarga va samaradorlik yaxshilanishlariga kirishni ta'minlaydi.

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.

Loyihani muhokama qilish

Shuningdek o'qing