API Level: bu nima, API versiyalari va targetSdk

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

API Level Android — Android platformasining ma'lum bir reliziga yagona mos keladigan butun sonli identifikator. OTning har bir versiyasi o'zining noyob raqamiga ega: Android 14 = API 34, Android 15 = API 35. Dasturchi build.gradle-da uchta parametrni — minSdkVersion, targetSdkVersion va compileSdkVersion — boshqarib, moslik va yangi funksiyalarga kirishni nazorat qiladi. Android Developers ga ko'ra, to'g'ri API Level tanlash xavfsizlik va auditoriya qamrovi uchun muhimdir.

Asosiy fikrlar

  • API Level — Android API versiyasining butun sonli identifikatori, API 1 (Android 1.0) dan API 36 (Android 16) gacha
  • minSdkVersion — ilovani o'rnatish uchun minimal Android versiyasi, auditoriya qamrovini belgilaydi
  • targetSdkVersion — ilova sinovdan o'tkazilgan versiya; ushbu versiyaning xatti-harakat o'zgarishlarini o'z ichiga oladi
  • compileSdkVersion — kompilyatsiya uchun SDK versiyasi; targetSdk dan >= bo'lishi kerak, yangi API larga kirish imkonini beradi
  • Google Play targetSdkVersion joriy API Level dan 1 yildan eski bo'lmasligini talab qiladi

API Level Android nima?

API Level Android — Android Framework API ning har bir ommaviy reliziga tayinlanadigan butun sonli identifikator. Birinchi reliz Android 1.0 API Level 1 ga ega edi, Android 1.5 — API Level 3, Android 2.2 — API Level 8, Android 4.0 — API Level 14, Android 8.0 — API Level 26, Android 12 — API Level 31, Android 14 — API Level 34, Android 15 — API Level 35, Android 16 (2025) — API Level 36. Har bir yangi API Level yangi sinflar, metodlar, konstantalar, ruxsatnomalar qo'shishi va mavjudlarning xatti-harakatini o'zgartirishi mumkin.

API Level har bir reliz bilan qat'iy 1 ga oshmaydi. Masalan, Android 4.4W (Wear) API 20 ga ega, Android 5.0 esa API 21 ga. Bo'shliqlar ichki iteratsiyalar va Wear OS qurilmalari bilan bog'liq. Dasturchi uchun versiya nomini (KitKat, Lollipop, Tiramisu) emas, balki uning API Level ini bilish muhim — kodda moslik tekshiruvlari uchun aynan shu ishlatiladi.

API Level ning asosiy maqsadi — orqaga moslik. API 34 ga qarshi kompilyatsiya qilingan ilova API 34 va undan past qurilmalarda ishlashi mumkin (agar tekshirmasdan yangi API larni ishlatmasa). Android Runtime (ART) tizim darajasida API chaqiruvlarini tekshiradi va ilovaning targetSdkVersion iga qarab xatti-harakat o'zgarishlarini qo'llaydi.

Android API Level ni qanday boshqaradi

Ilovani o'rnatishda PackageManager qurilmaning API Level i AndroidManifest.xml dagi minSdkVersion >= ekanligini tekshiradi. Agar shart bajarilmasa — o'rnatish "App not installed" xabari bilan bloklanadi. Ish vaqti davomida Android Runtime yuqori API Level talab qiladigan API chaqiruvlarini kuzatadi va agar metod joriy versiyada mavjud bo'lmasa, NoSuchMethodError yoki UnsatisfiedLinkError yaratadi.

KomponentAPI Level ni boshqarishdagi roli
PackageManagerO'rnatish vaqtida minSdkVersion ni tekshiradi
Android Runtime (ART)Ish vaqtida API moslik tekshiruvlarini amalga oshiradi
Google Play StoreIlovalarni qurilmaning API Level i bo'yicha filtrlaydi
SDK ManagerKerakli API Level ostida kompilyatsiya uchun platformalarni yuklab oladi
lintStatik analizator, minSdk dan yuqori API ishlatish haqida ogohlantiradi

minSdk, targetSdk, compileSdk: farqlar va har bir parametrning roli

build.gradle faylida (Module: app) dasturchi uchta API Level parametrini belgilaydi: minSdkVersion, targetSdkVersion va compileSdkVersion. Ularni aralashtirish boshlang'ich Android dasturchilarining eng keng tarqalgan xatolaridan biridir. Har bir parametr moslikning turli jihati uchun javobgardir va ularning qiymatlari mos bo'lishi kerak.

minSdkVersion

minSdkVersion — ilovani o'rnatish va ishga tushirish mumkin bo'lgan minimal API Level. minSdk dan past API Level ga ega qurilmalar Google Play da ilovani ko'rmaydi va uni o'rnatolmaydi. Qiymat maqsadli auditoriyaga qarab tanlanadi: minSdk 21 (Android 5.0) qurilmalarning 97% ini qamrab oladi, minSdk 26 (Android 8.0) — taxminan 85%, minSdk 31 (Android 12) — taxminan 55% (Android Studio Distribution Dashboard, 2026 ma'lumotlari). minSdk qancha past bo'lsa, qamrov shuncha keng, lekin orqaga moslik kodi shuncha ko'p kerak.

targetSdkVersion

targetSdkVersion — ilova sinovdan o'tkazilgan API Level. Android xatti-harakat o'zgarishlarini qo'llash uchun targetSdk dan foydalanadi: agar ilova targetSdk 33 ni belgilasa, tizim API 33 da joriy qilingan barcha xatti-harakat o'zgarishlarini yoqadi. Agar targetSdk 31 bo'lsa, tizim API 32-33 o'zgarishlarini qo'llamaydi, eski xatti-harakat bilan moslikni saqlaydi. Bu xavfsizlik uchun eng muhim parametr: Google Play targetSdk joriy API Level dan 1 yildan eski bo'lmasligini talab qiladi.

compileSdkVersion

compileSdkVersion — kod kompilyatsiya qilinadigan Android SDK versiyasi. Kompilyatsiya vaqtida qaysi API lar mavjudligini aniqlaydi. compileSdk targetSdk dan >= bo'lishi va ideal holda eng so'nggi barqaror API Level ga teng bo'lishi kerak. compileSdk ni oshirish ish vaqti xatti-harakatiga ta'sir qilmaydi — faqat kompilyator uchun yangi API larning mavjudligiga ta'sir qiladi. compileSdk oshirilgandan so'ng, kodni eskirgan API lar va yangi ruxsatnoma talablari uchun tekshirish kerak.

kotlin
// build.gradle.kts — API Level sozlash namunasi
plugins {
    id("com.android.application") version "8.7.0"
    id("org.jetbrains.kotlin.android") version "2.1.0"
}

android {
    namespace = "com.example.myapp"
    compileSdk = 36  // Android 16

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

    buildTypes {
        release {
            isMinifyEnabled = true
            proguardFiles(
                getDefaultProguardFile("proguard-android-optimize.txt"),
                "proguard-rules.pro"
            )
        }
    }

    compileOptions {
        sourceCompatibility = JavaVersion.VERSION_17
        targetCompatibility = JavaVersion.VERSION_17
    }

    kotlinOptions {
        jvmTarget = "17"
    }
}

dependencies {
    implementation("androidx.core:core-ktx:1.15.0")
    implementation("androidx.appcompat:appcompat:1.7.0")
    implementation("androidx.activity:activity-ktx:1.9.3")
}

build.gradle.kts misolida compileSdk = 36 (yozish vaqtida eng so'nggi), targetSdk = 36, minSdk = 26 (Android 8.0). compileSdk 36 barcha Android 16 API lariga kirish imkonini beradi. targetSdk 36 barcha Android 16 xatti-harakat o'zgarishlarini yoqadi. minSdk 26 ~85% qurilmalarni qamrab oladi. AndroidX Activity KTX va AppCompat fragmentlar va mavzular uchun orqaga moslikni ta'minlaydi.

AndroidManifest.xml

minSdk va targetSdk parametrlari AndroidManifest.xml da ham belgilanishi mumkin, ammo zamonaviy loyihalar build.gradle dan foydalanadi — Gradle qiymatlari manifestni bekor qiladi. Manifestda Gradle build config dan foydalanmaydigan kutubxonalar va modullar uchun belgilash foydali bo'lishi mumkin.

Xatti-harakat o'zgarishlari: targetSdk ilova xatti-harakatiga qanday ta'sir qiladi

Xatti-harakat o'zgarishlari — faqat targetSdk >= ma'lum bir API Level bo'lgan ilovalarga qo'llaniladigan Android tizimi ishlashidagi o'zgartirishlar. Har bir yangi Android reliz yangilanmasa, mavjud ilovalarni buzishi mumkin bo'lgan xatti-harakat o'zgarishlarini keltiradi. Bu Android ning asosiy xavfsizlik mexanizmi: eski ilovalar avvalgidek ishlashda davom etadi, yangilari joriy qoidalarga amal qiladi.

Versiyalar bo'yicha asosiy xatti-harakat o'zgarishlari

Android 10 (API 29) — Scoped Storage: targetSdk 29+ bo'lgan ilovalar umumiy fayl tizimiga to'g'ridan-to'g'ri kirish imkoniga ega emas, faqat MediaStore, SAF yoki o'z ombori orqali. Android 11 (API 30) — Package Visibility: paket filtri, ilovalar faqat o'zaro aloqada bo'lgan o'rnatilgan paketlarni ko'radi. Android 12 (API 31) — Foreground Service Notification: barcha oldingi fon xizmatlari ishga tushgandan keyin 10 soniya ichida bildirishnoma ko'rsatishi shart. Android 13 (API 33) — POST_NOTIFICATIONS: push bildirishnomalari uchun ish vaqti ruxsatnomasi. Android 14 (API 34) — Foreground Service Types: manifestda oldingi fon xizmati turining majburiy deklaratsiyasi.

kotlin
// Android 13 (API 33) xatti-harakat o'zgarishlarini boshqarish: POST_NOTIFICATIONS
import android.Manifest
import android.content.pm.PackageManager
import android.os.Build
import androidx.activity.result.contract.ActivityResultContracts
import androidx.core.content.ContextCompat

class NotificationHelper {

    fun requestNotificationPermission(activity: MainActivity) {
        // POST_NOTIFICATIONS ruxsatnomasi faqat API 33+ bilan ishlaydi
        if (Build.VERSION.SDK_INT < Build.VERSION_CODES.TIRAMISU) {
            return  // API 33 dan pastda ruxsatnoma talab qilinmaydi
        }

        when {
            ContextCompat.checkSelfPermission(
                activity,
                Manifest.permission.POST_NOTIFICATIONS
            ) == PackageManager.PERMISSION_GRANTED -> {
                // Ruxsatnoma allaqachon berilgan, bildirishnomalar yuborilishi mumkin
                showNotification(activity)
            }

            activity.shouldShowRequestPermissionRationale(
                Manifest.permission.POST_NOTIFICATIONS
            ) -> {
                // Ruxsatnoma nima uchun kerakligini tushuntirishni ko'rsatish
                activity.showRationale()
            }

            else -> {
                // Ruxsatnoma so'rash
                activity.requestPermissionLauncher.launch(
                    Manifest.permission.POST_NOTIFICATIONS
                )
            }
        }
    }

    private fun showNotification(context: Context) {
        // Bildirishnoma yaratish va ko'rsatish
        val notification = android.app.Notification.Builder(context, "default_channel")
            .setSmallIcon(android.R.drawable.ic_dialog_info)
            .setContentTitle("Bildirishnoma")
            .setContentText("Yangi xabar")
            .build()
        val manager = context.getSystemService(Context.NOTIFICATION_SERVICE)
            as android.app.NotificationManager
        manager.notify(1, notification)
    }
}

// Activity da requestPermissionLauncher ni ro'yxatdan o'tkazish
class MainActivity : ComponentActivity() {
    val requestPermissionLauncher = registerForActivityResult(
        ActivityResultContracts.RequestPermission()
    ) { isGranted: Boolean ->
        if (isGranted) {
            // Ruxsatnoma olindi
        }
    }

    override fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(savedInstanceState)
        setContentView(R.layout.activity_main)
    }
}

Kotlin da POST_NOTIFICATIONS ni boshqarish misoli: Build.VERSION.SDK_INT >= TIRAMISU ni tekshirish, ActivityResultContracts.RequestPermission orqali ish vaqti ruxsatnomasini so'rash, natijani callback da boshqarish. Ushbu ruxsatnomasiz targetSdk 33+ bo'lgan ilova push bildirishnomalarini ko'rsata olmaydi. API 33 dan pastda ruxsatnoma talab qilinmaydi — tekshirish kodi mavjud bo'lmagan API larni chaqirishni oldini oladi.

Scoped Storage (Android 10+)

Scoped Storage eng muhim xatti-harakat o'zgarishlaridan biridir. API 29 (targetSdk 29+) dan boshlab, ilova Pictures, Downloads, Music va Documents kataloglariga to'g'ridan-to'g'ri fayl kirishini ololmaydi. Buning o'rniga media uchun MediaStore, ixtiyoriy fayllar uchun SAF (Storage Access Framework) va o'z ombori uchun getExternalFilesDir() ishlatiladi. Istisno — MANAGE_EXTERNAL_STORAGE ruxsatnomasiga ega ilovalar, bu Google Play roziligini talab qiladi.

Google Play ning API Level va targetSdk uchun talablari

Google Play ilovalarni nashr qilish uchun targetSdkVersion bo'yicha majburiy talablarni belgilaydi. Avgust 2024 dan boshlab Google Play targetSdkVersion >= API 33 (Android 13) ni talab qiladi. Har yili chegara ko'tariladi: yangi ilovalar va yangilanishlar joriy asosiy API Level dan 1 yildan eski bo'lmagan targetSdk ni belgilashi kerak. Talabni buzish nashrni bloklash va ilovani do'kondan olib tashlashga olib keladi.

Nima uchun Google Play talablarni qattiqlashtiradi

Asosiy sabab — xavfsizlik. Har bir yangi Android API Level hujum vektorlarini yopadigan xatti-harakat o'zgarishlarini keltiradi: Scoped Storage (API 29) fayl o'g'irlanishini oldini oladi, POST_NOTIFICATIONS (API 33) spam bildirishnomalardan himoya qiladi, Foreground Service Types (API 34) yashirin fon xizmatlarini cheklaydi. Past targetSdk ga ega ilovalar bu himoyalarni olmaydi va foydalanuvchilar uchun xavf tug'diradi. Google Play zamonaviy qurilmalarda eskirgan ilovalarga ruxsat berolmaydi.

Talablarga muvofiqlikni tekshirish

Google Play Console APK/AAB yuklashda targetSdkVersion ni tekshiradi. Agar targetSdk talab qilinganidan past bo'lsa — konsol nashrni "Your app currently targets API level X and must target at least API level Y" xabari bilan bloklaydi. Dasturchi build.gradle ni yangilashi, ilovani qayta kompilyatsiya qilishi, xatti-harakat o'zgarishlarini sinab ko'rishi va qayta yuklashi kerak. AAB formati barcha yangi nashrlar uchun tavsiya etiladi (Avgust 2021 dan majburiy).

SanaMinimal targetSdkAndroid versiyasi
Avgust 202231Android 12
Avgust 202333Android 13
Avgust 202433Android 13
Avgust 202534Android 14
Avgust 2026 (rejalashtirilgan)35Android 15

Kodda API Level tekshirish: Build.VERSION.SDK_INT

Build.VERSION.SDK_INT — ilova ishlayotgan qurilmaning API Level ini o'z ichiga olgan statik butun sonli doimiy. Bu ish vaqti Android versiyasini tekshirish uchun asosiy vositadir. Build.VERSION_CODES har bir API Level uchun nomlangan doimiylarni o'z ichiga oladi: VERSION_CODES.TIRAMISU (33), VERSION_CODES.UPSIDE_DOWN_CAKE (34), VERSION_CODES.VANILLA_ICE_CREAM (35). if (SDK_INT >= VERSION_CODES.TIRAMISU) orqali taqqoslash standart naqshdir.

kotlin
// Android kodida API Level tekshirish misollari
import android.os.Build
import android.os.Build.VERSION
import android.os.Build.VERSION_CODES
import android.graphics.drawable.AdaptiveIconDrawable

class ApiLevelHelper {

    // 1. Asosiy API Level tekshiruvi
    fun isAtLeastTiramisu(): Boolean {
        return VERSION.SDK_INT >= VERSION_CODES.TIRAMISU  // 33
    }

    // 2. Tekshiruv bilan adaptiv API chaqiruvi
    fun getAdaptiveIcon(drawable: android.graphics.drawable.Drawable):
            android.graphics.drawable.Drawable? {
        // AdaptiveIconDrawable faqat API 26 (Android 8) bilan mavjud
        if (VERSION.SDK_INT >= VERSION_CODES.O) {
            return AdaptiveIconDrawable(drawable, null)
        }
        return drawable  // eski qurilmalar uchun fallback
    }

    // 3. POST_NOTIFICATIONS ruxsatnomasini tekshirish (faqat API 33+)
    fun canRequestNotificationPermission(): Boolean {
        return VERSION.SDK_INT >= VERSION_CODES.TIRAMISU
    }

    // 4. API Level bo'yicha rasm provayderini tanlash
    fun getImagePickerProvider(): String {
        return when {
            VERSION.SDK_INT >= VERSION_CODES.UPSIDE_DOWN_CAKE -> {
                // API 34+ PhotoPicker dan foydalanadi
                "photo_picker"
            }
            VERSION.SDK_INT >= VERSION_CODES.KITKAT -> {
                // API 19+ Intent ACTION_OPEN_DOCUMENT dan foydalanadi
                "open_document"
            }
            else -> {
                // Legacy: ACTION_GET_CONTENT (barcha versiyalar)
                "get_content"
            }
        }
    }

    // 5. @TargetApi orqali Java uslubidagi tekshirish (orqaga moslik uchun)
    @Suppress("DEPRECATION")
    fun checkLegacyStorage(): Boolean {
        // Scoped Storage xatti-harakati SDK_INT ga emas, targetSdk ga bog'liq
        return VERSION.SDK_INT < VERSION_CODES.Q  // Android 10
    }

    // 6. Analitika uchun qurilish ma'lumoti
    fun getDeviceApiInfo(): Map<String, Any> {
        return mapOf(
            "sdk_int" to VERSION.SDK_INT,
            "release" to VERSION.RELEASE,
            "codename" to VERSION.CODENAME,
            "incremental" to VERSION.INCREMENTAL,
            "preview_sdk" to VERSION.PREVIEW_SDK_INT
        )
    }
}

// Sinov
fun main() {
    val helper = ApiLevelHelper()
    println("API Level: ${VERSION.SDK_INT}")
    println("Is Tiramisu+: ${helper.isAtLeastTiramisu()}")
}

ApiLevelHelper klassi barcha asosiy API Level tekshirish naqshlarini namoyish etadi: SDK_INT >= VERSION_CODES bilan isAtLeastTiramisu, eski versiyalar uchun fallback bilan getAdaptiveIcon, when ko'p tarmoqli bilan getImagePickerProvider, analitika uchun getDeviceApiInfo. Asosiy qoida — SDK_INT ni tekshirmasdan yangi API larni chaqirmaslik, aks holda ilova eski qurilmalarda NoSuchMethodError bilan ishdan chiqadi.

ANT (Android New API) va lint

Android Studio minSdkVersion dan yuqori API ishlatish haqida ogohlantiruvchi statik analizator lint ni o'z ichiga oladi. Agar metod SDK_INT tekshirilmagan holda chaqirilsa, lint uni xato sifatida belgilaydi: "Call requires API level 34 (current min is 26)". Yechimlar: metodga @RequiresApi(Build.VERSION_CODES.UPSIDE_DOWN_CAKE) qo'shish yoki SDK_INT ning if tekshiruvi. @TargetApi eskirgan annotatsiya, @RequiresApi tavsiya etiladi.

API Level va Android versiyalari muvofiqligi jadvali

API Level jadvali dasturchi uchun ma'lumotnoma vositasidir. Qurilmaning API Level ini bilgan holda, Android versiyasi va mavjud funksiyalarni aniqlash mumkin. Jadval API Level 1 (2008) dan API Level 36 (2025) gacha barcha asosiy Android relizlarini ro'yxatga oladi. Kod nomlari (Cupcake, Donut, Tiramisu, VanillaIceCream) Google ichida va VERSION_CODES da ishlatiladi.

API LevelAndroid versiyasiKod nomiYil
11.02008
31.5Cupcake2009
82.2Froyo2010
144.0Ice Cream Sandwich2011
194.4KitKat2013
215.0Lollipop2014
236.0Marshmallow2015
268.0Oreo2017
289Pie2018
2910Quince Tart (10)2019
3011Red Velvet Cake2020
3112Snow Cone2021
3313Tiramisu2022
3414Upside Down Cake2023
3515Vanilla Ice Cream2024
3616Baklava2025

Jadval: xatti-harakat o'zgarishlari uchun chegara API Level lari

Quyidagi jadval targetSdk ni oshirishda orqaga moslikni buzadigan xatti-harakat o'zgarishlarini keltiruvchi asosiy API Level larni ko'rsatadi:

API LevelXatti-harakat o'zgarishiIlovaga ta'siri
29Scoped StoragePictures/Downloads/Music ga to'g'ridan-to'g'ri fayl kirishi yo'q
30Package VisibilityqueryIntentActivities() faqat o'zaro aloqadagi paketlarni ko'radi
31Foreground Service Notification10 soniya ichida majburiy bildirishnoma
33POST_NOTIFICATIONSBildirishnomalar uchun ish vaqti ruxsatnomasi
34Foreground Service TypesManifestda oldingi fon xizmati turi deklaratsiyasi
35Privacy SandboxReklama identifikatorlarini cheklash

Tez-tez so'raladigan savollar

Android da API Level nima?

API Level Android Android API versiyasining butun sonli identifikatoridir. Har bir relizning noyob raqami bor: Android 13 = API 33, Android 14 = API 34, Android 15 = API 35, Android 16 = API 36. Dasturchi moslikni boshqarish uchun build.gradle da minSdkVersion, targetSdkVersion va compileSdkVersion ni belgilaydi. API Level mavjud sinflar, metodlar va xatti-harakat o'zgarishlarini aniqlaydi.

minSdk targetSdk va compileSdk dan qanday farq qiladi?

minSdkVersion — ilovani o'rnatish uchun minimal Android versiyasi. targetSdkVersion — ilova sinovdan o'tkazilgan versiya, xatti-harakat o'zgarishlarini o'z ichiga oladi. compileSdkVersion — kodni kompilyatsiya qilish uchun SDK versiyasi. minSdk eng past, targetSdk afzal eng so'nggi, compileSdk kamida targetSdk bo'lishi kerak. Uchchasi ham build.gradle da belgilanadi.

targetSdk ni qurilmaning Android versiyasidan pastroq belgilasam nima bo'ladi?

Agar targetSdkVersion qurilmaning API Level idan past bo'lsa, Android targetSdk dan keyin joriy qilingan xatti-harakat o'zgarishlarini o'chiradi. Masalan, Android 14 da (API 34) targetSdk = 28 bilan Scoped Storage, POST_NOTIFICATIONS, Foreground Service Types qo'llanilmaydi. Google Play foydalanuvchilar xavfsizligi uchun targetSdkVersion joriy API Level dan 1 yildan eski bo'lmasligini talab qiladi.

Qurilmaning API Level ini qanday bilish mumkin?

Qurilmaning API Level i Build.VERSION.SDK_INT doimiysi orqali mavjud (masalan, Android 14 uchun 34). Taqqoslash uchun Build.VERSION_CODES dan nomlangan doimiylardan foydalaning: if (SDK_INT >= VERSION_CODES.TIRAMISU). Build.VERSION.RELEASE versiya satrini ("14") qaytaradi. SDK_INT qiymati sinf yuklanganda keshlanadi va istalgan oqimdan foydalanish mumkin.

Nima uchun Google Play har yili yangi targetSdk talab qiladi?

Google Play xavfsizlik xatti-harakat o'zgarishlarini joriy qilish uchun har yili targetSdkVersion talablarini oshiradi. Har bir yangi API Level Scoped Storage, POST_NOTIFICATIONS, Privacy Sandbox va boshqa himoyalarni keltiradi. Past targetSdk ga ega ilovalar bu himoyalarni chetlab o'tadi va foydalanuvchilar uchun xavf tug'diradi. Talab do'kondagi barcha ilovalar joriy qoidalar bo'yicha sinovdan o'tganligini kafolatlaydi.

Xulosa

  • API Level — Android API versiyasining (1-36) butun sonli identifikatori, ilova mosligini boshqarish uchun ishlatiladi
  • minSdkVersion o'rnatish uchun minimal API Level ni belgilaydi, targetSdkVersion — xatti-harakat o'zgarishlari bo'lgan versiya, compileSdkVersion — kompilyatsiya uchun versiya
  • Xatti-harakat o'zgarishlari (Scoped Storage, POST_NOTIFICATIONS, Foreground Service Types) faqat targetSdk >= tegishli API Level bo'lganda qo'llaniladi
  • Google Play targetSdk 1 yildan eski bo'lmasligini talab qiladi, aks holda ilova nashrini bloklaydi
  • Build.VERSION.SDK_INT — fallback bilan yangi API larni xavfsiz chaqirish uchun qurilma API Level ini ish vaqti tekshiruvi
  • lint Android Studio da minSdk dan yuqori API ishlatish haqida ogohlantiradi va metodlar uchun @RequiresApi ni tavsiya qiladi
  • API 34+ xatti-harakat o'zgarishlari majburiy oldingi fon xizmati turlarini o'z ichiga oladi, API 35+ — reklama identifikatorlarini cheklash bilan Privacy Sandbox

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