SDK Platform Android — könyvtárak, rendszerképek és eszközök gyűjteménye az operációs rendszer egy adott verziójához. Minden platform a saját API Leveljéhez van kötve, és tartalmazza az android.jar-t az Android API osztályaival, futásidejű összetevőket és egy emulátort. A Google Developer Documentation, 2026 szerint a fejlesztők az SDK Platformot használják a kód cél-OS verzióra történő fordításához. Telepített platform nélkül lehetetlen APK-t építeni vagy az alkalmazást az emulátoron futtatni. SDK Manager kezeli ezen összetevők letöltését, frissítését és eltávolítását.
Főbb pontok
SDK Platform — az Android SDK alapvető összetevője, amely a könyvtárak és eszközök teljes készletét képviseli az alkalmazások fejlesztéséhez egy adott Android-verzió alatt. Minden platformot API Level azonosít — egy egész szám, amely az operációs rendszer új verzióinak megjelenésével nő. Például az Android 13 az API Level 33-nak, az Android 14 az API Level 34-nek, az Android 15 az API Level 35-nek felel meg.
Az Android Studio-val (IDE) ellentétben az SDK Platform nem tartalmaz kódszerkesztőt vagy debuggert. Ez egy rendszerréteg, amely a fordítóhoz és a build-eszközhöz csatlakozik. Amikor a fejlesztő import android.app.Activityt ír, a fordító ezt az osztályt az adott SDK Platform android.jar-jából veszi. A szükséges API Levelű telepített platform nélkül a kód nem fordul le.
A Google minden stabil Android-verzióhoz kiad egy új SDK Platformot. A történet több mint 35 API Levelt ölel fel — az Android 1.0-tól (API 1) az Android 15-ig (API 35). Minden platform visszafelé kompatibilis: az API Level 21-re írt kód működni fog API Level 35-ön, de fordítva nem.
Az Android gyorsan fejlődik: minden verzió új API-kat ad hozzá, megváltoztatja a meglévők viselkedését és korlátozásokat vezet be. Például Android 10 (API 29) bevezette a Scoped Storage-t, az Android 12 (API 31) — a SplashScreen API-t, az Android 14 (API 34) — a kötelező BroadcastReceiver-flagokat. A fejlesztőnek az aktuális platformra kell építenie az alkalmazást, hogy ezeket a képességeket használhassa.
Ugyanakkor az alkalmazás futhat régi operációsrendszer-verziókon. Ehhez a Gradle-ben meg kell adni a minSdk-t — azt a minimális API Levelt, amelyen az alkalmazás elindul. A kód verzióellenőrzéseket és feltételes API-hívásokat használ. Ez a megközelítés biztosítja a kompatibilitást az új funkciók elvesztése nélkül.
| Android-verzió | API Level | Kódnév | Kiadás éve |
|---|---|---|---|
| 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 |
Az SDK Platform — nem egyetlen fájl, hanem összetevők együttese, amelyek együttesen biztosítják az alkalmazás fordítását, építését és tesztelését. A fő elem az android.jar — egy archívum az ebben a verzióban található Android API osztályokkal. Ez a fájl csatlakozik a Kotlin vagy Java fordítóhoz, és meghatározza, hogy milyen osztályok, metódusok és annotációk állnak rendelkezésre a fejlesztő számára.
Minden SDK Platform tartalmaz egy System Image-t — az operációs rendszer képét az Android Virtual Device emulátor számára. A megfelelő kép nélkül az emulátor nem tudja elindítani a virtuális eszközt a szükséges API Levellel. A System Images különböző típusúak: Google APIs (Google-szolgáltatásokkal), Google Play (Play Store-ral) és AOSP (tiszta Android Google-szolgáltatások nélkül).
Az SDK Platform tartalmazza az adott API Levelre optimalizált Build-Tools és Platform-Tools verziót. A Build-Tools magában foglalja az aapt2 (Android Asset Packaging Tool), dx/d8 (Dalvik/ART fordító) és ApkSigner eszközöket. A Platform-Tools ADB-t (Android Debug Bridge), fastboot-ot és SQLite-ot biztosít. Ezek az eszközök az SDK Platformtól függetlenül frissülnek az SDK Manageren keresztül.
Minden platform tartalmazza a szabványos Android erőforrásokat — rendszertémákat, stílusokat, animációkat, színeket és méreteket. Ezek az erőforrások a fordítás során használatosak: ha a fejlesztő a @android:style/Theme.Material.Light-ra hivatkozik, a builder a definíciót az SDK Platform erőforrásaiból veszi. Ez garantálja a rendszerösszetevők egységes megjelenését minden eszközön.
| Összetevő | Leírás | Méret (körülbelül) |
|---|---|---|
| android.jar | Android API könyvtárak fordításhoz | 50–120 MB |
| System Image | Operációs rendszer képe az emulátorhoz | 600–1500 MB |
| Build-Tools | APK és AAB build eszközök | 200–400 MB |
| Platform Resources | Rendszer erőforrások (témák, stílusok) | 30–80 MB |
| Skins | Eszközprofilok az emulátorhoz | 10–50 MB |
API Level — az Android SDK verziójának egész számú azonosítója. Minden Android-kiadáshoz egy API Level tartozik, amely monoton növekszik. A fejlesztő az API Levelet három kulcsfontosságú build.gradle paraméterben adja meg: compileSdk, minSdk és targetSdk. E paraméterek megválasztása határozza meg, hogy mely API-k érhetők el, és hogyan kezeli a rendszer az alkalmazást.
A Google azt javasolja, hogy a minSdk-t ne tartsa alacsonyabban a jelenlegi terjesztési küszöbnél — a Android Studio Distribution Dashboard (2026) szerint az eszközök körülbelül 95%-a Android 8.0 (API 26) vagy újabb rendszeren fut. A compileSdk-nak a legújabb stabilnak kell lennie — ez hozzáférést biztosít az új API-khoz, és lehetővé teszi a lint-ellenőrzések számára az elavult metódusok észlelését.
Minden új API Level-lel a Google jelentős változtatásokat vezet be. Az Android 6.0 (API 23) hozzáadta a futásidejű engedélyeket — az alkalmazás futás közben kér engedélyeket, nem telepítéskor. Az Android 8.0 (API 26) bevezette az űrlapok automatikus kitöltését és az értesítési csatornákat. Android 12 (API 31) gyökeresen megváltoztatta az intent-ek megközelítését — megjelent a SplashScreen API és a komponensek exportálása az exported attribútumon keresztül. Az Android 14 (API 34) kötelezővé tette a BroadcastReceiver flag-ek megadását és szigorú korlátozásokat vezetett be a foreground services-re.
Az API Level történetének megértése segít a fejlesztőnek kiválasztani a megfelelő kompatibilitási stratégiát. Ha az alkalmazás compileSdk 35-öt használ, de minSdk 26, a kód csak a Build.VERSION.SDK_INT-on keresztüli verzióellenőrzés után hívhatja meg az API 35 metódusait. Ezt a megközelítést version-gated development-nek hívják, és ez az ipari szabvány.
| Android | API | Év | Kulcsfontosságú újítás |
|---|---|---|---|
| 6.0 Marshmallow | 23 | 2015 | Futásidejű engedélyek |
| 8.0 Oreo | 26 | 2017 | Értesítési csatornák, Autofill |
| 10 | 29 | 2019 | Scoped Storage, Dark Theme |
| 12 | 31 | 2021 | SplashScreen, exported attribútum |
| 14 | 34 | 2023 | Broadcast flag-ek, Foreground Services |
SDK Manager — eszköz az Android SDK összetevőinek kezelésére: új SDK Platformok telepítése, meglévők frissítése és elavultak eltávolítása. Az SDK Manager elérhető grafikus felületként az Android Studio-ban, valamint parancssorként az sdkmanager-en keresztül. Parancssoron keresztül az SDK Manager kényelmesen használható CI/CD pipeline-okban, ahol nincs grafikus felület.
Az SDK Manager a platformokat az Android SDK könyvtárba telepíti, amely alapértelmezés szerint Linuxon és macOS-en $HOME/Android/Sdk, Windows-on pedig %LOCALAPPDATA%\Android\Sdk helyen található. A platforms könyvtáron belül android-{API Level} nevű mappák találhatók, amelyek mindegyike teljes SDK Platformot tartalmaz.
Az sdkmanager parancs a csomag azonosítóját "platforms;android-{API}" formátumban fogadja. Például az SDK Platform 35 telepítéséhez a parancs így néz ki:
# SDK Platform telepítése API Level 35-höz
sdkmanager "platforms;android-35"
# Több platform telepítése egy paranccsal
sdkmanager "platforms;android-34" "platforms;android-33" "platforms;android-31"
# Telepített platformok listája
sdkmanager --list_installed | grep platforms
# Elavult platform eltávolítása
sdkmanager --uninstall "platforms;android-28"
A modern Android projektek Gradle Plugin-t használnak, amely automatikusan telepítheti az SDK Platformot az első build során. Ehhez meg kell adni a compileSdk-t a build.gradle-ben, és hozzá kell adni az SDK könyvtárat a helyi konfigurációhoz. Az Android Studio is felajánlja a hiányzó platform telepítését a projekt megnyitásakor — elég megnyomni az "Install SDK Platform" gombot a Gradle szinkronizációs ablakban.
Fontos az SDK Platform rendszeres frissítése az SDK Manageren keresztül — a platformmal együtt a Build-Tools és a Platform-Tools is frissül, ami befolyásolja a build teljesítményét és a debug stabilitását. A Google azt ajánlja, hogy 2-3 hetente ellenőrizze az SDK frissítéseit, különösen az alkalmazás új verziójának Google Play-ben történő közzététele előtt.
Az emulátor adott API Level-lel történő indításához telepíteni kell ugyanazon verzió System Image-jét. Az SDK Manager lehetővé teszi különböző architektúrájú (x86_64, arm64-v8a) és típusú (Google APIs, Google Play, AOSP) képek letöltését. A kép letöltése után az AVD Manager virtuális eszközt hoz létre annak alapján.
# System Image telepítése Google API-kkal API 35-höz
sdkmanager "system-images;android-35;google_apis;x86_64"
# AVD létrehozása parancssoron keresztül
avdmanager create avd -n pixel8 -k "system-images;android-35;google_apis;x86_64"
# Létrehozott AVD-k listája
avdmanager list avd
Három paraméter a build.gradle-ben határozza meg az alkalmazás SDK Platformmal való munkáját. compileSdk — a fordításhoz használt API Level. Ez a paraméter határozza meg, hogy mely Android API osztályok érhetők el a kódban. A compileSdk-nak a legújabbnak kell lennie mindhárom közül, és nem befolyásolja a futásidejű viselkedést — az alkalmazás lefordul, de csak az eszközön lévő API-kat használja.
minSdk — a minimális API Level, amelyen az alkalmazás telepíthető. A Google Play nem engedi az alkalmazás telepítését a minSdk-nél alacsonyabb verziójú eszközre. Ez a paraméter határozza meg a kompatibilitási küszöböt és befolyásolja a közönség lefedettségét. Minél alacsonyabb a minSdk, annál több eszköz támogatott, de annál kevesebb új API használható ellenőrzés nélkül.
targetSdk — API Level, amelyen az alkalmazást tesztelték. Az Android rendszer a targetSdk-t használja a viselkedésbeli változások alkalmazásához: ha az alkalmazást nem frissítették az új API Levelre, a rendszer kompatibilitási módot kapcsol be a régebbi verziókhoz. A Google Play megköveteli, hogy a targetSdk ne legyen alacsonyabb egy bizonyos szintnél — 2026-ra ez 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
}
}
// Az Android SDK verzióját az SDK Manageren keresztül kell telepíteni
// sdkmanager "platforms;android-35"
A választási stratégia a projekt céljaitól függ. Új alkalmazáshoz: compileSdk — legújabb stabil (35 2026 elején), minSdk — API 26 (Android 8.0, az eszközök 95%-át lefedi), targetSdk — legújabb stabil. Meglévő alkalmazás frissítéséhez: emelje meg a compileSdk-t azonnal, a targetSdk-t — az összes viselkedésbeli változás tesztelése után, a minSdk-t — csak akkor, ha le kell mondania az elavult eszközökről.
A Google megköveteli, hogy a targetSdk-t egy éven belül frissítsék az új Android-verzió megjelenése után. Azok az alkalmazások, amelyek nem felelnek meg ennek a követelménynek, nem tehetnek közzé frissítéseket a Google Play-ben. A határidők nyomon követéséhez használja a hivatalos Android OS frissítési naptárat.
| Paraméter | Cél | Javaslat |
|---|---|---|
| compileSdk | API verzió a fordításhoz | Legújabb stabil |
| minSdk | Minimális támogatott verzió | API 26 a 95%-os lefedettséghez |
| targetSdk | Verzió a viselkedésbeli változásokhoz | Legújabb stabil + tesztelés |
Amikor különböző Android-verziókra fejleszt, figyelembe kell venni az API-k elérhetőségét. Ha az alkalmazás compileSdk 35-öt használ, de API 31-es eszközön fut, az API 34-ben hozzáadott metódusok hívása NoSuchMethodError-t vagy AbstractMethodError-t eredményez. Az új API-k biztonságos hívásához verzióellenőrzéseket használnak a Build.VERSION.SDK_INT-on keresztül.
class FeatureChecker {
fun registerNotificationChannel(context: Context) {
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O) {
// A Notification channels API 26-tól érhető el
val channel = NotificationChannel(
"updates",
"Frissítések",
NotificationManager.IMPORTANCE_DEFAULT
)
val manager = context.getSystemService(NotificationManager::class.java)
manager.createNotificationChannel(channel)
}
}
}
Azokhoz a metódusokhoz, amelyeket csak bizonyos verziókon hívnak meg, használja a @RequiresApi annotációt. Ez jelzi a lint-ellenőrzéseknek, hogy a metódus biztonságos, és kikapcsolja a figyelmeztetéseket. Az SDK_INT ellenőrzéssel kombinálva az annotáció tisztábbá és az ellenőrök számára érthetőbbé teszi a kódot.
@RequiresApi(Build.VERSION_CODES.UPSIDE_DOWN_CAKE)
fun scheduleExactAlarm(manager: AlarmManager, time: Long) {
// API 34: scheduleExact a SCHEDULE_EXACT_ALARM flaggel
if (manager.canScheduleExactAlarms()) {
manager.setExact(AlarmManager.RTC_WAKEUP, time, pendingIntent)
} else {
// A SCHEDULE_EXACT_ALARM engedély kérése
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 {
// Régi setExact metódus engedélyellenőrzés nélkül
getAlarmManager(context).setExact(AlarmManager.RTC_WAKEUP, triggerTime, pendingIntent)
}
}
Néha meg kell tudni, hogy az SDK Platform melyik verziója van telepítve a fejlesztő eszközén vagy a CI-ban. Ezt megteheti ADB-n keresztül vagy programozottan az alkalmazás kódjában. Az eszköz API Leveljének ismerete segít a verzióspecifikus viselkedés tesztelésében.
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")
}
// Kimenet: SDK_INT: 35, RELEASE: 15, CODENAME: REL
}
Gyakran Ismételt Kérdések
Az Android Studio egy IDE, míg az SDK Platform könyvtárak és eszközök gyűjteménye a fordításhoz. A Studio az SDK Platformot használja az alkalmazások építéséhez, de a platformok külön töltődnek le az SDK Manageren keresztül, és a Studio verziójától függetlenül frissíthetők.
Általában három verzió elegendő: a legújabb (compileSdk), a minimális (minSdk) és egy köztes a teszteléshez. Az SDK Manager lehetővé teszi a platformok egyszerű hozzáadását és eltávolítását szükség szerint. A fejlesztők átlagosan 3–5 platformot tárolnak a munkaállomásukon.
Nem. Minden SDK Platform csak a saját verziójának API-it tartalmazza. Az API 35 metódusainak hívásához az android-35 platform szükséges. Új compileSdk megadása telepített régi platformmal fordítási hibát eredményez.
A Google minden verzióhoz kiad SDK Platform frissítéseket: hibajavítások, új API-k, teljesítménybeli fejlesztések. Az SDK Manager értesít az elérhető frissítésekről. Javasolt a platform legújabb revíziójának telepítése a stabil build érdekében.
Alapértelmezés szerint minden SDK Platform 200–800 MB helyet foglal a Android/Sdk/platforms/android-{API} könyvtárban. A mappában található az android.jar, a data mappa erőforrásokkal, valamint konfigurációs fájlok az emulátorhoz és a buildhez.
Összefoglalás
Kulcsrakész mobilalkalmazást fejlesztünk
Az IT Sectr 2017 óta készít iOS és Android alkalmazásokat induló vállalkozásoknak és vállalkozásoknak. Tanácsot adunk, és a legjobb megoldást javasoljuk.
Olvassa el is