minSdkVersion: এটি কী এবং ন্যূনতম Android সংস্করণ কীভাবে নির্বাচন করবেন

লেখক: IT Sectr প্রকাশিত: 2026-02-08 পড়ার সময়: 11 মিনিট

minSdkVersion হল ন্যূনতম Android API Level যেখানে একটি অ্যাপ্লিকেশন ইনস্টল এবং চালু করা যেতে পারে। প্যারামিটারটি build.gradle-এ defaultConfig ব্লকে নির্দিষ্ট করা হয় এবং সামঞ্জস্যের নিম্ন সীমা নির্ধারণ করে: যদি ডিভাইসের API Level minSdk মানের নিচে থাকে, সিস্টেম ইনস্টলেশন ব্লক করে দেয়, এবং Google Play সেই ডিভাইসে অ্যাপটি দেখায় না। Android Developers-এর মতে, শ্রোতা নাগাল এবং আধুনিক API-তে অ্যাক্সেসের মধ্যে ভারসাম্য রাখতে সঠিক minSdk নির্বাচন করা গুরুত্বপূর্ণ।

মূল পয়েন্ট

  • minSdkVersion — অ্যাপ ইনস্টলেশনের জন্য ন্যূনতম API Level, build.gradle-এ সেট করা হয়
  • Google Play minSdkVersion-এর চেয়ে কম API Level-এর ডিভাইসে অ্যাপ লুকিয়ে রাখে
  • কভারেজ minSdk = 26 (Android 8.0) ~85% ডিভাইস কভার করে, minSdk = 21 ~97%
  • AndroidX এবং Jetpack লাইব্রেরি কম minSdk-এ নতুন API ব্যবহার করতে দেয়
  • lint minSdk-এর উপরে API কল করার বিষয়ে সতর্ক করে — @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 মান হল শ্রোতা নাগাল এবং নতুন API-তে অ্যাক্সেসের মধ্যে একটি বাণিজ্য-বন্ধ। minSdk যত কম হবে, তত বেশি ডিভাইস অ্যাপটি ইনস্টল করতে পারবে, বিশেষ করে উন্নয়নশীল অঞ্চলে যেখানে পুরানো Android স্মার্টফোন জনপ্রিয়। minSdk যত বেশি হবে, তত কম পশ্চাৎগামী সামঞ্জস্য কোড প্রয়োজন এবং তত বেশি আধুনিক API রানটাইম চেক ছাড়া উপলব্ধ হবে। Android Jetpack এবং AndroidX লাইব্রেরি পুরানো Android সংস্করণে অনেক নতুন API-র ব্যাকপোর্ট প্রদান করে, যা কার্যকারিতা না হারিয়ে কম minSdk নির্বাচনের অনুমতি দেয়।

minSdkVersion উন্নয়নের সকল ধাপকে প্রভাবিত করে: স্ট্যাটিক বিশ্লেষণ (lint সতর্কতার জন্য minSdk ব্যবহার করে), নির্ভরতা সামঞ্জস্য (লাইব্রেরির নিজস্ব minSdk প্রয়োজন হতে পারে), পরীক্ষা (minSdk সহ ডিভাইসে পরীক্ষা প্রয়োজন), এবং Google Play Console (শ্রোতা নাগাল minSdk-এর ভিত্তিতে গণনা করা হয়)। minSdkVersion পরিবর্তন করা প্রকল্প সেটআপের সবচেয়ে গুরুত্বপূর্ণ সিদ্ধান্তগুলির মধ্যে একটি, কারণ এটি কোড, পরীক্ষা এবং ব্যবহারকারী ভিত্তিকে প্রভাবিত করে।

কোথায় minSdkVersion নির্দিষ্ট করা হয়

Build.gradle.kts (Kotlin DSL) Android প্রকল্পে আধুনিক মান। minSdk প্যারামিটার মডিউল স্তরে defaultConfig ব্লকে সেট করা হয়। মানটি বিভিন্ন বিল্ড টাইপ এবং প্রোডাক্ট ফ্লেভারের জন্য ওভাররাইড করা যেতে পারে, যা মূল মান পরিবর্তন না করেই কম API-তে পরীক্ষার অনুমতি দেয়।

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 API-তে অ্যাক্সেস দেয়, এবং 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।

তৃতীয় কারণ হল প্রয়োজনীয় API। যদি মূল অ্যাপ কার্যকারিতার জন্য একটি API প্রয়োজন হয় যা শুধুমাত্র একটি নির্দিষ্ট স্তর থেকে উপলব্ধ (যেমন, PhotoPicker — API 34, Predicted Navigation — API 35), এটি minSdk বাড়ানোর ন্যায্যতা দিতে পারে। তবে, কম minSdk বজায় রাখতে প্রায়শই AndroidX ব্যাকপোর্ট (Activity Result API, NotificationCompat) এবং রানটাইম চেকের সংমিশ্রণ ব্যবহার করা হয়।

minSdkAndroid সংস্করণকভারেজ (~2026)সুপারিশ
215.0 Lollipop97%সর্বোচ্চ কভারেজ, প্রচুর ফallback কোড
236.0 Marshmallow95%রানটাইম অনুমতি নেটিভভাবে উপলব্ধ
268.0 Oreo85%সুপারিশকৃত বেস লেভেল
2910 Q72%Scoped Storage নেটিভভাবে, কম পরীক্ষা
3112 Snow Cone55%নিCHE অ্যাপ, আধুনিক API

ধাপে ধাপে নির্বাচন কৌশল

ধাপ 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) দ্রুত আপডেট হয়: তাদের উপর API 31+ এর অংশ নির্মাতাদের জন্য Google Play-এর বাধ্যতামূলক প্রয়োজনীয়তার কারণে 68% পর্যন্ত পৌঁছায়। Non-GMS ডিভাইস (Huawei, Honor, কিছু চীনা ব্র্যান্ড) এর বিতরণ পুরানো: তাদের উপর API 31+ এর অংশ প্রায় 35%। যদি আপনার অ্যাপ আন্তর্জাতিক বাজারের জন্য হয়, বৈশ্বিক পরিসংখ্যানের উপর নির্ভর করুন। যদি এটি চীনের জন্য হয়, non-GMS সেগমেন্ট বিবেচনা করুন।

API LevelAndroid সংস্করণবৈশ্বিক কভারেজNon-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% কভারেজ) ন্যায়সঙ্গত কিন্তু পুরানো API-র সাথে কাজ করার জন্য আরও কোড প্রয়োজন হবে। নিয়ন্ত্রিত ডিভাইস বহর সহ এন্টারপ্রাইজ অ্যাপের জন্য, আপনি minSdk 31 সেট করতে পারেন এবং ফallback কোড সম্পূর্ণভাবে নির্মূল করতে পারেন।

পশ্চাৎগামী সামঞ্জস্য: AndroidX, lint এবং @RequiresApi

পশ্চাৎগামী সামঞ্জস্য কম minSdkVersion-এর সাথে প্রধান চ্যালেঞ্জ। AndroidX (পূর্বে Support Library) পুরানো Android সংস্করণে আধুনিক API-র ব্যাকপোর্ট প্রদান করে: Material Design-এর জন্য AppCompatActivity, FragmentManager, Loader, NotificationCompat, PreferenceFragmentCompat এবং ডজন ডজন অন্যান্য উপাদান। নেটিভ API-র পরিবর্তে AndroidX সমতুল্য ব্যবহার করা সামঞ্জস্যের দিকে প্রথম পদক্ষেপ।

lint (Android Studio-র স্ট্যাটিক বিশ্লেষক) minSdkVersion-এর উপরে API কলের জন্য কোড স্ক্যান করে। যদি একটি মেথড minSdk-এর চেয়ে বেশি API Level-এ @RequiresApi দিয়ে অ্যানোটেট করা হয় এবং চেক ছাড়া কল করা হয়, lint একটি ত্রুটি হাইলাইট করে। সতর্কতা দমনের জন্য, মেথডে @SuppressLint("NewApi") অ্যানোটেশন বা পুরো ফাংশনে @RequiresApi(Build.VERSION_CODES.TIRAMISU) ব্যবহার করুন। রানটাইম চেক Build.VERSION.SDK_INT-এর মাধ্যমে পুরানো ডিভাইসে নিরাপদে নতুন API কল করার প্রধান প্রক্রিয়া।

kotlin
// পশ্চাৎগামী সামঞ্জস্যের উদাহরণ: PhotoPicker (API 34+) এবং ফallback
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 {
            // ফallback: 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 Level-এ কাজ করে, তাই মৌলিক ছবি নির্বাচন minSdk-এর উপর নির্ভর করে না। PhotoPicker (ACTION_PICK_IMAGES) শুধুমাত্র API 34 থেকে উপলব্ধ এবং GetContent-এ ফallback সহ 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-এর উপরে API ব্যবহার করে, ডেভেলপারকে রানটাইম চেক যোগ করতে হবে বা প্রাসঙ্গিক মেথডে @RequiresApi নির্দিষ্ট করতে হবে। AndroidX Core KTX (minSdk 21) Context, Bundle, Locale এবং অন্যান্য সিস্টেম ক্লাসের জন্য ব্যাকপোর্ট প্রদান করে, যা লাইব্রেরিকে কম minSdk বজায় রাখতে দেয়।

minSdkVersion নির্বাচনে সাধারণ ভুল

minSdk নির্বাচনে ভুল হাজার হাজার ইনস্টলেশন বা সপ্তাহের অতিরিক্ত উন্নয়নের খরচ করতে পারে। প্রথম সাধারণ ভুল হল Distribution Dashboard বিশ্লেষণ না করেই প্রকল্প টেমপ্লেট থেকে minSdk কপি করা। অনেক ডেভেলপার Android Studio Template থেকে 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 চেকের জন্য সঠিক আর্কিটেকচার হল minSdk থেকে compileSdk পর্যন্ত সমস্ত সম্ভাব্য মান কভার করে রেঞ্জ সহ when এক্সপ্রেশন। মূল নিয়ম: 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-এর সাথে কীভাবে নতুন API ব্যবহার করবেন?

নতুন API কম minSdkVersion-এর সাথে ব্যাকপোর্ট সহ AndroidX (AppCompat, Core KTX, Activity Result API) বা ফallback কোড সহ Build.VERSION.SDK_INT রানটাইম চেকের মাধ্যমে ব্যবহার করা যেতে পারে। @RequiresApi অ্যানোটেশন lint-কে জানায় যে একটি মেথডের একটি নির্দিষ্ট API Level প্রয়োজন। AndroidX Material Components UI উপাদানের জন্যও পশ্চাৎগামী সামঞ্জস্য প্রদান করে। চেক ছাড়া, অ্যাপ NoSuchMethodError-সহ ক্র্যাশ করবে।

যদি কোনো লাইব্রেরির minSdk আমার থেকে বেশি হয় তাহলে কী হবে?

যদি কোনো লাইব্রেরির minSdkVersion অ্যাপের চেয়ে বেশি হয়, Android Studio একটি বিল্ড ত্রুটি দেখায়: Manifest merger failed। সমাধান হল অ্যাপের minSdk লাইব্রেরির স্তরে বাড়ানো, কম minSdk সহ একটি বিকল্প খুঁজে বের করা, বা একটি র্যাপার ব্যবহার করা। বেশিরভাগ Jetpack লাইব্রেরির minSdk 21 বা 26। Firebase ML Kit-এর minSdk 21 প্রয়োজন, CameraX-এর minSdk 21 প্রয়োজন।

প্রকাশের পরে কি minSdkVersion পরিবর্তন করা যেতে পারে?

প্রকাশের পরে minSdkVersion বাড়ানো সম্ভব, কিন্তু এটি পুরানো ডিভাইসে ব্যবহারকারী হারাতে পারে। একবারে 1-2 API Level-এর বেশি minSdk না বাড়ানোর সুপারিশ করা হয়, Google Play Console-এ সক্রিয় ডিভাইস পরিসংখ্যান বিশ্লেষণ করে। minSdkVersion কমানো প্রযুক্তিগতভাবে সম্ভব, কিন্তু নতুন minSdk-এর উপরে API কলের জন্য কোড পরীক্ষা প্রয়োজন এবং কোডের অংশগুলি পুনরায় লেখার প্রয়োজন হতে পারে।

সারসংক্ষেপ

  • minSdkVersion — অ্যাপ ইনস্টলেশনের জন্য ন্যূনতম API Level, build.gradle-এ একটি গুরুত্বপূর্ণ সামঞ্জস্য প্যারামিটার
  • পরিসর minSdk = 21 97% ডিভাইস কভার করে, minSdk = 26 85% কভার করে, minSdk = 31 55% কভার করে
  • AndroidX এবং Jetpack লাইব্রেরি পুরানো সংস্করণে নতুন API-র জন্য পশ্চাৎগামী সামঞ্জস্য প্রদান করে
  • lint minSdk-এর উপরে API কল করার বিষয়ে সতর্ক করে — @RequiresApi এবং SDK_INT if-চেক ব্যবহার করুন
  • Google Play ইনস্টলেশনে minSdk চেক করে এবং অসামঞ্জস্যপূর্ণ ডিভাইসের জন্য অ্যাপ ফিল্টার করে
  • নির্বাচন minSdk Distribution Dashboard, নির্ভরতা প্রয়োজনীয়তা এবং লক্ষ্য বাজারের উপর ভিত্তি করে হওয়া উচিত
  • বাড়ানো প্রকাশের পরে minSdk ব্যবহারকারী হ্রাসের দিকে নিয়ে যায় — পরিবর্তনের আগে পরিসংখ্যান বিশ্লেষণ করুন

আমরা একটি মোবাইল অ্যাপ্লিকেশন টার্নকি তৈরি করব

IT Sectr 2017 সাল থেকে স্টার্টআপ এবং ব্যবসার জন্য iOS এবং Android অ্যাপ্লিকেশন তৈরি করে। আমরা আপনাকে পরামর্শ দেব এবং সেরা সমাধান প্রস্তাব করব।

প্রকল্প নিয়ে আলোচনা করুন

আরও পড়ুন