minSdkVersion: یہ کیا ہے اور Android کا کم از کم ورژن کیسے منتخب کریں

مصنف: IT Sectr اشاعت: 2026-02-08 مطالعے کا وقت: 11 منٹ

minSdkVersion کم از کم Android API Level ہے جس پر کوئی ایپلیکیشن انسٹال اور لانچ کی جا سکتی ہے۔ یہ پیرامیٹر build.gradle میں defaultConfig بلاک میں متعین کیا جاتا ہے اور مطابقت کی نچلی حد کو واضح کرتا ہے: اگر ڈیوائس کا API Level minSdk ویلیو سے کم ہو تو سسٹم انسٹالیشن کو بلاک کر دیتا ہے، اور Google Play ایسی ڈیوائس کو ایپ نہیں دکھاتا۔ Android Developers کے مطابق، صحیح minSdk کا انتخاب سامعین کی رسائی اور جدید APIs تک رسائی کے درمیان توازن کے لیے اہم ہے۔

اہم نکات

  • minSdkVersion — ایپ انسٹالیشن کے لیے کم از کم API Level، build.gradle میں سیٹ کیا جاتا ہے
  • Google Play minSdkVersion سے کم API Level والی ڈیوائسز پر ایپ چھپاتا ہے
  • کوریج minSdk = 26 (Android 8.0) ~85% ڈیوائسز کو کور کرتا ہے، minSdk = 21 ~97%
  • AndroidX اور Jetpack لائبریریاں کم minSdk پر نئی APIs استعمال کرنے دیتی ہیں
  • lint minSdk سے اوپر کی APIs کو کال کرنے پر متنبہ کرتا ہے — @RequiresApi یا SDK_INT استعمال کریں

Android میں minSdkVersion کیا ہے؟

minSdkVersion build.gradle میں ایک عددی پیرامیٹر ہے جو ایپ انسٹالیشن کے لیے کم از کم Android API Level متعین کرتا ہے۔ اگر ڈیوائس کا API Level متعین کردہ ویلیو سے کم ہو تو PackageManager انسٹالیشن کو بلاک کر دیتا ہے، اور Google Play Store اس ڈیوائس کے لیے تلاش کے نتائج سے ایپ چھپا دیتا ہے۔ minSdkVersion بلڈ کے وقت <uses-sdk android:minSdkVersion> ٹیگ کے ذریعے AndroidManifest.xml میں لکھا جاتا ہے اور ہر انسٹالیشن پر چیک کیا جاتا ہے۔

minSdkVersion کی ویلیو سامعین کی رسائی اور نئی APIs تک رسائی کے درمیان ایک سمجھوتہ ہے۔ minSdk جتنا کم ہوگا، اتنی ہی زیادہ ڈیوائسز ایپ انسٹال کر سکیں گی، خاص طور پر ترقی پذیر علاقوں میں جہاں پرانے Android اسمارٹ فونز مقبول ہیں۔ minSdk جتنا زیادہ ہوگا، اتنا ہی کم پسماندہ مطابقت کوڈ درکار ہوگا اور رن ٹائم چیک کے بغیر اتنی ہی زیادہ جدید APIs دستیاب ہوں گی۔ Android Jetpack اور AndroidX لائبریریاں پرانے Android ورژنز پر بہت سی نئی APIs کے بیک پورٹ فراہم کرتی ہیں، جو فعالیت کھوئے بغیر کم minSdk منتخب کرنے کی اجازت دیتی ہیں۔

minSdkVersion ترقی کے تمام مراحل کو متاثر کرتا ہے: جامد تجزیہ (lint انتباہات کے لیے minSdk استعمال کرتا ہے)، انحصار مطابقت (لائبریریاں اپنا minSdk درکار کر سکتی ہیں)، جانچ (minSdk والی ڈیوائسز پر جانچ ضروری ہے)، اور Google Play Console (سامعین کی رسائی کا حساب minSdk کی بنیاد پر کیا جاتا ہے)۔ minSdkVersion تبدیل کرنا پروجیکٹ سیٹ اپ میں سب سے اہم فیصلوں میں سے ایک ہے، کیونکہ یہ کوڈ، ٹیسٹ اور صارف کی بنیاد کو متاثر کرتا ہے۔

minSdkVersion کہاں متعین کیا جاتا ہے

Build.gradle.kts (Kotlin DSL) Android پروجیکٹس میں جدید معیار ہے۔ minSdk پیرامیٹر ماڈیول سطح پر defaultConfig بلاک میں سیٹ کیا جاتا ہے۔ ویلیو کو مختلف بلڈ ٹائپس اور پروڈکٹ فلیورز کے لیے اوور رائیڈ کیا جا سکتا ہے، جو مرکزی ویلیو کو تبدیل کیے بغیر کم APIs پر جانچ کی اجازت دیتا ہے۔

kotlin
// build.gradle.kts — minSdk کی بنیادی ترتیب
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"
    }

    // مختلف فلیورز کے لیے minSdk کو اوور رائیڈ کرنا
    flavorDimensions += "tier"
    productFlavors {
        create("free") {
            minSdk = 26
        }
        create("premium") {
            minSdk = 26
        }
    }
}

مثال میں، minSdk = 26 Android 8.0 Oreo سے مطابقت رکھتا ہے۔ یہ 2026 میں ایک مقبول ویلیو ہے: یہ Android Studio Distribution Dashboard کے مطابق صرف ~15% ڈیوائسز کو خارج کرتا ہے۔ compileSdk = 36 تمام Android 16 APIs تک رسائی فراہم کرتا ہے، اور targetSdk = 36 تازہ ترین ورژن کی رویتی تبدیلیاں شامل کرتا ہے۔ ڈیبگ بلڈز کے لیے، پرانے ایمولیٹرز پر جانچ کے لیے minSdk کم کیا جا سکتا ہے۔

minSdkVersion کیسے منتخب کریں: عوامل اور حکمت عملی

minSdkVersion کا انتخاب ہدف سامعین، API تقاضوں اور لائبریری ایکو سسٹم کے تجزیے پر مبنی ایک اسٹریٹجک فیصلہ ہے۔ تمام پروجیکٹس کے لیے کوئی ایک صحیح ویلیو نہیں ہے۔ 2026 میں، Android Studio نئے پروجیکٹس کی بنیاد کے طور پر minSdk = 26 (Android 8.0) تجویز کرتا ہے، لیکن B2B ایپلیکیشنز یا انٹرپرائز حل کے لیے، کم یا زیادہ ویلیوز قابل قبول ہو سکتی ہیں۔

minSdkVersion منتخب کرنے کے عوامل

پہلا عنصر Distribution Dashboard ہے۔ Android Studio Google Play ڈیٹا کی بنیاد پر API Level کے لحاظ سے فعال ڈیوائسز کے اعدادوشمار فراہم کرتا ہے، جو ماہانہ اپ ڈیٹ ہوتے ہیں۔ minSdkVersion کو ہدف مارکیٹ کی کم از کم 90-95% فعال ڈیوائسز کا احاطہ کرنا چاہیے۔ افریقہ اور جنوب مشرقی ایشیا میں سامعین والی بین الاقوامی ایپس کے لیے، پرانی ڈیوائسز کے زیادہ حصے کی وجہ سے minSdk کو 21 (Android 5.0) تک کم کر دینا چاہیے۔

دوسرا عنصر انحصار کے تقاضے ہیں۔ ہر لائبریری کا اپنا minSdkVersion ہوتا ہے جو اس کے مینی فیسٹ میں متعین ہوتا ہے۔ اگر کسی لائبریری کو minSdk 29 درکار ہے اور ایپ کو minSdk 26 درکار ہے، تو بلڈ مینی فیسٹ مرجر کی غلطی سے ناکام ہو جائے گا۔ جدید Google Play Services لائبریریوں کا minSdk 21 ہے، Firebase کا minSdk 21 ہے، زیادہ تر Jetpack لائبریریوں کا minSdk 21 یا 26 ہے، اور Compose BOM کا minSdk 21 ہے۔ Compose کے لیے، کم از کم حد API 21 ہے۔

تیسرا عنصر مطلوبہ APIs ہیں۔ اگر ایپ کی کلیدی فعالیت کے لیے کسی API کی ضرورت ہے جو صرف ایک خاص سطح سے دستیاب ہو (جیسے، PhotoPicker — API 34، Predicted Navigation — API 35)، یہ minSdk بڑھانے کو جواز فراہم کر سکتا ہے۔ تاہم، کم minSdk برقرار رکھنے کے لیے اکثر AndroidX بیک پورٹس (Activity Result API، NotificationCompat) اور رن ٹائم چیک کا مجموعہ استعمال کیا جاتا ہے۔

minSdkAndroid ورژنکوریج (~2026)سفارش
215.0 Lollipop97%زیادہ سے زیادہ کوریج، بہت فال بیک کوڈ
236.0 Marshmallow95%رن ٹائم اجازتیں مقامی طور پر دستیاب
268.0 Oreo85%تجویز کردہ بنیادی سطح
2910 Q72%Scoped Storage مقامی، کم ٹیسٹ
3112 Snow Cone55%مخصوص ایپس، جدید APIs

مرحلہ وار انتخاب کی حکمت عملی

مرحلہ 1: Android Studio کھولیں، File → New Project، اور وزرڈ میں تجویز کردہ minSdk دیکھیں۔ مرحلہ 2: Android Studio میں Distribution Dashboard چیک کریں (View → Tool Windows → App Inspection → Distribution Dashboard)۔ مرحلہ 3: پروجیکٹ کے انحصار کا تجزیہ کریں — بلڈ چلائیں اور مینی فیسٹ مرجر کے تنازعات حل کریں۔ مرحلہ 4: اندازہ لگائیں کہ API Level X میں سے کون سی بیک پورٹ کے بغیر حقیقت میں استعمال ہوتی ہیں۔ مرحلہ 5: minSdk کو کم سے کم ویلیو پر سیٹ کریں جو ہدف سامعین کے 90%+ کا احاطہ کرتی ہو اور تمام انحصار کے ساتھ مطابقت رکھتی ہو۔

ڈیوائس کوریج: API Level کی تقسیم (2026)

API Level کے لحاظ سے ڈیوائس کی تقسیم ایک متحرک پیمائش ہے جو ہر سہ ماہی بدلتی ہے۔ جون 2026 تک Android Studio Distribution Dashboard کے مطابق، تقریباً 85% فعال Android ڈیوائسز API 26 (Android 8.0) اور اس سے اوپر، 72% API 29 (Android 10) اور اس سے اوپر، اور 55% API 31 (Android 12) اور اس سے اوپر چلتی ہیں۔ چینی مارکیٹ کے اپنے اعدادوشمار ہیں کیونکہ بہت سے Huawei ڈیوائسز پر Google Play Services موجود نہیں ہے۔

GMS ڈیوائسز (Google Mobile Services) تیزی سے اپ ڈیٹ ہوتی ہیں: مینوفیکچررز کے لیے Google Play کی لازمی ضروریات کی بدولت ان پر API 31+ کا حصہ 68% تک پہنچ جاتا ہے۔ غیر GMS ڈیوائسز (Huawei، Honor، کچھ چینی برانڈز) کی تقسیم پرانی ہے: ان پر API 31+ کا حصہ تقریباً 35% ہے۔ اگر آپ کی ایپ بین الاقوامی مارکیٹ کے لیے ہے تو عالمی اعدادوشمار پر بھروسہ کریں۔ اگر یہ چین کے لیے ہے تو غیر GMS حصے پر غور کریں۔

API LevelAndroid ورژنعالمی کوریجغیر GMS کوریج
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%

نتیجہ: ایک بین الاقوامی ایپ کے لیے، minSdk 26 کم سے کم پسماندہ مطابقت کی لاگت پر 85% ڈیوائسز کا احاطہ کرتا ہے۔ ترقی پذیر علاقوں میں سامعین والی ایپس کے لیے، minSdk 21 (97% کوریج) جائز ہے لیکن پرانی APIs کے ساتھ کام کرنے کے لیے مزید کوڈ درکار ہوگا۔ کنٹرول شدہ ڈیوائس فلیٹ والی انٹرپرائز ایپس کے لیے، آپ minSdk 31 سیٹ کر سکتے ہیں اور فال بیک کوڈ کو مکمل طور پر ختم کر سکتے ہیں۔

پسماندہ مطابقت: AndroidX، lint اور @RequiresApi

پسماندہ مطابقت کم minSdkVersion کے ساتھ بنیادی چیلنج ہے۔ AndroidX (پہلے Support Library) پرانے Android ورژنز پر جدید APIs کے بیک پورٹ فراہم کرتا ہے: Material Design کے لیے AppCompatActivity، FragmentManager، Loader، NotificationCompat، PreferenceFragmentCompat اور درجنوں دیگر اجزاء۔ مقامی APIs کی بجائے AndroidX مساوی استعمال کرنا مطابقت کی طرف پہلا قدم ہے۔

lint (Android Studio کا جامد تجزیہ کار) minSdkVersion سے اوپر کی API کالز کے لیے کوڈ اسکین کرتا ہے۔ اگر کوئی طریقہ minSdk سے زیادہ API Level پر @RequiresApi کے ساتھ تشریح شدہ ہے اور بغیر چیک کے کال کیا جاتا ہے تو lint ایک غلطی کو نمایاں کرتا ہے۔ انتباہ کو دبانے کے لیے، طریقہ پر @SuppressLint("NewApi") تشریح یا پورے فنکشن پر @RequiresApi(Build.VERSION_CODES.TIRAMISU) استعمال کریں۔ رن ٹائم چیک (Build.VERSION.SDK_INT کے ذریعے) پرانی ڈیوائسز پر نئی APIs کو محفوظ طریقے سے کال کرنے کا بنیادی طریقہ کار ہے۔

kotlin
// پسماندہ مطابقت کی مثال: PhotoPicker (API 34+) اور فال بیک
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) — کسی بھی API Level پر کام کرتا ہے
    private val pickImageLauncher = registerForActivityResult(
        ActivityResultContracts.GetContent()
    ) { uri ->
        uri?.let { displayImage(it) }
    }

    fun pickImage() {
        // PhotoPicker صرف API 34 سے دستیاب ہے
        if (VERSION.SDK_INT >= VERSION_CODES.UPSIDE_DOWN_CAKE) {
            // PhotoPicker کا استعمال (API 34+)
            val intent = android.provider.MediaStore
                .ACTION_PICK_IMAGES
            startActivityForResult(intent, 100)
        } else {
            // فال بیک: GetContent (تمام ورژنز پر کام کرتا ہے)
            pickImageLauncher.launch("image/*")
        }
    }

    @RequiresApi(VERSION_CODES.UPSIDE_DOWN_CAKE)
    fun usePhotoPickerOnly() {
        // یہ طریقہ API پر کال نہیں کیا جا سکتا < 34
        val intent = android.provider.MediaStore
            .ACTION_PICK_IMAGES
        startActivityForResult(intent, 100)
    }
}

ImagePickerActivity کلاس پسماندہ مطابقت کی تین سطحیں دکھاتی ہے۔ AndroidX سے Activity Result API تمام API Levels پر کام کرتا ہے، لہذا بنیادی تصویر کا انتخاب minSdk پر منحصر نہیں ہے۔ PhotoPicker (ACTION_PICK_IMAGES) صرف API 34 سے دستیاب ہے اور GetContent پر فال بیک کے ساتھ SDK_INT چیک کے تحت کال کیا جاتا ہے۔ usePhotoPickerOnly طریقہ @RequiresApi سے نشان زد ہے — lint بغیر چیک کے اسے کال کرنے کی اجازت نہیں دے گا۔ AndroidX سے AppCompat خود بخود تھیم، فریگمنٹس اور اینیمیشنز کو OS ورژن کے مطابق ڈھال لیتا ہے۔

لائبریریوں اور ماڈیولز میں minSdkVersion

لائبریریاں (AAR، JAR) بھی اپنے مینی فیسٹ میں متعین minSdkVersion رکھتی ہیں۔ لائبریری منسلک کرتے وقت، Gradle مطابقت چیک کرتا ہے: اگر لائبریری کا minSdk ایپ کے minSdk سے زیادہ ہے تو بلڈ غلطی سے ناکام ہو جاتا ہے۔ عوامی لائبریریوں کے لیے، صارفین کو محدود نہ کرنے کے لیے ممکنہ حد تک کم minSdk (زیادہ تر صورتوں میں 21) متعین کرنے کی سفارش کی جاتی ہے۔ اگر کسی لائبریری کو API 29+ درکار ہے، تو وہ ~28% ممکنہ صارفین کھو دیتی ہے۔

ملٹی ماڈیول پروجیکٹس میں مختلف ماڈیولز کے لیے مختلف minSdkVersion ویلیوز ہو سکتی ہیں۔ مثال کے طور پر، :core:network ماڈیول کا minSdk 26 ہو سکتا ہے، جبکہ :feature:camera ماڈیول کا minSdk 29 (مخصوص تقاضوں والے CameraX کی وجہ سے) ہو سکتا ہے۔ Google Play کا تقاضہ ہے کہ مرکزی :app ماڈیول کا minSdk تمام منحصر ماڈیولز کے minSdk سے کم یا برابر ہو۔ عملی طور پر، ایک ہی ایپ کے تمام ماڈیولز میں دیکھ بھال میں آسانی کے لیے عام طور پر ایک ہی minSdk ہوتا ہے۔

kotlin
// build.gradle.kts — کم minSdk والا لائبریری ماڈیول
plugins {
    id("com.android.library")
    id("org.jetbrains.kotlin.android")
}

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

    defaultConfig {
        minSdk = 21  // زیادہ سے زیادہ کوریج کے لیے کم سے کم
        targetSdk = 36
    }
}

dependencies {
    // AndroidX Core — minSdk 21، بیک پورٹ شامل کرتا ہے
    implementation("androidx.core:core-ktx:1.15.0")
    implementation("androidx.appcompat:appcompat:1.7.0")
}

minSdk = 21 والا لائبریری ماڈیول 97% ڈیوائسز کے ساتھ مطابقت رکھتا ہے اور صارفین کو محدود نہیں کرتا۔ اگر لائبریری 21 سے اوپر کی APIs استعمال کرتی ہے تو ڈیولپر کو رن ٹائم چیک شامل کرنا ہوں گے یا متعلقہ طریقوں پر @RequiresApi متعین کرنا ہوگا۔ AndroidX Core KTX (minSdk 21) Context، Bundle، Locale اور دیگر سسٹم کلاسز کے لیے بیک پورٹ فراہم کرتا ہے، جس سے لائبریری کم minSdk برقرار رکھ سکتی ہے۔

minSdkVersion منتخب کرتے وقت عام غلطیاں

minSdk کے انتخاب میں غلطیاں ہزاروں انسٹالیشنز یا ہفتوں کی اضافی ترقی کا خرچ لا سکتی ہیں۔ پہلی عام غلطی Distribution Dashboard کا تجزیہ کیے بغیر پروجیکٹ ٹیمپلیٹ سے minSdk کاپی کرنا ہے۔ بہت سے ڈیولپرز Android Studio ٹیمپلیٹ سے minSdk = 21 چھوڑ دیتے ہیں، جبکہ minSdk 26 ان کے سامعین کے لیے کافی ہوگا اور کوڈ میں SDK_INT چیک کی تعداد کم کر دے گا۔

دوسری غلطی مارکیٹ پر غور کیے بغیر بہت زیادہ minSdk ہے۔ اگر آپ بین الاقوامی ایپ کے لیے minSdk = 31 (Android 12) سیٹ کرتے ہیں تو آپ ~45% ڈیوائسز کھو دیتے ہیں۔ اسٹارٹ اپ یا بڑے پیمانے کے سامعین والی ایپ کے لیے، یہ تباہی ہے۔ minSdk بڑھانے سے پہلے ہمیشہ Distribution Dashboard چیک کریں اور اگر یقین نہ ہو تو Google Play Console میں A/B ٹیسٹنگ استعمال کریں۔

تیسری غلطی انحصار کے minSdk کو نظر انداز کرنا ہے۔ نئی لائبریری شامل کرتے وقت، دستاویزات یا POM فائل میں اس کا minSdk چیک کریں۔ Firebase ML Kit کو minSdk 21 درکار ہے، کچھ کسٹم کیمرہ لائبریریوں کو minSdk 29 درکار ہے۔ اگر نئی لائبریری کی وجہ سے پروڈکشن میں مینی فیسٹ مرجر ناکام ہو جائے تو اسے ٹھیک کرنے میں دن لگ سکتے ہیں۔

kotlin
// مثال: رن ٹائم میں API مطابقت کی جانچ
fun checkFeatureAvailability(): Boolean {
    // عام غلطی — SDK_INT چیک کیے بغیر API کال کرنا
    return when {
        VERSION.SDK_INT >= VERSION_CODES.UPSIDE_DOWN_CAKE -> {
            // API 34+ — PhotoPicker استعمال کریں
            true
        }
        VERSION.SDK_INT >= VERSION_CODES.Q -> {
            // API 29-33 — MediaStore استعمال کریں
            true
        }
        else -> {
            // API < 29 — ہم ACTION_GET_CONTENT استعمال کرتے ہیں
            true
        }
    }
}

API Level چیک کے لیے صحیح فن تعمیر ایک when اظہار ہے جس میں minSdk سے compileSdk تک تمام ممکنہ اقدار کا احاطہ کرنے والی رینجز ہوں۔ بنیادی اصول: Level X کے کسی بھی API کال کو minSdk سے X تک API Level والی تمام ڈیوائسز کے لیے VERSION.SDK_INT چیک سے محفوظ کیا جانا چاہیے۔ lint بغیر چیک کی کالز کا پتہ لگانے میں مدد کرتا ہے، لیکن متحرک کوڈ کے لیے مکمل کوریج کی ضمانت نہیں دے سکتا۔

اکثر پوچھے گئے سوالات

Android میں minSdkVersion کیا ہے؟

minSdkVersion کم از کم Android API Level ہے جس پر کوئی ایپ انسٹال کی جا سکتی ہے۔ یہ build.gradle میں defaultConfig بلاک میں متعین کیا جاتا ہے۔ اگر ڈیوائس کا API Level minSdk سے کم ہو تو سسٹم انسٹالیشن بلاک کر دیتا ہے اور Google Play ایسی ڈیوائس کو ایپ نہیں دکھاتا۔ minSdk سامعین کی رسائی کو متاثر کرتا ہے: minSdk = 26 ~85% ڈیوائسز کا احاطہ کرتا ہے، minSdk = 21 ~97% کا احاطہ کرتا ہے۔

نئے پروجیکٹ کے لیے صحیح minSdkVersion کیسے منتخب کریں؟

minSdkVersion Android Studio میں Distribution Dashboard کے اعدادوشمار اور ہدف سامعین کی بنیاد پر منتخب کیا جاتا ہے۔ بڑے پیمانے کی ایپس کے لیے، minSdk 26 (Android 8.0) تجویز کیا جاتا ہے — یہ ~85% ڈیوائسز کا احاطہ کرتا ہے۔ B2B ایپس کے لیے، آپ minSdk 31 (Android 12) سیٹ کر سکتے ہیں۔ یہ یقینی بنانا ضروری ہے کہ تمام استعمال شدہ لائبریریاں منتخب کردہ minSdk کو سپورٹ کرتی ہیں۔ Compose ایپس کے لیے، کم از کم حد API 21 ہے۔

کم minSdkVersion کے ساتھ نئی APIs کیسے استعمال کریں؟

نئی APIs کو بیک پورٹ والے AndroidX (AppCompat، Core KTX، Activity Result API) کے ذریعے یا فال بیک کوڈ والے Build.VERSION.SDK_INT رن ٹائم چیک کے ذریعے کم minSdkVersion کے ساتھ استعمال کیا جا سکتا ہے۔ @RequiresApi تشریح lint کو بتاتی ہے کہ کسی طریقہ کو ایک مخصوص API Level درکار ہے۔ AndroidX Material Components UI اجزاء کے لیے بھی پسماندہ مطابقت فراہم کرتے ہیں۔ چیک کے بغیر، ایپ NoSuchMethodError کے ساتھ کریش ہو جائے گی۔

اگر کوئی لائبریری میرے minSdk سے زیادہ minSdk درکار کرے تو کیا ہوگا؟

اگر کسی لائبریری کا minSdkVersion ایپ سے زیادہ ہے تو Android Studio ایک بلڈ غلطی دکھاتا ہے: Manifest merger failed۔ حل یہ ہے کہ ایپ کے minSdk کو لائبریری کی سطح تک بڑھایا جائے، کم minSdk والا متبادل تلاش کیا جائے، یا ریپر استعمال کیا جائے۔ زیادہ تر Jetpack لائبریریوں کا minSdk 21 یا 26 ہے۔ Firebase ML Kit کو minSdk 21 درکار ہے، CameraX کو minSdk 21 درکار ہے۔

کیا اشاعت کے بعد minSdkVersion تبدیل کیا جا سکتا ہے؟

اشاعت کے بعد minSdkVersion بڑھانا ممکن ہے، لیکن اس سے پرانی ڈیوائسز پر صارفین ضائع ہو سکتے ہیں۔ Google Play Console میں فعال ڈیوائس کے اعدادوشمار کا تجزیہ کرتے ہوئے ایک بار میں 1-2 API Level سے زیادہ minSdk نہ بڑھانے کی سفارش کی جاتی ہے۔ minSdkVersion کم کرنا تکنیکی طور پر ممکن ہے، لیکن اس کے لیے نئے minSdk سے اوپر کی API کالز کے لیے کوڈ کی جانچ درکار ہے اور اس میں کوڈ کے کچھ حصوں کو دوبارہ لکھنے کی ضرورت پڑ سکتی ہے۔

خلاصہ

  • minSdkVersion — ایپ انسٹالیشن کے لیے کم از کم API Level، build.gradle میں ایک اہم مطابقت پیرامیٹر
  • حدود minSdk = 21 97% ڈیوائسز کا احاطہ کرتا ہے، minSdk = 26 85% کا، minSdk = 31 55% کا
  • AndroidX اور Jetpack لائبریریاں پرانے ورژنز پر نئی APIs کے لیے پسماندہ مطابقت فراہم کرتی ہیں
  • lint minSdk سے اوپر کی APIs کال کرنے پر متنبہ کرتا ہے — @RequiresApi اور SDK_INT if-چیک استعمال کریں
  • Google Play انسٹالیشن پر minSdk چیک کرتا ہے اور غیر مطابقت پذیر ڈیوائسز کے لیے ایپ فلٹر کرتا ہے
  • انتخاب minSdk کا Distribution Dashboard، انحصار کے تقاضوں اور ہدف مارکیٹ پر مبنی ہونا چاہیے
  • بڑھانا اشاعت کے بعد minSdk صارف کے نقصان کا باعث بنتا ہے — تبدیلی سے پہلے اعدادوشمار کا تجزیہ کریں

ہم ایک موبائل ایپلیکیشن ٹرنکی تیار کریں گے

IT Sectr 2017 سے اسٹارٹ اپس اور کاروبار کے لیے iOS اور Android ایپلیکیشنز بناتا ہے۔ ہم آپ کو مشورہ دیں گے اور بہترین حل تجویز کریں گے۔

پروجیکٹ پر بحث کریں

مزید پڑھیں