API Level Android एक पूर्णांक पहचानकर्ता है जो Android प्लेटफ़ॉर्म के एक विशिष्ट रिलीज़ से विशिष्ट रूप से मेल खाता है। OS के प्रत्येक संस्करण का अपना अद्वितीय नंबर होता है: Android 14 = API 34, Android 15 = API 35। डेवलपर build.gradle में तीन पैरामीटर — minSdkVersion, targetSdkVersion और compileSdkVersion — प्रबंधित करता है ताकि अनुकूलता और नई सुविधाओं तक पहुँच को नियंत्रित किया जा सके। Android Developers के अनुसार, सही API Level चुनना सुरक्षा और दर्शक कवरेज के लिए महत्वपूर्ण है।
मुख्य बातें
API Level Android एक पूर्णांक पहचानकर्ता है जो Android Framework API के प्रत्येक सार्वजनिक रिलीज़ को सौंपा जाता है। पहला रिलीज़ Android 1.0 में API Level 1 था, 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। प्रत्येक नया API Level नई कक्षाएँ, विधियाँ, स्थिरांक, अनुमतियाँ जोड़ सकता है और मौजूदा के व्यवहार को बदल सकता है।
API Level प्रत्येक रिलीज़ के साथ सख्ती से 1 से नहीं बढ़ता है। उदाहरण के लिए, Android 4.4W (Wear) में API 20 है, जबकि Android 5.0 में API 21। अंतराल आंतरिक पुनरावृत्तियों और Wear OS उपकरणों से संबंधित हैं। डेवलपर के लिए संस्करण का नाम (KitKat, Lollipop, Tiramisu) नहीं, बल्कि उसका API Level जानना महत्वपूर्ण है — इसका उपयोग कोड में अनुकूलता जाँच के लिए किया जाता है।
API Level का मुख्य उद्देश्य पश्चगामी अनुकूलता है। API 34 के विरुद्ध संकलित एप्लिकेशन API 34 और उससे नीचे के उपकरणों पर चल सकता है (यदि वह बिना जाँच के नए API का उपयोग नहीं करता है)। Android Runtime (ART) सिस्टम स्तर पर API कॉल की जाँच करता है और एप्लिकेशन के targetSdkVersion के आधार पर व्यवहारिक परिवर्तन लागू करता है।
एप्लिकेशन इंस्टॉल करते समय, PackageManager जाँचता है कि डिवाइस का API Level AndroidManifest.xml से minSdkVersion >= है या नहीं। यदि शर्त पूरी नहीं होती है — तो इंस्टॉलेशन "App not installed" संदेश के साथ अवरुद्ध हो जाता है। रनटाइम के दौरान, Android Runtime उन API कॉल की निगरानी करता है जिनके लिए उच्च API Level की आवश्यकता होती है और NoSuchMethodError या UnsatisfiedLinkError उत्पन्न करता है यदि विधि वर्तमान संस्करण में मौजूद नहीं है।
| घटक | API Level संभालने में भूमिका |
|---|---|
| PackageManager | इंस्टॉलेशन के दौरान minSdkVersion जाँचता है |
| Android Runtime (ART) | रनटाइम पर API अनुकूलता जाँच करता है |
| Google Play Store | डिवाइस API Level द्वारा एप्लिकेशन फ़िल्टर करता है |
| SDK Manager | आवश्यक API Level के तहत संकलन के लिए प्लेटफ़ॉर्म डाउनलोड करता है |
| lint | स्थैतिक विश्लेषक, minSdk से ऊपर API के उपयोग के बारे में चेतावनी देता है |
build.gradle फ़ाइल (Module: app) में, डेवलपर तीन API Level पैरामीटर निर्दिष्ट करता है: minSdkVersion, targetSdkVersion और compileSdkVersion। उन्हें भ्रमित करना शुरुआती Android डेवलपर्स की सबसे आम गलतियों में से एक है। प्रत्येक पैरामीटर अनुकूलता के एक अलग पहलू के लिए जिम्मेदार है, और उनके मान सुसंगत होने चाहिए।
minSdkVersion न्यूनतम API Level है जिस पर एप्लिकेशन इंस्टॉल और चलाया जा सकता है। minSdk से कम API Level वाले उपकरण Google Play में एप्लिकेशन नहीं देखते हैं और इसे इंस्टॉल नहीं कर सकते। मान लक्षित दर्शकों के आधार पर चुना जाता है: minSdk 21 (Android 5.0) 97% उपकरणों को कवर करता है, minSdk 26 (Android 8.0) — लगभग 85%, minSdk 31 (Android 12) — लगभग 55% (Android Studio Distribution Dashboard, 2026 से डेटा)। minSdk जितना कम होगा, कवरेज उतना ही अधिक होगा, लेकिन पश्चगामी अनुकूलता कोड उतना ही अधिक होगा।
targetSdkVersion वह API Level है जिसके विरुद्ध एप्लिकेशन का परीक्षण किया गया। Android व्यवहारिक परिवर्तन लागू करने के लिए targetSdk का उपयोग करता है: यदि एप्लिकेशन targetSdk 33 निर्दिष्ट करता है, तो सिस्टम API 33 में शुरू किए गए सभी व्यवहारिक परिवर्तनों को सक्षम करता है। यदि targetSdk 31 है, तो सिस्टम API 32-33 परिवर्तनों को लागू नहीं करता है, पुराने व्यवहार के साथ अनुकूलता बनाए रखता है। यह सुरक्षा के लिए सबसे महत्वपूर्ण पैरामीटर है: Google Play को targetSdk वर्तमान API Level से 1 वर्ष से अधिक पुराना नहीं होना चाहिए।
compileSdkVersion Android SDK का वह संस्करण है जिसके विरुद्ध कोड संकलित किया जाता है। यह निर्धारित करता है कि संकलन के समय कौन से API उपलब्ध हैं। compileSdk targetSdk से >= होना चाहिए और आदर्श रूप से नवीनतम स्थिर API Level के बराबर होना चाहिए। compileSdk बढ़ाने से रनटाइम व्यवहार प्रभावित नहीं होता — केवल संकलक के लिए नए API की उपलब्धता होती है। compileSdk बढ़ाने के बाद, आपको पदावनत API और नई अनुमति आवश्यकताओं के लिए कोड की जाँच करनी होगी।
// build.gradle.kts — API Level कॉन्फ़िगरेशन उदाहरण
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 उदाहरण में, compileSdk = 36 (लेखन के समय नवीनतम), targetSdk = 36, minSdk = 26 (Android 8.0)। compileSdk 36 सभी Android 16 API तक पहुँच प्रदान करता है। targetSdk 36 सभी Android 16 व्यवहारिक परिवर्तनों को सक्षम करता है। minSdk 26 ~85% उपकरणों को कवर करता है। AndroidX Activity KTX और AppCompat फ़्रैगमेंट और थीम के लिए पश्चगामी अनुकूलता प्रदान करते हैं।
minSdk और targetSdk पैरामीटर AndroidManifest.xml में भी निर्दिष्ट किए जा सकते हैं, लेकिन आधुनिक प्रोजेक्ट build.gradle का उपयोग करते हैं — Gradle के मान मैनिफ़ेस्ट को ओवरराइट करते हैं। मैनिफ़ेस्ट में, उन लाइब्रेरी और मॉड्यूल के लिए
व्यवहारिक परिवर्तन Android सिस्टम के काम करने के तरीके में संशोधन हैं जो केवल targetSdk >= एक निश्चित API Level वाले एप्लिकेशन पर लागू होते हैं। प्रत्येक नया Android रिलीज़ व्यवहारिक परिवर्तन लाता है जो मौजूदा एप्लिकेशन को तोड़ सकता है यदि उन्हें अपडेट नहीं किया गया है। यह Android की एक प्रमुख सुरक्षा तंत्र है: पुराने एप्लिकेशन पहले की तरह काम करते रहते हैं, नए वर्तमान नियमों का पालन करते हैं।
Android 10 (API 29) — Scoped Storage: targetSdk 29+ वाले एप्लिकेशन की साझा फ़ाइल सिस्टम तक सीधी पहुँच नहीं है, केवल MediaStore, SAF या अपने स्वयं के स्टोरेज के माध्यम से। Android 11 (API 30) — Package Visibility: पैकेज फ़िल्टर, एप्लिकेशन केवल उन इंस्टॉल किए गए पैकेज को देखते हैं जिनके साथ वे इंटरैक्ट करते हैं। Android 12 (API 31) — Foreground Service Notification: सभी फ़ोरग्राउंड सेवाएँ शुरू होने के 10 सेकंड के भीतर एक सूचना दिखाने के लिए बाध्य हैं। Android 13 (API 33) — POST_NOTIFICATIONS: पुश सूचनाओं के लिए रनटाइम अनुमति। Android 14 (API 34) — Foreground Service Types: मैनिफ़ेस्ट में फ़ोरग्राउंड सेवा प्रकार की अनिवार्य घोषणा।
// Android 13 (API 33) व्यवहारिक परिवर्तनों को संभालना: 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 अनुमति केवल API 33+ के साथ काम करती है
if (Build.VERSION.SDK_INT < Build.VERSION_CODES.TIRAMISU) {
return // API 33 से नीचे अनुमति की आवश्यकता नहीं है
}
when {
ContextCompat.checkSelfPermission(
activity,
Manifest.permission.POST_NOTIFICATIONS
) == PackageManager.PERMISSION_GRANTED -> {
// अनुमति पहले ही दी जा चुकी है, सूचनाएँ भेज सकते हैं
showNotification(activity)
}
activity.shouldShowRequestPermissionRationale(
Manifest.permission.POST_NOTIFICATIONS
) -> {
// समझाएँ कि अनुमति की आवश्यकता क्यों है
activity.showRationale()
}
else -> {
// अनुमति का अनुरोध करें
activity.requestPermissionLauncher.launch(
Manifest.permission.POST_NOTIFICATIONS
)
}
}
}
private fun showNotification(context: Context) {
// सूचना बनाएँ और दिखाएँ
val notification = android.app.Notification.Builder(context, "default_channel")
.setSmallIcon(android.R.drawable.ic_dialog_info)
.setContentTitle("सूचना")
.setContentText("नया संदेश")
.build()
val manager = context.getSystemService(Context.NOTIFICATION_SERVICE)
as android.app.NotificationManager
manager.notify(1, notification)
}
}
// Activity में requestPermissionLauncher पंजीकृत करें
class MainActivity : ComponentActivity() {
val requestPermissionLauncher = registerForActivityResult(
ActivityResultContracts.RequestPermission()
) { isGranted: Boolean ->
if (isGranted) {
// अनुमति प्राप्त हुई
}
}
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_main)
}
}Kotlin में POST_NOTIFICATIONS को संभालने का उदाहरण: Build.VERSION.SDK_INT >= TIRAMISU की जाँच, ActivityResultContracts.RequestPermission के माध्यम से रनटाइम अनुमति का अनुरोध, कॉलबैक में परिणाम को संभालना। इस अनुमति के बिना, targetSdk 33+ वाला एप्लिकेशन पुश सूचनाएँ नहीं दिखा सकता। API 33 से नीचे अनुमति की आवश्यकता नहीं है — जाँच कोड अनुपलब्ध API को कॉल करने से रोकता है।
Scoped Storage सबसे महत्वपूर्ण व्यवहारिक परिवर्तनों में से एक है। API 29 (targetSdk 29+) से शुरू करके, एप्लिकेशन Pictures, Downloads, Music और Documents निर्देशिकाओं तक सीधी फ़ाइल पहुँच प्राप्त नहीं कर सकता। इसके बजाय, मीडिया के लिए MediaStore, मनमानी फ़ाइलों के लिए SAF (Storage Access Framework), और अपने स्वयं के स्टोरेज के लिए getExternalFilesDir() का उपयोग किया जाता है। अपवाद MANAGE_EXTERNAL_STORAGE अनुमति वाले एप्लिकेशन हैं, जिसके लिए Google Play की मंजूरी आवश्यक है।
Google Play एप्लिकेशन प्रकाशित करने के लिए targetSdkVersion की अनिवार्य आवश्यकताएँ निर्धारित करता है। अगस्त 2024 से, Google Play को targetSdkVersion >= API 33 (Android 13) चाहिए। हर साल सीमा बढ़ती है: नए एप्लिकेशन और अपडेट को वर्तमान प्रमुख API Level से 1 वर्ष से अधिक पुराना targetSdk निर्दिष्ट नहीं करना चाहिए। आवश्यकता का उल्लंघन प्रकाशन को अवरुद्ध करने और स्टोर से एप्लिकेशन को हटाने की ओर ले जाता है।
मुख्य कारण सुरक्षा है। प्रत्येक नया Android API Level व्यवहारिक परिवर्तन लाता है जो हमले के वैक्टर को बंद करता है: Scoped Storage (API 29) फ़ाइल चोरी को रोकता है, POST_NOTIFICATIONS (API 33) स्पैम सूचनाओं से बचाता है, Foreground Service Types (API 34) छिपी हुई पृष्ठभूमि सेवाओं को सीमित करता है। कम targetSdk वाले एप्लिकेशन को ये सुरक्षाएँ नहीं मिलती हैं और वे उपयोगकर्ताओं के लिए खतरा बन जाते हैं। Google Play आधुनिक उपकरणों पर पुराने एप्लिकेशन की अनुमति नहीं दे सकता।
Google Play Console APK/AAB अपलोड करते समय targetSdkVersion की जाँच करता है। यदि targetSdk आवश्यकता से कम है — कंसोल प्रकाशन को संदेश के साथ अवरुद्ध करता है: "Your app currently targets API level X and must target at least API level Y"। डेवलपर को build.gradle अपडेट करना होगा, एप्लिकेशन को पुनः संकलित करना होगा, व्यवहारिक परिवर्तनों का परीक्षण करना होगा और पुनः अपलोड करना होगा। सभी नए प्रकाशनों के लिए AAB प्रारूप अनुशंसित है (अगस्त 2021 से अनिवार्य)।
| दिनांक | न्यूनतम targetSdk | Android संस्करण |
|---|---|---|
| अगस्त 2022 | 31 | Android 12 |
| अगस्त 2023 | 33 | Android 13 |
| अगस्त 2024 | 33 | Android 13 |
| अगस्त 2025 | 34 | Android 14 |
| अगस्त 2026 (योजना) | 35 | Android 15 |
Build.VERSION.SDK_INT एक स्थैतिक पूर्णांक स्थिरांक है जिसमें उस डिवाइस का API Level होता है जिस पर एप्लिकेशन चल रहा है। यह रनटाइम Android संस्करण जाँच के लिए प्राथमिक उपकरण है। Build.VERSION_CODES में प्रत्येक API Level के लिए नामित स्थिरांक होते हैं: VERSION_CODES.TIRAMISU (33), VERSION_CODES.UPSIDE_DOWN_CAKE (34), VERSION_CODES.VANILLA_ICE_CREAM (35)। if (SDK_INT >= VERSION_CODES.TIRAMISU) के माध्यम से तुलना मानक पैटर्न है।
// Android कोड में API Level जाँच के उदाहरण
import android.os.Build
import android.os.Build.VERSION
import android.os.Build.VERSION_CODES
import android.graphics.drawable.AdaptiveIconDrawable
class ApiLevelHelper {
// 1. मूल API Level जाँच
fun isAtLeastTiramisu(): Boolean {
return VERSION.SDK_INT >= VERSION_CODES.TIRAMISU // 33
}
// 2. जाँच के साथ अनुकूली API कॉल
fun getAdaptiveIcon(drawable: android.graphics.drawable.Drawable):
android.graphics.drawable.Drawable? {
// AdaptiveIconDrawable केवल API 26 (Android 8) के साथ उपलब्ध है
if (VERSION.SDK_INT >= VERSION_CODES.O) {
return AdaptiveIconDrawable(drawable, null)
}
return drawable // पुराने उपकरणों के लिए fallback
}
// 3. POST_NOTIFICATIONS अनुमति जाँच (केवल API 33+)
fun canRequestNotificationPermission(): Boolean {
return VERSION.SDK_INT >= VERSION_CODES.TIRAMISU
}
// 4. API Level द्वारा छवि प्रदाता चुनना
fun getImagePickerProvider(): String {
return when {
VERSION.SDK_INT >= VERSION_CODES.UPSIDE_DOWN_CAKE -> {
// API 34+ PhotoPicker का उपयोग करता है
"photo_picker"
}
VERSION.SDK_INT >= VERSION_CODES.KITKAT -> {
// API 19+ Intent ACTION_OPEN_DOCUMENT का उपयोग करता है
"open_document"
}
else -> {
// Legacy: ACTION_GET_CONTENT (सभी संस्करण)
"get_content"
}
}
}
// 5. @TargetApi के माध्यम से Java-शैली जाँच (पश्चगामी अनुकूलता के लिए)
@Suppress("DEPRECATION")
fun checkLegacyStorage(): Boolean {
// Scoped Storage व्यवहार targetSdk पर निर्भर करता है, SDK_INT पर नहीं
return VERSION.SDK_INT < VERSION_CODES.Q // Android 10
}
// 6. विश्लेषण के लिए बिल्ड जानकारी
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
)
}
}
// परीक्षण
fun main() {
val helper = ApiLevelHelper()
println("API Level: ${VERSION.SDK_INT}")
println("Is Tiramisu+: ${helper.isAtLeastTiramisu()}")
}ApiLevelHelper वर्ग API Level जाँच के सभी मुख्य पैटर्न प्रदर्शित करता है: SDK_INT >= VERSION_CODES के साथ isAtLeastTiramisu, पुराने संस्करणों के लिए fallback के साथ getAdaptiveIcon, when मल्टी-ब्रांचिंग के साथ getImagePickerProvider, विश्लेषण के लिए getDeviceApiInfo। मुख्य नियम SDK_INT की जाँच के बिना नए API को कॉल नहीं करना है, अन्यथा एप्लिकेशन पुराने उपकरणों पर NoSuchMethodError के साथ क्रैश हो जाएगा।
Android Studio में स्थैतिक विश्लेषक lint शामिल है, जो minSdkVersion से ऊपर API के उपयोग के बारे में चेतावनी देता है। यदि SDK_INT की जाँच के बिना विधि को कॉल किया जाता है, तो lint इसे त्रुटि के रूप में हाइलाइट करता है: "Call requires API level 34 (current min is 26)"। समाधान: विधि पर @RequiresApi(Build.VERSION_CODES.UPSIDE_DOWN_CAKE) जोड़ना या SDK_INT की if-जाँच। @TargetApi एक पदावनत एनोटेशन है, @RequiresApi अनुशंसित है।
API Level तालिका डेवलपर के लिए एक संदर्भ उपकरण है। डिवाइस का API Level जानकर, आप Android संस्करण और उपलब्ध सुविधाओं का निर्धारण कर सकते हैं। तालिका API Level 1 (2008) से API Level 36 (2025) तक सभी प्रमुख Android रिलीज़ सूचीबद्ध करती है। कोड नाम (Cupcake, Donut, Tiramisu, VanillaIceCream) Google के अंदर और VERSION_CODES में उपयोग किए जाते हैं।
| API Level | Android संस्करण | कोड नाम | वर्ष |
|---|---|---|---|
| 1 | 1.0 | — | 2008 |
| 3 | 1.5 | Cupcake | 2009 |
| 8 | 2.2 | Froyo | 2010 |
| 14 | 4.0 | Ice Cream Sandwich | 2011 |
| 19 | 4.4 | KitKat | 2013 |
| 21 | 5.0 | Lollipop | 2014 |
| 23 | 6.0 | Marshmallow | 2015 |
| 26 | 8.0 | Oreo | 2017 |
| 28 | 9 | Pie | 2018 |
| 29 | 10 | Quince Tart (10) | 2019 |
| 30 | 11 | Red Velvet Cake | 2020 |
| 31 | 12 | Snow Cone | 2021 |
| 33 | 13 | Tiramisu | 2022 |
| 34 | 14 | Upside Down Cake | 2023 |
| 35 | 15 | Vanilla Ice Cream | 2024 |
| 36 | 16 | Baklava | 2025 |
निम्न तालिका प्रमुख API Level दिखाती है जो targetSdk बढ़ाने पर पश्चगामी अनुकूलता को तोड़ने वाले व्यवहारिक परिवर्तन लाते हैं:
| API Level | व्यवहारिक परिवर्तन | एप्लिकेशन पर प्रभाव |
|---|---|---|
| 29 | Scoped Storage | Pictures/Downloads/Music तक सीधी फ़ाइल पहुँच नहीं |
| 30 | Package Visibility | queryIntentActivities() केवल इंटरैक्ट करने वाले पैकेज देखता है |
| 31 | Foreground Service Notification | 10 सेकंड के भीतर अनिवार्य सूचना |
| 33 | POST_NOTIFICATIONS | सूचनाओं के लिए रनटाइम अनुमति |
| 34 | Foreground Service Types | मैनिफ़ेस्ट में फ़ोरग्राउंड सेवा प्रकार की घोषणा |
| 35 | Privacy Sandbox | विज्ञापन पहचानकर्ता प्रतिबंध |
अक्सर पूछे जाने वाले प्रश्न
API Level Android Android API संस्करण का पूर्णांक पहचानकर्ता है। प्रत्येक रिलीज़ का एक अद्वितीय नंबर होता है: Android 13 = API 33, Android 14 = API 34, Android 15 = API 35, Android 16 = API 36। डेवलपर अनुकूलता प्रबंधित करने के लिए build.gradle में minSdkVersion, targetSdkVersion और compileSdkVersion निर्दिष्ट करता है। API Level उपलब्ध कक्षाओं, विधियों और व्यवहारिक परिवर्तनों को निर्धारित करता है।
minSdkVersion — एप्लिकेशन इंस्टॉल करने के लिए न्यूनतम Android संस्करण। targetSdkVersion — वह संस्करण जिसके विरुद्ध एप्लिकेशन का परीक्षण किया गया, व्यवहारिक परिवर्तन शामिल हैं। compileSdkVersion — कोड संकलित करने के लिए SDK संस्करण। minSdk सबसे कम है, targetSdk अधिमानतः नवीनतम, compileSdk कम से कम targetSdk होना चाहिए। तीनों build.gradle में निर्दिष्ट हैं।
यदि targetSdkVersion डिवाइस के API Level से कम है, तो Android targetSdk के बाद शुरू किए गए व्यवहारिक परिवर्तनों को अक्षम कर देता है। उदाहरण के लिए, Android 14 (API 34) पर targetSdk = 28 के साथ, Scoped Storage, POST_NOTIFICATIONS, Foreground Service Types लागू नहीं होते। Google Play उपयोगकर्ताओं की सुरक्षा के लिए targetSdkVersion को वर्तमान API Level से 1 वर्ष से अधिक पुराना नहीं होना चाहिए।
डिवाइस का API Level स्थिरांक Build.VERSION.SDK_INT (उदाहरण: Android 14 के लिए 34) के माध्यम से उपलब्ध है। तुलना के लिए, Build.VERSION_CODES से नामित स्थिरांक का उपयोग करें: if (SDK_INT >= VERSION_CODES.TIRAMISU)। Build.VERSION.RELEASE संस्करण स्ट्रिंग ("14") लौटाता है। SDK_INT मान क्लास लोड होने पर कैश किया जाता है और किसी भी थ्रेड से उपलब्ध है।
Google Play सुरक्षा व्यवहारिक परिवर्तनों को लागू करने के लिए प्रतिवर्ष targetSdkVersion आवश्यकताओं को बढ़ाता है। प्रत्येक नया API Level Scoped Storage, POST_NOTIFICATIONS, Privacy Sandbox और अन्य सुरक्षाएँ लाता है। कम targetSdk वाले एप्लिकेशन इन सुरक्षाओं को बायपास करते हैं और उपयोगकर्ताओं के लिए जोखिम पैदा करते हैं। आवश्यकता सुनिश्चित करती है कि स्टोर के सभी एप्लिकेशन का वर्तमान नियमों के तहत परीक्षण किया गया है।
सारांश
हम एक मोबाइल एप्लिकेशन टर्नकी विकसित करेंगे
IT Sectr 2017 से स्टार्टअप और व्यवसायों के लिए iOS और Android एप्लिकेशन बनाता है। हम आपको सलाह देंगे और सर्वोत्तम समाधान प्रस्तावित करेंगे।