minSdkVersion: bu nima, Androidning minimal versiyasini qanday tanlash kerak

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

minSdkVersion — ilova oʻrnatilishi va ishga tushirilishi mumkin boʻlgan minimal Android API Level. Parametr build.gradle faylining defaultConfig blokida koʻrsatiladi va moslikning quyi chegarasini belgilaydi: agar qurilmaning API Leveli minSdk qiymatidan past boʻlsa, tizim oʻrnatishni bloklaydi va Google Play bunday qurilmaga ilovani koʻrsatmaydi. Android Developers maʼlumotlariga koʻra, minSdk ni toʻgʻri tanlash auditoriya qamrovi va zamonaviy API larning mavjudligi oʻrtasidagi muvozanat uchun muhimdir.

Asosiy fikrlar

  • minSdkVersion — ilovani oʻrnatish uchun minimal API Level, build.gradle da belgilanadi
  • Google Play minSdkVersion dan past API Levelga ega qurilmalarda ilovani yashiradi
  • Qamrov minSdk = 26 (Android 8.0) ~85% qurilmalarni qamrab oladi, minSdk = 21 — ~97%
  • AndroidX va Jetpack kutubxonalari past minSdk da yangi API lardan foydalanishga imkon beradi
  • lint minSdk dan yuqori API chaqiruvlari haqida ogohlantiradi — @RequiresApi yoki SDK_INT dan foydalaning

Android da minSdkVersion nima?

minSdkVersion — build.gradle faylidagi ilovani oʻrnatish uchun minimal Android API Levelini belgilaydigan butun son parametri. Agar qurilmaning API Leveli koʻrsatilgan qiymatdan past boʻlsa, PackageManager oʻrnatishni bloklaydi va Google Play Store bunday qurilma uchun ilovani qidiruv natijalaridan yashiradi. minSdkVersion qurilish bosqichida AndroidManifest.xml fayliga <uses-sdk android:minSdkVersion> tegi orqali yoziladi va har bir oʻrnatishda tekshiriladi.

minSdkVersion qiymati — auditoriya qamrovi va yangi API larga kirish oʻrtasidagi kelishuvdir. minSdk qancha past boʻlsa, shuncha koʻp qurilma ilovani oʻrnatishi mumkin, ayniqsa eski Android smartfonlari mashhur boʻlgan rivojlanayotgan mintaqalarda. minSdk qancha yuqori boʻlsa, shuncha kam orqaga moslik kodi talab qilinadi va koʻproq zamonaviy API larni ish vaqtida tekshirishlarsiz mavjud boʻladi. Android Jetpack va AndroidX kutubxonalari koʻplab yangi API larning eski Android versiyalariga backportlarini taʼminlaydi, bu funksionallikni yoʻqotmasdan pastroq minSdk tanlashga imkon beradi.

minSdkVersion dasturlashning barcha bosqichlariga taʼsir qiladi: statik tahlil (lint minSdk dan ogohlantirishlar uchun foydalanadi), bogʻliqliklar mosligi (kutubxonalar oʻz minSdk ini talab qilishi mumkin), sinov (minSdk li qurilmalarda sinovdan oʻtkazish kerak) va Google Play Console (auditoriya qamrovi minSdk asosida hisoblanadi). minSdkVersion ni oʻzgartirish — loyiha sozlamalaridagi eng masʼuliyatli qarorlardan biri, chunki u kod, testlar va foydalanuvchi bazasiga taʼsir qiladi.

minSdkVersion qayerda koʻrsatiladi

Build.gradle.kts (Kotlin DSL) — Android loyihalarida zamonaviy standart. minSdk parametri modul darajasida defaultConfig blokida belgilanadi. Qiymat turli qurilish turlari va mahsulot flavorlari uchun qayta yozilishi mumkin, bu asosiy qiymatni oʻzgartirmasdan pastki API larda sinovdan oʻtkazishga imkon beradi.

kotlin
// build.gradle.kts — minSdk ning asosiy sozlamasi
android {
    namespace = "com.example.myapp"
    compileSdk = 36

    defaultConfig {
        applicationId = "com.example.myapp"
        minSdk = 26      // Android 8.0 Oreo
        targetSdk = 36
        versionCode = 1
        versionName = "1.0.0"
    }

    // Turli flavor lar uchun minSdk ni qayta belgilash
    flavorDimensions += "tier"
    productFlavors {
        create("free") {
            minSdk = 26
        }
        create("premium") {
            minSdk = 26
        }
    }
}

Misolda minSdk = 26 Android 8.0 Oreo ga mos keladi. Bu 2026-yilda mashhur qiymat: Android Studio Distribution Dashboard ga koʻra qurilmalarning faqat ~15% ni kesadi. compileSdk = 36 barcha Android 16 API lariga kirish beradi, targetSdk = 36 esa eng soʻnggi versiyaning xatti-harakat oʻzgarishlarini faollashtiradi. Debug qurilishlari uchun minSdk eski emulyatorlarda sinash uchun tushirilishi mumkin.

minSdkVersion ni qanday tanlash kerak: omillar va strategiya

minSdkVersion tanlovi — maqsadli auditoriya, API talablari va kutubxona ekotizimini tahlil qilishga asoslangan strategik qaror. Barcha loyihalar uchun yagona toʻgʻri qiymat yoʻq. 2026-yilda Android Studio yangi loyihalar uchun minSdk = 26 (Android 8.0) asosiy daraja sifatida tavsiya qiladi, ammo B2B ilovalari yoki korporativ yechimlar uchun pastroq yoki yuqori qiymatlar maqbuldir.

minSdkVersion tanlash omillari

Birinchi omil — Distribution Dashboard. Android Studio Google Play maʼlumotlari asosida API Level boʻyicha faol qurilmalarning har oy yangilanadigan statistikasini taqdim etadi. minSdkVersion maqsadli bozorning faol qurilmalarining kamida 90-95% ini qamrab olishi kerak. Afrika va Janubi-Sharqiy Osiyoda auditoriyasi boʻlgan xalqaro ilovalar uchun eski qurilmalarning yuqori ulushi tufayli minSdk 21 ga (Android 5.0) tushirilishi kerak.

Ikkinchi omil — bogʻliqlik talablari. Har bir kutubxona oʻz manifestida koʻrsatilgan oʻz minSdkVersion ga ega. Agar kutubxona minSdk 29 talab qilsa va ilova — minSdk 26, qurilish manifest merger xatosi bilan tugaydi. Zamonaviy Google Play Services kutubxonalari minSdk 21, Firebase — minSdk 21, aksariyat Jetpack kutubxonalari — minSdk 21 yoki 26, Compose BOM — minSdk 21 ga ega. Compose uchun minimal chegara — API 21.

Uchinchi omil — zarur API lar. Agar ilovaning asosiy funksionalligi faqat maʼlum darajadan mavjud boʻlgan API ni talab qilsa (masalan, PhotoPicker — API 34, Predicted Navigation — API 35), bu minSdk ni oshirishni oqlashi mumkin. Biroq koʻpincha AndroidX backportlari (Activity Result API, NotificationCompat) va ish vaqti tekshiruvlari kombinatsiyasi past minSdk ni saqlash uchun ishlatiladi.

minSdkAndroid versiyasiQamrov (~2026)Tavsiya
215.0 Lollipop97%Maksimal qamrov, koʻp fallback kod
236.0 Marshmallow95%Runtime Permissions mahalliy mavjud
268.0 Oreo85%Tavsiya etilgan asosiy daraja
2910 Q72%Scoped Storage mahalliy, kam test
3112 Snow Cone55%Nish ilovalar, zamonaviy API lar

Bosqichma-bosqich tanlash strategiyasi

1-qadam: Android Studio ni oching, File → New Project va ustada tavsiya etilgan minSdk ni koʻring. 2-qadam: Android Studio da Distribution Dashboard ni tekshiring (View → Tool Windows → App Inspection → Distribution Dashboard). 3-qadam: loyihaning bogʻliqliklarini tahlil qiling — qurilishni bajaring va manifest merger mojarolarini hal qiling. 4-qadam: X darajali API larning qaysilari haqiqatan ham backportsiz ishlatilishini baholang. 5-qadam: maqsadli auditoriyaning 90%+ ini qamrab oladigan va barcha bogʻliqliklar bilan mos keladigan minimal qiymatni minSdk sifatida belgilang.

Qurilma qamrovi: API Level taqsimoti (2026)

Qurilma taqsimoti API Level boʻyicha — har chorakda oʻzgaradigan dinamik koʻrsatkich. 2026-yil iyun oyi uchun Android Studio Distribution Dashboard maʼlumotlariga koʻra, faol Android qurilmalarining taxminan 85% i API 26 (Android 8.0) va undan yuqori, 72% i API 29 (Android 10) va undan yuqori, 55% i API 31 (Android 12) va undan yuqori da ishlaydi. Xitoy bozori koʻplab Huawei qurilmalarida Google Play Services yoʻqligi sababli oʻz statistikasiga ega.

GMS qurilmalari (Google Mobile Services) tezroq yangilanadi: ularda API 31+ ulushi ishlab chiqaruvchilarga Google Play ning majburiy talablari tufayli 68% ga etadi. Non-GMS qurilmalari (Huawei, Honor, baʼzi Xitoy brendlari) eski taqsimotga ega: ularda API 31+ ulushi taxminan 35% ni tashkil qiladi. Agar ilova xalqaro bozorga moʻljallangan boʻlsa, global statistikaga tayanib. Agar Xitoy bozoriga — non-GMS segmentini hisobga oling.

API LevelAndroid versiyasiGlobal qamrovNon-GMS qamrov
21-255.0-6.0~2%~5%
26-288.0-9.0~13%~20%
29-3010-11~15%~25%
31-3312-13~20%~25%
34-3514-15~30%~15%
3616~20%~10%

Xulosa: xalqaro ilova uchun minSdk 26 minimal orqaga moslik xarajatlari bilan qurilmalarning 85% ini qamrab oladi. Rivojlanayotgan mintaqalarda auditoriyasi boʻlgan ilovalar uchun minSdk 21 (97% qamrov) asosli, ammo eskirgan API lar bilan ishlash uchun koʻproq kod talab qiladi. Boshqariladigan qurilmalar parkiga ega Enterprise ilovalari uchun minSdk 31 ni belgilab, fallback kodidan butunlay qutulishingiz mumkin.

Orqaga moslik: AndroidX, lint va @RequiresApi

Orqaga moslik — past minSdkVersion dagi asosiy qiyinchilik. AndroidX (avval Support Library) zamonaviy API larning eski Android versiyalariga backportlarini taʼminlaydi: Material Design uchun AppCompatActivity, FragmentManager, Loader, NotificationCompat, PreferenceFragmentCompat va oʻnlab boshqa komponentlar. Mahalliy API lar oʻrniga AndroidX ekvivalentlaridan foydalanish — moslikka birinchi qadamdir.

lint (Android Studio ning statik analizatori) minSdkVersion dan yuqori API chaqiruvlari uchun kodni skanerdan oʻtkazadi. Agar metod @RequiresApi bilan minSdk dan yuqori API Levelda belgilangan va tekshiruvsiz chaqirilgan boʻlsa, lint xatoni ajratib koʻrsatadi. Ogohlantirishni bostirish uchun metodda @SuppressLint("NewApi") yoki butun funksiyada @RequiresApi(Build.VERSION_CODES.TIRAMISU) annotatsiyasidan foydalaning. Ish vaqti tekshiruvlari Build.VERSION.SDK_INT orqali — eski qurilmalarda yangi API larni xavfsiz chaqirishning asosiy mexanizmi.

kotlin
// Orqaga moslik misoli: PhotoPicker (API 34+) va fallback
import android.os.Build
import android.os.Build.VERSION
import android.os.Build.VERSION_CODES
import androidx.activity.result.contract.ActivityResultContracts
import androidx.appcompat.app.AppCompatActivity

class ImagePickerActivity : AppCompatActivity() {

    // Activity Result API (AndroidX) — istalgan API Levelda ishlaydi
    private val pickImageLauncher = registerForActivityResult(
        ActivityResultContracts.GetContent()
    ) { uri ->
        uri?.let { displayImage(it) }
    }

    fun pickImage() {
        // PhotoPicker faqat API 34 dan mavjud
        if (VERSION.SDK_INT >= VERSION_CODES.UPSIDE_DOWN_CAKE) {
            // PhotoPicker dan foydalanamiz (API 34+)
            val intent = android.provider.MediaStore
                .ACTION_PICK_IMAGES
            startActivityForResult(intent, 100)
        } else {
            // Fallback: GetContent (barcha versiyalarda ishlaydi)
            pickImageLauncher.launch("image/*")
        }
    }

    @RequiresApi(VERSION_CODES.UPSIDE_DOWN_CAKE)
    fun usePhotoPickerOnly() {
        // Bu metodni API da chaqirib boʻlmaydi < 34
        val intent = android.provider.MediaStore
            .ACTION_PICK_IMAGES
        startActivityForResult(intent, 100)
    }
}

ImagePickerActivity sinfi uch darajali orqaga moslikni namoyish etadi. AndroidX dan Activity Result API barcha API darajalarida ishlaydi, shuning uchun asosiy tasvir tanlash uchun minSdk ahamiyatli emas. PhotoPicker (ACTION_PICK_IMAGES) faqat API 34 dan mavjud va GetContent ga fallback bilan SDK_INT tekshiruvi ostida chaqiriladi. usePhotoPickerOnly metodi @RequiresApi bilan belgilangan — lint uni tekshiruvsiz chaqirishga ruxsat bermaydi. AndroidX dan AppCompat avtomatik ravishda mavzuni, fragmentlar va animatsiyalarni operatsion tizim versiyasiga moslashtiradi.

Kutubxona va modullarda minSdkVersion

Kutubxonalar (AAR, JAR) ham oʻz manifestida koʻrsatilgan minSdkVersion ga ega. Kutubxona ulanganda Gradle moslikni tekshiradi: agar kutubxonaning minSdk i ilovaning minSki dan yuqori boʻlsa, qurilish xato bilan tugaydi. Ommaviy kutubxonalar uchun isteʼmolchilarni cheklamaslik uchun mumkin boʻlgan eng past minSdk (koʻp hollarda 21) koʻrsatish tavsiya etiladi. Agar kutubxona API 29+ talab qilsa, potentsial foydalanuvchilarning ~28% ini yoʻqotadi.

Koʻp modulli loyihalar turli modullar uchun turli minSdkVersion ga ega boʻlishi mumkin. Masalan, :core:network moduli minSdk 26, :feature:camera moduli esa minSdk 29 boʻlishi mumkin (muayyan talablar bilan CameraX tufayli). Google Play asosiy :app modulining minSki barcha bogʻliq modullarning minSki dan past yoki teng boʻlishini talab qiladi. Amalda bir ilovaning barcha modullari odatda qoʻllab-quvvatlashni soddalashtirish uchun bir xil minSdk ga ega.

kotlin
// build.gradle.kts — past minSdk li kutubxona moduli
plugins {
    id("com.android.library")
    id("org.jetbrains.kotlin.android")
}

android {
    namespace = "com.example.mylibrary"
    compileSdk = 36

    defaultConfig {
        minSdk = 21  // Maksimal qamrov uchun minimal
        targetSdk = 36
    }
}

dependencies {
    // AndroidX Core — minSdk 21, backportlar qoʻshadi
    implementation("androidx.core:core-ktx:1.15.0")
    implementation("androidx.appcompat:appcompat:1.7.0")
}

minSdk = 21 boʻlgan kutubxona moduli qurilmalarning 97% i bilan mos keladi va isteʼmolchilarni cheklamaydi. Agar kutubxona 21 dan yuqori API dan foydalansa, dasturchi ish vaqti tekshiruvlari qoʻshishi yoki tegishli metodlarda @RequiresApi koʻrsatishi kerak. AndroidX Core KTX (minSdk 21) Context, Bundle, Locale va boshqa tizim sinflari uchun backportlar taʼminlaydi, kutubxonaga past minSdk saqlashga imkon beradi.

minSdkVersion tanlashda odatiy xatolar

minSdk tanlashdagi xatolar minglab oʻrnatishlarga yoki haftalar qoʻshimcha ishlanmaga tushishi mumkin. Birinchi odatiy xato — Distribution Dashboard tahlilisiz minSdk ni loyiha shablonidan nusxalash. Koʻplab dasturchilar Android Studio Template dan minSdk = 21 ni qoldiradilar, holbuki ularning auditoriyasi uchun minSdk 26 yetarli boʻlardi va koddagi SDK_INT tekshiruvlari sonini kamaytirardi.

Ikkinchi xato — juda yuqori minSdk bozorni hisobga olmasdan. Xalqaro ilova uchun minSdk = 31 (Android 12) belgilasangiz, qurilmalarning ~45% ini yoʻqotasiz. Startap yoki ommaviy auditoriyaga ega ilova uchun bu falokatdir. minSdk ni oshirishdan oldin har doim Distribution Dashboard ni tekshiring va ishonchingiz komil boʻlmasa, Google Play Console da A/B testidan foydalaning.

Uchinchi xato — bogʻliqliklarning minSki ni eʼtiborsiz qoldirish. Yangi kutubxona qoʻshganda uning minSki ni hujjatlarda yoki POM faylida tekshiring. Firebase ML Kit minSdk 21, baʼzi maxsus kamera kutubxonalari minSdk 29 talab qiladi. Agar manifest merger yangi kutubxona tufayli production da ishlamay qolsa, tuzatish kunlar olishi mumkin.

kotlin
// Misol: API mosligini ish vaqtida tekshirish
fun checkFeatureAvailability(): Boolean {
    // Odatiy xato — SDK_INT tekshiruvisiz API chaqiruvi
    return when {
        VERSION.SDK_INT >= VERSION_CODES.UPSIDE_DOWN_CAKE -> {
            // API 34+ — PhotoPicker dan foydalanamiz
            true
        }
        VERSION.SDK_INT >= VERSION_CODES.Q -> {
            // API 29-33 — MediaStore dan foydalanamiz
            true
        }
        else -> {
            // API < 29 — ACTION_GET_CONTENT dan foydalanamiz
            true
        }
    }
}

API Level tekshiruvlarining toʻgʻri arxitekturasi — minSdk dan compileSdk gacha barcha mumkin boʻlgan qiymatlarni qamrab oluvchi diapazonlar bilan when ifodasi. Asosiy qoida: X darajali API ning har bir chaqiruvi minSdk dan X gacha API Levelga ega barcha qurilmalar uchun VERSION.SDK_INT tekshiruvi bilan himoyalangan boʻlishi kerak. lint tekshirilmagan chaqiruvlarni aniqlashga yordam beradi, ammo dinamik kod uchun toʻliq qamrovni kafolatlay olmaydi.

Tez-tez soʻraladigan savollar

Android da minSdkVersion nima?

minSdkVersion — ilova oʻrnatilishi mumkin boʻlgan minimal Android API Level. build.gradle faylining defaultConfig blokida koʻrsatiladi. Agar qurilmaning API Leveli minSdk dan past boʻlsa, oʻrnatish tizim tomonidan bloklanadi va Google Play bunday qurilmaga ilovani koʻrsatmaydi. minSdk auditoriya qamroviga taʼsir qiladi: minSdk = 26 ~85% qurilmalarni, minSdk = 21 — ~97% ni qamrab oladi.

Yangi loyiha uchun minSdkVersion ni qanday toʻgʻri tanlash mumkin?

minSdkVersion Android Studio dagi Distribution Dashboard statistikasi va maqsadli auditoriya asosida tanlanadi. Ommaviy ilovalar uchun minSdk 26 (Android 8.0) tavsiya etiladi — ~85% qurilmalarni qamrab oladi. B2B ilovalari uchun minSdk 31 (Android 12) belgilash mumkin. Barcha ishlatiladigan kutubxonalar tanlangan minSdk ni qoʻllab-quvvatlashini tekshirish muhim. Compose ilovalari uchun minimal chegara — API 21.

Past minSdkVersion da yangi API lardan qanday foydalanish kerak?

Yangi API lardan past minSdkVersion da AndroidX backportlari (AppCompat, Core KTX, Activity Result API) yoki ish vaqti tekshiruvlari Build.VERSION.SDK_INT bilan fallback kod orqali foydalanish mumkin. @RequiresApi annotatsiyasi lint ga metod maʼlum API Level talab qilishini koʻrsatadi. AndroidX Material Components UI komponentlari uchun orqaga moslikni ham taʼminlaydi. Tekshiruvlarsiz ilova NoSuchMethodError bilan ishdan chiqadi.

Agar kutubxona menikidan yuqori minSdk talab qilsa nima boʻladi?

Agar kutubxona ilovadan yuqori minSdkVersion ga ega boʻlsa, Android Studio qurilish xatosini chiqaradi: Manifest merger failed. Yechim — ilovaning minSki ni kutubxona darajasiga koʻtarish, pastroq minSdk li alternativ topish yoki oʻrashdan foydalanish. Aksariyat Jetpack kutubxonalari minSdk 21 yoki 26 ga ega. Firebase ML Kit minSdk 21, CameraX — minSdk 21 talab qiladi.

minSdkVersion nashr etilgandan keyin oʻzgartirilishi mumkinmi?

minSdkVersion ni nashr etilgandan keyin oshirish mumkin, ammo eski qurilmalarda foydalanuvchilarni yoʻqotishga olib kelishi mumkin. minSdk ni bir marta 1-2 API Level dan koʻp oshirmaslik, Google Play Console da faol qurilmalar statistikasini tahlil qilish tavsiya etiladi. minSdkVersion ni tushirish texnik jihatdan mumkin, ammo yangi minSdk dan yuqori API chaqiruvlari uchun kodni tekshirishni talab qiladi va kod qismlarini qayta yozishni talab qilishi mumkin.

Xulosa

  • minSdkVersion — ilovani oʻrnatish uchun minimal API Level, build.gradle da muhim moslik parametri
  • Diapazon minSdk = 21 qurilmalarning 97% ini, minSdk = 26 — 85% ini, minSdk = 31 — 55% ini qamrab oladi
  • AndroidX va Jetpack kutubxonalari eski versiyalarda yangi API larning orqaga mosligini taʼminlaydi
  • lint minSdk dan yuqori API chaqiruvlari haqida ogohlantiradi — @RequiresApi va SDK_INT if tekshiruvlaridan foydalaning
  • Google Play oʻrnatishda minSdk ni tekshiradi va mos kelmaydigan qurilmalar uchun ilovani filtrlaydi
  • Tanlov minSdk Distribution Dashboard, bogʻliqlik talablari va maqsadli bozor asosida amalga oshirilishi kerak
  • Oshirish minSdk nashr etilgandan keyin foydalanuvchi yoʻqotilishiga olib keladi — oʻzgartirishdan oldin statistikani tahlil qiling

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