SDK Platform Android — is een verzameling bibliotheken, systeemimages en tools voor een specifieke versie van het besturingssysteem. Elke platform is gekoppeld aan zijn eigen API Level en bevat android.jar met Android API-klassen, runtime-componenten en een emulator. Volgens Google Developer Documentation, 2026 gebruiken ontwikkelaars SDK Platform om code te compileren tegen de doelversie van het besturingssysteem. Zonder geïnstalleerd platform is het onmogelijk om een APK te bouwen of de app op de emulator te starten. SDK Manager beheert het downloaden, updaten en verwijderen van deze componenten.
Belangrijkste punten
SDK Platform — is een fundamenteel component van Android SDK, een complete set bibliotheken en tools voor het ontwikkelen van apps onder een specifieke Android-versie. Elk platform wordt geïdentificeerd door API Level — een geheel getal dat toeneemt met nieuwe OS-releases. Bijvoorbeeld Android 13 komt overeen met API Level 33, Android 14 — API Level 34, Android 15 — API Level 35.
In tegenstelling tot Android Studio (IDE) bevat SDK Platform geen code-editor of debugger. Het is een systeemlaag die wordt aangesloten op de compiler en builder. Wanneer een ontwikkelaar import android.app.Activity schrijft, haalt de compiler deze klasse uit android.jar van de specifieke SDK Platform. Zonder geïnstalleerd platform met het vereiste API Level wordt de code niet gecompileerd.
Google brengt een nieuwe SDK Platform uit voor elke stabiele Android-versie. De geschiedenis omvat meer dan 35 API Levels — van Android 1.0 (API 1) tot Android 15 (API 35). Elk platform is achterwaarts compatibel: code geschreven voor API Level 21 werkt op API Level 35, maar niet andersom.
Android evolueert snel: elke versie voegt nieuwe API's toe, wijzigt het gedrag van bestaande en introduceert beperkingen. Bijvoorbeeld Android 10 (API 29) introduceerde Scoped Storage, Android 12 (API 31) — SplashScreen API, Android 14 (API 34) — verplichte BroadcastReceiver-vlaggen. De ontwikkelaar moet de app bouwen tegen het huidige platform om deze mogelijkheden te gebruiken.
Tegelijkertijd kan de app werken op oude OS-versies. Daarvoor wordt in Gradle minSdk opgegeven — het minimale API Level waarop de app werkt. De code gebruikt versiecontroles en voorwaardelijke API-aanroepen. Deze aanpak zorgt voor compatibiliteit zonder verlies van nieuwe functies.
| Android-versie | API Level | Codenaam | Releasejaar |
|---|---|---|---|
| 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 — is niet één bestand, maar een set componenten die samen compilatie, build en testing van de app mogelijk maken. Het belangrijkste element is android.jar — een archief met Android API-klassen in deze versie. Dit bestand wordt aangesloten op de Kotlin of Java compiler en bepaalt welke klassen, methoden en annotaties beschikbaar zijn voor de ontwikkelaar.
Elke SDK Platform bevat een System Image — de OS-image voor de Android Virtual Device emulator. Zonder de juiste image kan de emulator geen virtueel apparaat met het vereiste API Level starten. System Images zijn er in verschillende types: Google APIs (met Google-services), Google Play (met Play Store) en AOSP (schone Android zonder Google-services).
SDK Platform bevat een versie van Build-Tools en Platform-Tools geoptimaliseerd voor dit API Level. Build-Tools omvatten aapt2 (Android Asset Packaging Tool), dx/d8 (Dalvik/ART-compiler) en ApkSigner. Platform-Tools bieden ADB (Android Debug Bridge), fastboot en SQLite. Deze tools worden onafhankelijk van SDK Platform bijgewerkt via SDK Manager.
Elk platform bevat standaard Android-bronnen — systeemthema's, stijlen, animaties, kleuren en afmetingen. Deze bronnen worden gebruikt tijdens compilatie: als een ontwikkelaar naar @android:style/Theme.Material.Light verwijst, haalt de builder de definitie uit de SDK Platform-bronnen. Dit garandeert een uniform uiterlijk van systeemcomponenten op alle apparaten.
| Component | Beschrijving | Grootte (ongeveer) |
|---|---|---|
| android.jar | Android API-bibliotheken voor compilatie | 50–120 MB |
| System Image | OS-image voor emulator | 600–1500 MB |
| Build-Tools | APK- en AAB-buildtools | 200–400 MB |
| Platform Resources | Systeembronnen (thema's, stijlen) | 30–80 MB |
| Skins | Apparaatprofielen voor emulator | 10–50 MB |
API Level — is een geheel-getal identificatie van de Android SDK-versie. Elke Android-release heeft één API Level dat monotoon toeneemt. De ontwikkelaar specificeert API Level in drie belangrijke parameters van build.gradle: compileSdk, minSdk en targetSdk. De keuze van deze parameters bepaalt welke API's beschikbaar zijn en hoe het systeem de app verwerkt.
Google raadt aan om minSdk niet lager te houden dan de huidige distributiedrempel — volgens Android Studio Distribution Dashboard (2026) werkt ongeveer 95% van de apparaten op Android 8.0 (API 26) en hoger. compileSdk moet de laatste stabiele zijn — dit geeft toegang tot nieuwe API's en stelt lint-controles in staat verouderde methoden te detecteren.
Met elk nieuw API Level introduceert Google significante veranderingen. Android 6.0 (API 23) voegde runtime-machtigingen toe — de app vraagt machtigingen tijdens runtime, niet bij installatie. Android 8.0 (API 26) introduceerde automatisch aanvullen van formulieren en meldingskanalen. Android 12 (API 31) veranderde de benadering van intents radicaal — SplashScreen API en export van componenten via het exported-attribuut verschenen. Android 14 (API 34) maakte het specificeren van vlaggen voor BroadcastReceiver verplicht en introduceerde strikte beperkingen voor foreground services.
Inzicht in de geschiedenis van API Level helpt de ontwikkelaar de juiste compatibiliteitsstrategie te kiezen. Als de app compileSdk 35 gebruikt maar minSdk 26, kan de code methoden van API 35 alleen aanroepen na versiecontrole via Build.VERSION.SDK_INT. Deze aanpak heet version-gated development en is de industriestandaard.
| Android | API | Jaar | Belangrijke innovatie |
|---|---|---|---|
| 6.0 Marshmallow | 23 | 2015 | Runtime-machtigingen |
| 8.0 Oreo | 26 | 2017 | Meldingskanalen, Autofill |
| 10 | 29 | 2019 | Scoped Storage, Dark Theme |
| 12 | 31 | 2021 | SplashScreen, exported-attribuut |
| 14 | 34 | 2023 | Broadcast-vlaggen, Foreground Services |
SDK Manager — is een tool voor het beheren van Android SDK-componenten: installeren van nieuwe SDK Platforms, updaten van bestaande en verwijderen van verouderde. SDK Manager is beschikbaar als grafische interface in Android Studio en via de commandoregel via sdkmanager. Via de commandoregel is SDK Manager handig in CI/CD-pipelines waar geen grafische interface is.
SDK Manager installeert platforms in de Android SDK-directory, die standaard in $HOME/Android/Sdk op Linux en macOS of %LOCALAPPDATA%\Android\Sdk op Windows staat. In de platforms-directory bevinden zich mappen met de naam android-{API Level}, die elk een volledige SDK Platform bevatten.
Het commando sdkmanager accepteert een pakket-ID in het formaat "platforms;android-{API}". Voor installatie van SDK Platform 35 ziet het commando er als volgt uit:
# Installeer SDK Platform voor API Level 35
sdkmanager "platforms;android-35"
# Installeer meerdere platforms met één commando
sdkmanager "platforms;android-34" "platforms;android-33" "platforms;android-31"
# Lijst van geïnstalleerde platforms
sdkmanager --list_installed | grep platforms
# Verwijder verouderd platform
sdkmanager --uninstall "platforms;android-28"
Moderne Android-projecten gebruiken Gradle Plugin die automatisch SDK Platform kan installeren bij de eerste build. Hiervoor moet u compileSdk specificeren in build.gradle en de SDK-directory toevoegen aan de lokale configuratie. Android Studio biedt ook aan om het ontbrekende platform te installeren bij het openen van een project — klik gewoon op "Install SDK Platform" in het Gradle-synchronisatievenster.
Het is belangrijk om SDK Platform regelmatig bij te werken via SDK Manager — samen met het platform worden Build-Tools en Platform-Tools bijgewerkt, wat de bouwprestaties en debugsstabiliteit beïnvloedt. Google raadt aan om SDK-updates elke 2–3 weken te controleren, vooral voor het publiceren van een nieuwe app-versie in Google Play.
Om de emulator met een specifiek API Level te starten, moet u System Image van dezelfde versie installeren. SDK Manager maakt het mogelijk images van verschillende architecturen (x86_64, arm64-v8a) en types (Google APIs, Google Play, AOSP) te downloaden. Na het downloaden van de image maakt AVD Manager een virtueel apparaat op basis daarvan.
# Installeer System Image met Google APIs voor API 35
sdkmanager "system-images;android-35;google_apis;x86_64"
# Maak AVD via commandoregel
avdmanager create avd -n pixel8 -k "system-images;android-35;google_apis;x86_64"
# Lijst van gemaakte AVD's
avdmanager list avd
Drie parameters in build.gradle bepalen hoe de app met SDK Platform werkt. compileSdk — API Level gebruikt voor compilatie. Deze parameter specificeert welke Android API-klassen beschikbaar zijn in de code. compileSdk moet de nieuwste van alle drie zijn en beïnvloedt het runtime-gedrag niet — de app wordt gecompileerd maar gebruikt alleen de API's die op het apparaat aanwezig zijn.
minSdk — het minimale API Level waarop de app kan worden geïnstalleerd. Google Play staat installatie van de app niet toe op een apparaat met een versie lager dan minSdk. Deze parameter bepaalt de compatibiliteitsdrempel en beïnvloedt het bereik van het publiek. Hoe lager minSdk, hoe meer apparaten worden ondersteund, maar hoe minder nieuwe API's zonder controles kunnen worden gebruikt.
targetSdk — API Level waarop de app is getest. Het Android-systeem gebruikt targetSdk om gedragsveranderingen toe te passen: als de app niet is bijgewerkt naar het nieuwe API Level, schakelt het systeem de compatibiliteitsmodus voor oude versies in. Google Play vereist targetSdk niet lager dan een bepaald niveau — voor 2026 is dit 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-versie moet worden geïnstalleerd via SDK Manager
// sdkmanager "platforms;android-35"
De keuzestrategie hangt af van de projectdoelen. Voor een nieuwe app: compileSdk — laatste stabiele (35 begin 2026), minSdk — API 26 (Android 8.0, dekt 95% van apparaten), targetSdk — laatste stabiele. Voor het updaten van een bestaande app: verhoog compileSdk meteen, targetSdk — na het testen van alle gedragsveranderingen, minSdk — alleen als het nodig is om verouderde apparaten te laten vallen.
Google vereist dat targetSdk binnen een jaar na release van een nieuwe Android-versie wordt bijgewerkt. Apps die niet aan deze vereiste voldoen, kunnen geen updates publiceren in Google Play. Gebruik de officiële Android OS-updatekalender om deadlines bij te houden.
| Parameter | Doel | Aanbeveling |
|---|---|---|
| compileSdk | API-versie voor compilatie | Laatste stabiele |
| minSdk | Minimaal ondersteunde versie | API 26 voor 95% dekking |
| targetSdk | Versie voor gedragsveranderingen | Laatste stabiele + testen |
Bij het ontwikkelen voor verschillende Android-versies moet rekening worden gehouden met de beschikbaarheid van API's. Als de app compileSdk 35 gebruikt maar draait op een apparaat met API 31, leidt het aanroepen van methoden die in API 34 zijn toegevoegd tot NoSuchMethodError of AbstractMethodError. Voor veilig aanroepen van nieuwe API's worden versiecontroles via Build.VERSION.SDK_INT gebruikt.
class FeatureChecker {
fun registerNotificationChannel(context: Context) {
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O) {
// Notification channels zijn beschikbaar vanaf API 26
val channel = NotificationChannel(
"updates",
"Updates",
NotificationManager.IMPORTANCE_DEFAULT
)
val manager = context.getSystemService(NotificationManager::class.java)
manager.createNotificationChannel(channel)
}
}
}
Gebruik voor methoden die alleen op bepaalde versies worden aangeroepen de @RequiresApi-annotatie. Dit vertelt lint-controles dat de methode veilig is en schakelt waarschuwingen uit. In combinatie met SDK_INT-controle maakt de annotatie de code schoner en begrijpelijker voor reviewers.
@RequiresApi(Build.VERSION_CODES.UPSIDE_DOWN_CAKE)
fun scheduleExactAlarm(manager: AlarmManager, time: Long) {
// API 34: scheduleExact met vlag SCHEDULE_EXACT_ALARM
if (manager.canScheduleExactAlarms()) {
manager.setExact(AlarmManager.RTC_WAKEUP, time, pendingIntent)
} else {
// Vraag machtiging SCHEDULE_EXACT_ALARM aan
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 {
// Oude methode setExact zonder machtigingscontrole
getAlarmManager(context).setExact(AlarmManager.RTC_WAKEUP, triggerTime, pendingIntent)
}
}
Soms moet u weten welke versie van SDK Platform is geïnstalleerd op het apparaat van de ontwikkelaar of in CI. Dit kan via ADB of programmatisch in de app-code. Kennis van het API Level van het apparaat helpt bij het testen van versiespecifiek gedrag.
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")
}
// Uitvoer: SDK_INT: 35, RELEASE: 15, CODENAME: REL
}
Veelgestelde vragen
Android Studio is een IDE, terwijl SDK Platform een set bibliotheken en tools is voor compilatie. Studio gebruikt SDK Platform om apps te bouwen, maar platforms worden apart gedownload via SDK Manager en kunnen onafhankelijk van de Studio-versie worden bijgewerkt.
Meestal zijn drie versies voldoende: de nieuwste (compileSdk), de minimale (minSdk) en één tussentijdse voor testen. SDK Manager maakt het gemakkelijk om platforms naar behoefte toe te voegen en te verwijderen. Ontwikkelaars bewaren gemiddeld 3–5 platforms op hun werkmachine.
Nee. Elke SDK Platform bevat alleen de API's van zijn eigen versie. Voor het aanroepen van methoden uit API 35 is het platform android-35 nodig. Het opgeven van een nieuwe compileSdk met een oud geïnstalleerd platform veroorzaakt een compilatiefout.
Google brengt updates uit voor SDK Platform per versie: bugfixes, nieuwe API's, prestatieverbeteringen. SDK Manager meldt beschikbare updates. Het wordt aanbevolen de nieuwste revisie van het platform te installeren voor een stabiele build.
Standaard neemt elke SDK Platform 200–800 MB in beslag in de directory Android/Sdk/platforms/android-{API}. In de map bevinden zich android.jar, de data-map met bronnen en configuratiebestanden voor emulator en build.
Samenvatting
We ontwikkelen een mobiele applicatie turnkey
IT Sectr creëert sinds 2017 iOS- en Android-applicaties voor startups en bedrijven. We adviseren u en stellen de beste oplossing voor.
Lees ook