SDK Platform Android — je sada knihoven, systémových obrazů a nástrojů pro konkrétní verzi operačního systému. Každá platforma je vázána na svůj API Level a obsahuje android.jar s třídami Android API, runtime komponenty a emulátor. Podle Google Developer Documentation, 2026 používají vývojáři SDK Platform pro kompilaci kódu proti cílové verzi OS. Bez nainstalované platformy nelze sestavit APK nebo spustit aplikaci na emulátoru. SDK Manager spravuje stahování, aktualizaci a odstraňování těchto komponent.
Hlavní body
SDK Platform — je základní komponenta Android SDK, představující kompletní sadu knihoven a nástrojů pro vývoj aplikací pod určitou verzí Androidu. Každá platforma je identifikována API Level — celým číslem, které roste s vydáváním nových verzí OS. Například Android 13 odpovídá API Level 33, Android 14 — API Level 34, Android 15 — API Level 35.
Na rozdíl od Android Studio (IDE) SDK Platform neobsahuje editor kódu ani debugger. Je to systémová vrstva, která se připojuje k překladači a nástroji pro sestavení. Když vývojář napíše import android.app.Activity, překladač vezme tuto třídu z android.jar konkrétní SDK Platform. Bez nainstalované platformy s požadovaným API Level se kód nezkompiluje.
Google vydává novou SDK Platform pro každou stabilní verzi Androidu. Historie zahrnuje více než 35 API Level — od Android 1.0 (API 1) po Android 15 (API 35). Každá platforma je zpětně kompatibilní: kód napsaný pro API Level 21 bude fungovat na API Level 35, ale ne naopak.
Android se rychle vyvíjí: každá verze přidává nová API, mění chování stávajících a zavádí omezení. Například Android 10 (API 29) zavedl Scoped Storage, Android 12 (API 31) — SplashScreen API, Android 14 (API 34) — povinné flagy BroadcastReceiver. Vývojář musí sestavit aplikaci proti aktuální platformě, aby tyto možnosti využil.
Zároveň může aplikace běžet na starých verzích OS. K tomu se v Gradle uvádí minSdk — minimální API Level, na kterém aplikace běží. Kód používá kontroly verzí a podmíněná volání API. Tento přístup zajišťuje kompatibilitu bez ztráty nových funkcí.
| Verze Android | API Level | Kódový název | Rok vydání |
|---|---|---|---|
| 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 — není jeden soubor, ale sada komponent, které společně zajišťují kompilaci, sestavení a testování aplikace. Hlavním prvkem je android.jar — archiv s třídami Android API obsaženými v této verzi. Tento soubor je připojen k překladači Kotlin nebo Java a určuje, které třídy, metody a anotace jsou pro vývojáře dostupné.
Každá SDK Platform obsahuje System Image — obraz operačního systému pro emulátor Android Virtual Device. Bez odpovídajícího obrazu emulátor nebude moci spustit virtuální zařízení s požadovaným API Level. System Images jsou různých typů: Google APIs (se službami Google), Google Play (s Play Store) a AOSP (čistý Android bez služeb Google).
SDK Platform obsahuje verzi Build-Tools a Platform-Tools optimalizované pro daný API Level. Build-Tools zahrnují aapt2 (Android Asset Packaging Tool), dx/d8 (překladač Dalvik/ART) a ApkSigner. Platform-Tools poskytují ADB (Android Debug Bridge), fastboot a SQLite. Tyto nástroje se aktualizují nezávisle na SDK Platform prostřednictvím SDK Manager.
Každá platforma obsahuje standardní Android zdroje — systémová témata, styly, animace, barvy a velikosti. Tyto zdroje se používají při kompilaci: pokud vývojář odkazuje na @android:style/Theme.Material.Light, nástroj pro sestavení vezme definici ze zdrojů SDK Platform. To zaručuje jednotný vzhled systémových komponent na všech zařízeních.
| Komponenta | Popis | Velikost (přibližně) |
|---|---|---|
| android.jar | Knihovny Android API pro kompilaci | 50–120 MB |
| System Image | Obraz OS pro emulátor | 600–1500 MB |
| Build-Tools | Nástroje pro sestavení APK a AAB | 200–400 MB |
| Platform Resources | Systémové zdroje (témata, styly) | 30–80 MB |
| Skins | Profily zařízení pro emulátor | 10–50 MB |
API Level — je celočíselný identifikátor verze Android SDK. Každému vydání Androidu odpovídá jeden API Level, který monotónně roste. Vývojář uvádí API Level ve třech klíčových parametrech build.gradle: compileSdk, minSdk a targetSdk. Volba těchto parametrů určuje, která API jsou dostupná a jak systém aplikaci zpracovává.
Google doporučuje udržovat minSdk na úrovni ne nižší než aktuální práh distribuce — podle Android Studio Distribution Dashboard (2026) přibližně 95 % zařízení běží na Android 8.0 (API 26) a vyšším. compileSdk by měl být poslední stabilní — to poskytuje přístup k novým API a umožňuje lint kontrolám odhalovat zastaralé metody.
S každým novým API Level Google zavádí významné změny. Android 6.0 (API 23) přidal runtime oprávnění — aplikace žádá o oprávnění za běhu, nikoli při instalaci. Android 8.0 (API 26) zavedl automatické vyplňování formulářů a kanály oznámení. Android 12 (API 31) radikálně změnil přístup k intentům — objevil se SplashScreen API a export komponent prostřednictvím atributu exported. Android 14 (API 34) učinil povinným uvádění flagů pro BroadcastReceiver a zavedl přísná omezení pro foreground services.
Porozumění historii API Level pomáhá vývojáři zvolit správnou strategii kompatibility. Pokud aplikace používá compileSdk 35, ale minSdk 26, kód může volat metody API 35 pouze po kontrole verze prostřednictvím Build.VERSION.SDK_INT. Tento přístup se nazývá version-gated development a je průmyslovým standardem.
| Android | API | Rok | Klíčová inovace |
|---|---|---|---|
| 6.0 Marshmallow | 23 | 2015 | Runtime oprávnění |
| 8.0 Oreo | 26 | 2017 | Kanály oznámení, Autofill |
| 10 | 29 | 2019 | Scoped Storage, Dark Theme |
| 12 | 31 | 2021 | SplashScreen, atribut exported |
| 14 | 34 | 2023 | Flagy Broadcast, Foreground Services |
SDK Manager — je nástroj pro správu komponent Android SDK: instalaci nových SDK Platform, aktualizaci stávajících a odstraňování zastaralých. SDK Manager je k dispozici jako grafické rozhraní v Android Studio i jako příkazový řádek prostřednictvím sdkmanager. Prostřednictvím příkazového řádku je SDK Manager vhodný pro použití v CI/CD pipeline, kde není grafické rozhraní.
SDK Manager instaluje platformy do adresáře Android SDK, který se ve výchozím nastavení nachází v $HOME/Android/Sdk na Linuxu a macOS nebo %LOCALAPPDATA%\Android\Sdk na Windows. Uvnitř adresáře platforms jsou složky ve tvaru android-{API Level}, z nichž každá obsahuje kompletní SDK Platform.
Příkaz sdkmanager přijímá identifikátor balíčku ve formátu "platforms;android-{API}". Například pro instalaci SDK Platform 35 vypadá příkaz takto:
# Nainstalovat SDK Platform pro API Level 35
sdkmanager "platforms;android-35"
# Nainstalovat několik platforem jedním příkazem
sdkmanager "platforms;android-34" "platforms;android-33" "platforms;android-31"
# Seznam nainstalovaných platforem
sdkmanager --list_installed | grep platforms
# Odstranit zastaralou platformu
sdkmanager --uninstall "platforms;android-28"
Moderní Android projekty používají Gradle Plugin, který může automaticky nainstalovat SDK Platform při prvním sestavení. K tomu je třeba uvést compileSdk v build.gradle a přidat adresář SDK do lokální konfigurace. Android Studio také nabízí instalaci chybějící platformy při otevření projektu — stačí kliknout na tlačítko "Install SDK Platform" v okně synchronizace Gradle.
Je důležité pravidelně aktualizovat SDK Platform přes SDK Manager — spolu s platformou se aktualizují Build-Tools a Platform-Tools, což ovlivňuje výkon sestavení a stabilitu ladění. Google doporučuje kontrolovat aktualizace SDK každé 2-3 týdny, zejména před publikováním nové verze aplikace v Google Play.
Pro spuštění emulátoru s konkrétním API Level je třeba nainstalovat System Image stejné verze. SDK Manager umožňuje stahovat obrazy různých architektur (x86_64, arm64-v8a) a typů (Google APIs, Google Play, AOSP). Po stažení obrazu AVD Manager vytvoří virtuální zařízení na jeho základě.
# Nainstalovat System Image s Google APIs pro API 35
sdkmanager "system-images;android-35;google_apis;x86_64"
# Vytvořit AVD přes příkazový řádek
avdmanager create avd -n pixel8 -k "system-images;android-35;google_apis;x86_64"
# Seznam vytvořených AVD
avdmanager list avd
Tři parametry v build.gradle určují práci aplikace s SDK Platform. compileSdk — API Level používaný pro kompilaci. Tento parametr určuje, které třídy Android API jsou v kódu dostupné. compileSdk by měl být ze všech tří nejnovější a neovlivňuje chování za běhu — aplikace se zkompiluje, ale používá pouze API, která jsou na zařízení.
minSdk — minimální API Level, na kterém lze aplikaci nainstalovat. Google Play nedovolí instalaci aplikace na zařízení s verzí nižší než minSdk. Tento parametr určuje práh kompatibility a ovlivňuje pokrytí publika. Čím nižší je minSdk, tím více zařízení je podporováno, ale tím méně nových API lze použít bez kontrol.
targetSdk — API Level, na kterém byla aplikace testována. Systém Android používá targetSdk k aplikování změn chování: pokud aplikace není aktualizována na nový API Level, systém zapne režim kompatibility pro starší verze. Google Play vyžaduje targetSdk ne nižší než určitou úroveň — pro rok 2026 je to 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
}
}
// Verze Android SDK musí být nainstalována přes SDK Manager
// sdkmanager "platforms;android-35"
Strategie výběru závisí na cílech projektu. Pro novou aplikaci: compileSdk — poslední stabilní (35 na začátku 2026), minSdk — API 26 (Android 8.0, pokrývá 95 % zařízení), targetSdk — poslední stabilní. Pro aktualizaci stávající aplikace: zvyšte compileSdk okamžitě, targetSdk — po otestování všech změn chování, minSdk — pouze pokud je nutné opustit zastaralá zařízení.
Google vyžaduje, aby byl targetSdk aktualizován do jednoho roku po vydání nové verze Androidu. Aplikace, které tento požadavek nesplňují, nemohou publikovat aktualizace v Google Play. Pro sledování termínů použijte oficiální kalendář aktualizací Android OS.
| Parametr | Účel | Doporučení |
|---|---|---|
| compileSdk | Verze API pro kompilaci | Poslední stabilní |
| minSdk | Minimální podporovaná verze | API 26 pro pokrytí 95 % |
| targetSdk | Verze pro změny chování | Poslední stabilní + testování |
Při vývoji pro různé verze Androidu je třeba brát v úvahu dostupnost API. Pokud aplikace používá compileSdk 35, ale běží na zařízení s API 31, volání metod přidaných v API 34 povede k NoSuchMethodError nebo AbstractMethodError. Pro bezpečné volání nových API se používají kontroly verze prostřednictvím Build.VERSION.SDK_INT.
class FeatureChecker {
fun registerNotificationChannel(context: Context) {
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O) {
// Notification channels jsou dostupné od API 26
val channel = NotificationChannel(
"updates",
"Aktualizace",
NotificationManager.IMPORTANCE_DEFAULT
)
val manager = context.getSystemService(NotificationManager::class.java)
manager.createNotificationChannel(channel)
}
}
}
Pro metody, které jsou volány pouze na určitých verzích, použijte anotaci @RequiresApi. Ta informuje lint kontroly, že metoda je bezpečná, a vypíná varování. V kombinaci s kontrolou SDK_INT anotace činí kód čistším a srozumitelnějším pro recenzenty.
@RequiresApi(Build.VERSION_CODES.UPSIDE_DOWN_CAKE)
fun scheduleExactAlarm(manager: AlarmManager, time: Long) {
// API 34: scheduleExact s flagem SCHEDULE_EXACT_ALARM
if (manager.canScheduleExactAlarms()) {
manager.setExact(AlarmManager.RTC_WAKEUP, time, pendingIntent)
} else {
// Žádáme o oprávnění 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 {
// Starý setExact bez kontroly oprávnění
getAlarmManager(context).setExact(AlarmManager.RTC_WAKEUP, triggerTime, pendingIntent)
}
}
Někdy je třeba zjistit, která verze SDK Platform je nainstalována na zařízení vývojáře nebo v CI. To lze provést přes ADB nebo programově v kódu aplikace. Znalost API Level zařízení pomáhá při testování chování specifického pro verzi.
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")
}
// Výstup: SDK_INT: 35, RELEASE: 15, CODENAME: REL
}
Často kladené otázky
Android Studio je IDE, zatímco SDK Platform je sada knihoven a nástrojů pro kompilaci. Studio používá SDK Platform pro sestavování aplikací, ale platformy se stahují samostatně přes SDK Manager a lze je aktualizovat nezávisle na verzi Studio.
Obvykle stačí tři verze: nejnovější (compileSdk), minimální (minSdk) a jedna mezilehlá pro testování. SDK Manager umožňuje snadno přidávat a odebírat platformy podle potřeby. Vývojáři v průměru uchovávají 3-5 platforem na svém pracovním počítači.
Ne. Každá SDK Platform obsahuje pouze API své verze. Pro volání metod z API 35 je potřeba platforma android-35. Uvedení nového compileSdk s nainstalovanou starou platformou způsobí chybu kompilace.
Google vydává aktualizace SDK Platform pro každou verzi: opravy chyb, nová API, vylepšení výkonu. SDK Manager upozorňuje na dostupné aktualizace. Doporučuje se instalovat nejnovější revizi platformy pro stabilní sestavení.
Ve výchozím nastavení každá SDK Platform zabírá 200-800 MB v adresáři Android/Sdk/platforms/android-{API}. Uvnitř složky se nachází android.jar, složka data se zdroji a konfigurační soubory pro emulátor a sestavení.
Shrnutí
Vyvineme mobilní aplikaci na klíč
IT Sectr vytváří aplikace pro iOS a Android pro startupy a podniky od roku 2017. Poradíme vám a navrhneme nejlepší řešení.
Přečtěte si také