Android SDK Platform آپریٹنگ سسٹم کے ایک مخصوص ورژن کے لیے لائبریریوں، سسٹم امیجز اور ٹولز کا ایک سیٹ ہے۔ ہر پلیٹ فارم اپنے API Level سے منسلک ہوتا ہے اور اس میں Android API کلاسز کے ساتھ android.jar، رن ٹائم اجزاء اور ایک ایمولیٹر شامل ہوتا ہے۔ Google Developer Documentation، 2026 کے مطابق، ڈیولپرز SDK Platform کو ہدف OS ورژن کے خلاف کوڈ کمپائل کرنے کے لیے استعمال کرتے ہیں۔ نصب شدہ پلیٹ فارم کے بغیر، APK بنانا یا ایمولیٹر پر ایپلیکیشن چلانا ناممکن ہے۔ SDK Manager ان اجزاء کو ڈاؤن لوڈ، اپڈیٹ اور ہٹانے کا انتظام کرتا ہے۔
اہم نکات
SDK Platform Android SDK کا ایک بنیادی جزو ہے، جو Android کے ایک مخصوص ورژن کے لیے ایپلیکیشن ڈیولپ کرنے کے لیے لائبریریوں اور ٹولز کا مکمل سیٹ پیش کرتا ہے۔ ہر پلیٹ فارم کی شناخت اس کے API Level سے ہوتی ہے — ایک عددی قدر جو نئے OS ریلیز کے ساتھ بڑھتی ہے۔ مثال کے طور پر، Android 13 API Level 33، Android 14 API Level 34، Android 15 API Level 35 سے مطابقت رکھتا ہے۔
Android Studio (IDE) کے برعکس، SDK Platform میں کوڈ ایڈیٹر یا ڈیبگر نہیں ہوتا۔ یہ ایک سسٹم پرت ہے جو کمپائلر اور بلڈ سسٹم سے جڑتی ہے۔ جب کوئی ڈیولپر import android.app.Activity لکھتا ہے، کمپائلر اس کلاس کو کسی مخصوص SDK Platform کے android.jar سے لیتا ہے۔ ضروری API Level والے نصب شدہ پلیٹ فارم کے بغیر، کوڈ کمپائل نہیں ہوگا۔
Google ہر مستحکم Android ورژن کے لیے ایک نیا SDK Platform جاری کرتا ہے۔ تاریخ میں 35 سے زیادہ API Levels شامل ہیں — Android 1.0 (API 1) سے Android 15 (API 35) تک۔ ہر پلیٹ فارم پسماندہ مطابقت رکھتا ہے: API Level 21 کے لیے لکھا گیا کوڈ API Level 35 پر چلے گا، لیکن اس کے برعکس نہیں۔
Android تیزی سے ترقی کرتا ہے: ہر ورژن نئی API شامل کرتا ہے، موجودہ کے رویے کو تبدیل کرتا ہے اور پابندیاں لاتا ہے۔ مثال کے طور پر، Android 10 (API 29) نے Scoped Storage متعارف کرایا، Android 12 (API 31) — SplashScreen API، Android 14 (API 34) — لازمی BroadcastReceiver فلیگز۔ ڈیولپر کو ان صلاحیتوں کو استعمال کرنے کے لیے موجودہ پلیٹ فارم کے خلاف ایپلیکیشن کمپائل کرنی چاہیے۔
ساتھ ہی، ایپلیکیشن پرانے OS ورژنز پر چل سکتی ہے۔ اس کے لیے Gradle میں minSdk (کم سے کم API Level جس پر ایپلیکیشن چلتی ہے) متعین کیا جاتا ہے۔ کوڈ ورژن چیک اور مشروط API کالز استعمال کرتا ہے۔ یہ طریقہ نئی خصوصیات کھونے کے بغیر مطابقت کو یقینی بناتا ہے۔
| Android ورژن | API Level | کوڈ کا نام | ریلیز کا سال |
|---|---|---|---|
| Android 12 | 31 | Snow Cone | 2021 |
| Android 13 | 33 | Tiramisu | 2022 |
| Android 14 | 34 | Upside Down Cake | 2023 |
| Android 15 | 35 | Vanilla Ice Cream | 2024 |
SDK Platform ایک فائل نہیں ہے، بلکہ اجزاء کا ایک مجموعہ ہے جو مل کر ایپلیکیشن کی کمپائلیشن، تعمیر اور جانچ کو یقینی بناتے ہیں۔ اہم عنصر android.jar ہے — اس ورژن میں شامل Android API کلاسز کے ساتھ ایک آرکائیو۔ یہ فائل Kotlin یا Java کمپائلر سے جڑتی ہے اور طے کرتی ہے کہ ڈیولپر کے لیے کون سی کلاسز، طریقے اور تشریحات دستیاب ہیں۔
ہر SDK Platform میں Android Virtual Device ایمولیٹر کے لیے ایک System Image (آپریٹنگ سسٹم امیج) شامل ہوتی ہے۔ متعلقہ امیج کے بغیر، ایمولیٹر مطلوبہ API Level والا مجازی آلہ شروع نہیں کر سکتا۔ System Images مختلف اقسام میں آتی ہیں: Google APIs (Google خدمات کے ساتھ)، Google Play (Play Store کے ساتھ) اور AOSP (Google خدمات کے بغیر خالص Android)۔
SDK Platform میں اس API Level کے لیے بہتر کردہ Build-Tools اور Platform-Tools کا ایک ورژن شامل ہوتا ہے۔ Build-Tools میں aapt2 (Android Asset Packaging Tool)، dx/d8 (Dalvik/ART کمپائلر) اور ApkSigner شامل ہیں۔ Platform-Tools ADB (Android Debug Bridge)، fastboot اور SQLite فراہم کرتے ہیں۔ یہ ٹولز SDK Platform سے آزادانہ طور پر SDK Manager کے ذریعے اپ ڈیٹ ہوتے ہیں۔
ہر پلیٹ فارم میں معیاری Android وسائل شامل ہیں — سسٹم تھیمز، اسٹائلز، اینیمیشنز، رنگ اور جہتیں۔ یہ وسائل کمپائلیشن کے دوران استعمال ہوتے ہیں: اگر کوئی ڈیولپر @android:style/Theme.Material.Light کا حوالہ دیتا ہے، بلڈ سسٹم SDK Platform وسائل سے تعریف لیتا ہے۔ یہ تمام آلات پر سسٹم اجزاء کی یکساں شکل کو یقینی بناتا ہے۔
| جزو | تفصیل | سائز (تقریباً) |
|---|---|---|
| android.jar | کمپائلیشن کے لیے Android API لائبریریاں | 50–120 MB |
| System Image | ایمولیٹر کے لیے OS امیج | 600–1500 MB |
| Build-Tools | APK اور AAB بلڈ ٹولز | 200–400 MB |
| Platform Resources | سسٹم وسائل (تھیمز، اسٹائلز) | 30–80 MB |
| Skins | ایمولیٹر کے لیے آلہ پروفائلز | 10–50 MB |
API Level Android SDK ورژن کا ایک عددی شناخت کنندہ ہے۔ ہر Android ریلیز ایک API Level سے مطابقت رکھتی ہے جو یک سمتی طور پر بڑھتا ہے۔ ڈیولپر API Level کو build.gradle کے تین اہم پیرامیٹرز میں متعین کرتا ہے: compileSdk، minSdk اور targetSdk۔ ان پیرامیٹرز کا انتخاب طے کرتا ہے کہ کون سی APIs دستیاب ہیں اور سسٹم ایپلیکیشن کو کیسے ہینڈل کرتا ہے۔
Google minSdk کو موجودہ تقسیم کی حد سے کم نہ رکھنے کی سفارش کرتا ہے — Android Studio Distribution Dashboard (2026) کے مطابق، تقریباً 95% آلات Android 8.0 (API 26) اور اس سے اوپر چلتے ہیں۔ compileSdk تازہ ترین مستحکم ہونا چاہیے — یہ نئی APIs تک رسائی فراہم کرتا ہے اور lint چیکس کو متروک طریقوں کا پتہ لگانے دیتا ہے۔
ہر نئے API Level کے ساتھ، Google اہم تبدیلیاں لاتا ہے۔ Android 6.0 (API 23) نے رن ٹائم اجازتیں شامل کیں — ایپلیکیشن انسٹالیشن کے وقت نہیں بلکہ عملدرآمد کے دوران اجازت طلب کرتی ہے۔ Android 8.0 (API 26) نے آٹو فل فارم اور نوٹیفکیشن چینلز متعارف کرائے۔ Android 12 (API 31) نے انٹینٹس کے طریقہ کار میں بنیادی تبدیلی کی — SplashScreen API اور exported وصف کے ذریعے اجزاء کی برآمد ظاہر ہوئی۔ Android 14 (API 34) نے BroadcastReceiver کے لیے فلیگز متعین کرنا لازمی بنا دیا اور پیش منظر خدمات پر سخت پابندیاں لگائیں۔
API Levels کی تاریخ کو سمجھنا ڈیولپر کو صحیح مطابقت کی حکمت عملی منتخب کرنے میں مدد دیتا ہے۔ اگر ایپلیکیشن compileSdk 35 استعمال کرتی ہے لیکن minSdk 26، تو کوڈ Build.VERSION.SDK_INT کے ذریعے ورژن چیک کرنے کے بعد ہی API 35 کے طریقوں کو کال کر سکتا ہے۔ اس طریقہ کو ورژن گیٹڈ ڈیولپمنٹ کہا جاتا ہے اور یہ صنعتی معیار ہے۔
| Android | API | سال | اہم ایجاد |
|---|---|---|---|
| 6.0 Marshmallow | 23 | 2015 | رن ٹائم اجازتیں |
| 8.0 Oreo | 26 | 2017 | نوٹیفکیشن چینلز، آٹو فل |
| 10 | 29 | 2019 | Scoped Storage، تاریک تھیم |
| 12 | 31 | 2021 | SplashScreen، exported وصف |
| 14 | 34 | 2023 | Broadcast فلیگز، پیش منظر خدمات |
SDK Manager Android SDK اجزاء کے انتظام کے لیے ایک ٹول ہے: نئی SDK Platform انسٹال کرنا، موجودہ کو اپ ڈیٹ کرنا اور پرانی کو ہٹانا۔ SDK Manager Android Studio میں گرافیکل انٹرفیس اور sdkmanager کے ذریعے کمانڈ لائن ٹول کے طور پر دستیاب ہے۔ SDK Manager کی کمانڈ لائن CI/CD پائپ لائنز میں استعمال کرنا آسان ہے جہاں گرافیکل انٹرفیس نہیں ہے۔
SDK Manager پلیٹ فارمز کو Android SDK ڈائرکٹری میں انسٹال کرتا ہے، جو پہلے سے طے شدہ طور پر Linux اور macOS پر $HOME/Android/Sdk یا Windows پر %LOCALAPPDATA%\Android\Sdk پر واقع ہے۔ platforms ڈائرکٹری کے اندر android-{API Level} نام کے فولڈرز ہیں، جن میں سے ہر ایک میں مکمل SDK Platform موجود ہے۔
sdkmanager کمانڈ "platforms;android-{API}" فارمیٹ میں پیکیج شناخت کنندہ قبول کرتا ہے۔ مثال کے طور پر، SDK Platform 35 انسٹال کرنے کے لیے کمانڈ یوں ہے:
# API Level 35 کے لیے SDK Platform انسٹال کریں
sdkmanager "platforms;android-35"
# ایک کمانڈ سے متعدد پلیٹ فارمز انسٹال کریں
sdkmanager "platforms;android-34" "platforms;android-33" "platforms;android-31"
# انسٹال شدہ پلیٹ فارمز کی فہرست
sdkmanager --list_installed | grep platforms
# پرانا پلیٹ فارم ہٹائیں
sdkmanager --uninstall "platforms;android-28"
جدید Android منصوبے Gradle Plugin استعمال کرتے ہیں، جو پہلی تعمیر پر خود بخود SDK Platform انسٹال کر سکتا ہے۔ ایسا کرنے کے لیے build.gradle میں compileSdk متعین کرنا اور مقامی ترتیب میں SDK ڈائرکٹری شامل کرنا ضروری ہے۔ Android Studio منصوبہ کھولتے وقت بھی غائب پلیٹ فارم انسٹال کرنے کی پیشکش کرتا ہے — بس Gradle سنک ونڈو میں "Install SDK Platform" بٹن پر کلک کریں۔
SDK Manager کے ذریعے باقاعدگی سے SDK Platform کو اپ ڈیٹ کرنا اہم ہے — پلیٹ فارم کے ساتھ Build-Tools اور Platform-Tools بھی اپ ڈیٹ ہوتے ہیں، جو تعمیر کی کارکردگی اور ڈیبگنگ استحکام کو متاثر کرتے ہیں۔ Google ہر 2-3 ہفتوں میں SDK اپ ڈیٹس چیک کرنے کی سفارش کرتا ہے، خاص طور پر Google Play پر ایپلیکیشن کا نیا ورژن شائع کرنے سے پہلے۔
ایمولیٹر کو مخصوص API Level کے ساتھ چلانے کے لیے اسی ورژن کی System Image انسٹال کرنی ہوگی۔ SDK Manager مختلف آرکیٹیکچرز (x86_64، arm64-v8a) اور اقسام (Google APIs، Google Play، AOSP) کی امیجز ڈاؤن لوڈ کرنے کی اجازت دیتا ہے۔ امیج ڈاؤن لوڈ کرنے کے بعد، AVD Manager اس کی بنیاد پر ایک مجازی آلہ بناتا ہے۔
# API 35 کے لیے Google APIs کے ساتھ System Image انسٹال کریں
sdkmanager "system-images;android-35;google_apis;x86_64"
# کمانڈ لائن کے ذریعے AVD بنائیں
avdmanager create avd -n pixel8 -k "system-images;android-35;google_apis;x86_64"
# بنائے گئے AVDs کی فہرست
avdmanager list avd
build.gradle میں تین پیرامیٹرز متعین کرتے ہیں کہ ایپلیکیشن SDK Platform کے ساتھ کیسے کام کرتی ہے۔ compileSdk کمپائلیشن کے لیے استعمال ہونے والا API Level ہے۔ یہ پیرامیٹر متعین کرتا ہے کہ کوڈ میں کون سی Android API کلاسز دستیاب ہیں۔ compileSdk تینوں میں سب سے نیا ہونا چاہیے اور رن ٹائم رویے کو متاثر نہیں کرتا — ایپلیکیشن کمپائل ہوتی ہے لیکن صرف آلہ پر موجود APIs استعمال کرتی ہے۔
minSdk کم سے کم API Level ہے جس پر ایپلیکیشن انسٹال کی جا سکتی ہے۔ Google Play minSdk سے کم ورژن والے آلہ پر ایپلیکیشن انسٹال کرنے کی اجازت نہیں دے گا۔ یہ پیرامیٹر مطابقت کی حد متعین کرتا ہے اور سامعین کی کوریج کو متاثر کرتا ہے۔ minSdk جتنا کم ہوگا، اتنی زیادہ ڈیوائسز سپورٹ ہوں گی، لیکن بغیر چیک کے اتنی ہی کم نئی APIs استعمال کی جا سکتی ہیں۔
targetSdk وہ API Level ہے جس کے خلاف ایپلیکیشن کا تجربہ کیا گیا۔ Android سسٹم رویے میں تبدیلیاں لاگو کرنے کے لیے targetSdk استعمال کرتا ہے: اگر ایپلیکیشن نئے API Level پر اپ ڈیٹ نہیں کی گئی، سسٹم پرانے ورژنز کے لیے مطابقت کا موڈ فعال کرتا ہے۔ Google Play کو targetSdk کو ایک مخصوص سطح سے کم نہ ہونے کی ضرورت ہے — 2026 تک یہ API 34 (Android 14) ہے۔
android {
compileSdk 35
defaultConfig {
applicationId "com.example.app"
minSdk 26
targetSdk 35
versionCode 1
versionName "1.0"
}
compileOptions {
sourceCompatibility JavaVersion.VERSION_17
targetCompatibility JavaVersion.VERSION_17
}
}
// Android SDK ورژن SDK Manager کے ذریعے انسٹال ہونا چاہیے
// sdkmanager "platforms;android-35"
انتخاب کی حکمت عملی منصوبے کے اہداف پر منحصر ہے۔ نئی ایپلیکیشن کے لیے: compileSdk — تازہ ترین مستحکم (2026 کے شروع میں 35)، minSdk — API 26 (Android 8.0، 95% آلات کا احاطہ کرتا ہے)، targetSdk — تازہ ترین مستحکم۔ موجودہ ایپلیکیشن کو اپ ڈیٹ کرنے کے لیے: compileSdk فوری بڑھائیں، targetSdk — تمام رویے کی تبدیلیوں کے تجربے کے بعد، minSdk — صرف اس وقت جب پرانے آلات کی سپورٹ چھوڑنا ضروری ہو۔
Google کو ضرورت ہے کہ Android کے نئے ورژن کی ریلیز کے ایک سال کے اندر targetSdk کو اپ ڈیٹ کیا جائے۔ اس ضرورت کو پورا نہ کرنے والی ایپلیکیشنز Google Play پر اپ ڈیٹس شائع نہیں کر سکتیں۔ ڈیڈ لائنز کو ٹریک کرنے کے لیے سرکاری Android OS اپ ڈیٹ کیلنڈر استعمال کریں۔
| پیرامیٹر | مقصد | سفارش |
|---|---|---|
| compileSdk | کمپائلیشن کے لیے API ورژن | تازہ ترین مستحکم |
| minSdk | کم سے کم معاون ورژن | 95% کوریج کے لیے API 26 |
| targetSdk | رویے کی تبدیلیوں کے لیے ورژن | تازہ ترین مستحکم + تجربہ |
مختلف Android ورژنز کے لیے ڈیولپمنٹ کرتے وقت، API کی دستیابی پر غور کرنا ضروری ہے۔ اگر ایپلیکیشن compileSdk 35 استعمال کرتی ہے لیکن API 31 والے آلہ پر چلتی ہے، تو API 34 میں شامل کردہ طریقوں کو کال کرنے سے NoSuchMethodError یا AbstractMethodError ہوگا۔ نئی APIs کو محفوظ طریقے سے کال کرنے کے لیے Build.VERSION.SDK_INT کے ذریعے ورژن چیک استعمال کیے جاتے ہیں۔
class FeatureChecker {
fun registerNotificationChannel(context: Context) {
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O) {
// نوٹیفکیشن چینلز API 26 سے دستیاب ہیں
val channel = NotificationChannel(
"updates",
"اپ ڈیٹس",
NotificationManager.IMPORTANCE_DEFAULT
)
val manager = context.getSystemService(NotificationManager::class.java)
manager.createNotificationChannel(channel)
}
}
}
ان طریقوں کے لیے جو صرف مخصوص ورژنز پر کال کیے جاتے ہیں، @RequiresApi تشریح استعمال کریں۔ یہ lint چیکس کو بتاتا ہے کہ طریقہ محفوظ ہے اور انتباہات کو غیر فعال کرتا ہے۔ SDK_INT چیک کے ساتھ مل کر، تشریح کوڈ کو صاف اور جائزہ لینے والوں کے لیے زیادہ قابل فہم بناتی ہے۔
@RequiresApi(Build.VERSION_CODES.UPSIDE_DOWN_CAKE)
fun scheduleExactAlarm(manager: AlarmManager, time: Long) {
// API 34: SCHEDULE_EXACT_ALARM فلیگ کے ساتھ scheduleExact
if (manager.canScheduleExactAlarms()) {
manager.setExact(AlarmManager.RTC_WAKEUP, time, pendingIntent)
} else {
// SCHEDULE_EXACT_ALARM کی اجازت طلب کریں
val intent = Intent(Settings.ACTION_REQUEST_SCHEDULE_EXACT_ALARM)
context.startActivity(intent)
}
}
fun safeScheduleAlarm(context: Context, triggerTime: Long) {
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.UPSIDE_DOWN_CAKE) {
scheduleExactAlarm(getAlarmManager(context), triggerTime)
} else {
// اجازت چیک کے بغیر پرانا setExact طریقہ
getAlarmManager(context).setExact(AlarmManager.RTC_WAKEUP, triggerTime, pendingIntent)
}
}
بعض اوقات یہ جاننا ضروری ہوتا ہے کہ ڈیولپر کے آلہ یا CI میں SDK Platform کا کون سا ورژن نصب ہے۔ یہ ADB کے ذریعے یا پروگرامائی طور پر ایپلیکیشن کوڈ میں کیا جا سکتا ہے۔ آلہ کا API Level جاننا ورژن کے مخصوص رویے کی جانچ میں مدد کرتا ہے۔
fun logDeviceInfo() {
with (Build.VERSION) {
Log.d("SDK_Demo", "SDK_INT: $SDK_INT")
Log.d("SDK_Demo", "RELEASE: $RELEASE")
Log.d("SDK_Demo", "CODENAME: $CODENAME")
Log.d("SDK_Demo", "PREVIEW_SDK_INT: $PREVIEW_SDK_INT")
}
// آؤٹ پٹ: SDK_INT: 35, RELEASE: 15, CODENAME: REL
}
اکثر پوچھے گئے سوالات
Android Studio ایک IDE ہے، جبکہ SDK Platform کمپائلیشن کے لیے لائبریریوں اور ٹولز کا ایک سیٹ ہے۔ Studio ایپلیکیشنز بنانے کے لیے SDK Platform استعمال کرتا ہے، لیکن پلیٹ فارمز SDK Manager کے ذریعے علیحدہ ڈاؤن لوڈ کیے جاتے ہیں اور Studio ورژن سے آزادانہ طور پر اپ ڈیٹ کیے جا سکتے ہیں۔
عام طور پر تین ورژن کافی ہیں: تازہ ترین (compileSdk)، کم سے کم (minSdk) اور جانچ کے لیے ایک درمیانی۔ SDK Manager ضرورت کے مطابق آسانی سے پلیٹ فارمز شامل کرنے اور ہٹانے کی اجازت دیتا ہے۔ اوسطاً، ڈیولپرز اپنی ورک مشین پر 3-5 پلیٹ فارمز رکھتے ہیں۔
نہیں۔ ہر SDK Platform میں صرف اپنے ورژن کی API ہوتی ہے۔ API 35 کے طریقوں کو کال کرنے کے لیے android-35 پلیٹ فارم درکار ہے۔ پرانے نصب شدہ پلیٹ فارم کے ساتھ نیا compileSdk متعین کرنے سے کمپائلیشن کی خرابی پیدا ہوگی۔
Google ہر ورژن کے لیے SDK Platform اپ ڈیٹس جاری کرتا ہے: بگ فکسز، نئی APIs، کارکردگی میں بہتری۔ SDK Manager دستیاب اپ ڈیٹس کے بارے میں مطلع کرتا ہے۔ مستحکم تعمیر کے لیے پلیٹ فارم کے تازہ ترین ریویژن کو انسٹال کرنے کی سفارش کی جاتی ہے۔
پہلے سے طے شدہ طور پر، ہر SDK Platform Android/Sdk/platforms/android-{API} ڈائرکٹری میں 200-800 MB جگہ لیتی ہے۔ فولڈر کے اندر android.jar، وسائل کے ساتھ data فولڈر اور ایمولیٹر اور بلڈ سسٹم کے لیے ترتیب کی فائلیں ہوتی ہیں۔
خلاصہ
ہم ایک موبائل ایپلیکیشن ٹرنکی تیار کریں گے
IT Sectr 2017 سے اسٹارٹ اپس اور کاروبار کے لیے iOS اور Android ایپلیکیشنز بناتا ہے۔ ہم آپ کو مشورہ دیں گے اور بہترین حل تجویز کریں گے۔
مزید پڑھیں