SDK Platform Android — скуп библиотека, системских образа и алата за одређену верзију оперативног система. Свака платформа је везана за свој API Level и укључује android.jar са класама Android API, runtime компоненте и емулатор. Према Google Developer Documentation, 2026, програмери користе SDK Platform за компилацију кода против циљне верзије ОС-а. Без инсталиране платформе није могуће саставити APK или покренути апликацију на емулатору. SDK Manager управља преузимањем, ажурирањем и уклањањем ових компоненти.
Главно
SDK Platform — основни компонент Android SDK-а, који представља комплетан скуп библиотека и алата за развој апликација под одређеном верзијом Android-а. Свака платформа се идентификује API Level-ом — целим бројем који расте са изласком нових верзија ОС-а. На пример, Android 13 одговара API Level 33, Android 14 — API Level 34, Android 15 — API Level 35.
За разлику од Android Studio (IDE), SDK Platform не садржи уређивач кода или отклањач грешака. То је системски слој који се повезује са компајлером и алатом за изградњу. Када програмер напише import android.app.Activity, компајлер узима ову класу из android.jar-а одређеног SDK Platform-а. Без инсталиране платформе са потребним API Level-ом, код се неће компајлирати.
Google издаје нови SDK Platform за сваку стабилну верзију Android-а. Историја броји више од 35 API Level-а — од 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 заставице. Програмер мора да изгради апликацију против актуелне платформе да би користио ове могућности.
Истовремено, апликација може да ради на старим верзијама ОС-а. За то се у 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 укључује System Image — образац оперативног система за емулатор Android Virtual Device. Без одговарајућег обрасца емулатор неће моћи да покрене виртуелни уређај са потребним API Level-ом. System Images су различитих типова: Google APIs (са Google сервисима), Google Play (са Play Store) и AOSP (чисти Android без Google сервиса).
SDK Platform укључује верзију Build-Tools и Platform-Tools оптимизоване за дати API Level. 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 | Образац ОС-а за емулатор | 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. Од избора ових параметара зависи који API-ји су доступни и како систем обрађује апликацију.
Google препоручује да minSdk буде на нивоу не нижем од тренутног прага дистрибуције — према Android Studio Distribution Dashboard (2026), око 95% уређаја ради на Android 8.0 (API 26) и вишем. compileSdk треба да буде последњи стабилни — ово даје приступ новим API-јима и омогућава lint проверама да открију застареле методе.
Са сваким новим API Level-ом Google уводи значајне промене. Android 6.0 (API 23) је додао runtime дозволе — апликација тражи дозволе током рада, а не при инсталацији. Android 8.0 (API 26) је увео аутоматско попуњавање образаца и канале обавештења. Android 12 (API 31) је радикално променио приступ intent-има — појавио се SplashScreen API и извоз компоненти кроз exported атрибут. Android 14 (API 34) је обавезао навођење заставица за BroadcastReceiver и увео строга ограничења за foreground services.
Разумевање историје API Level-а помаже програмеру да изабере исправну стратегију компатибилности. Ако апликација користи compileSdk 35, али minSdk 26, код може да позива методе API 35 само након провере верзије путем Build.VERSION.SDK_INT. Овај приступ се назива version-gated development и представља индустријски стандард.
| Android | API | Година | Кључна иновација |
|---|---|---|---|
| 6.0 Marshmallow | 23 | 2015 | Runtime дозволе |
| 8.0 Oreo | 26 | 2017 | Канали обавештења, Autofill |
| 10 | 29 | 2019 | Scoped Storage, Dark Theme |
| 12 | 31 | 2021 | SplashScreen, exported атрибут |
| 14 | 34 | 2023 | Broadcast заставице, Foreground Services |
SDK Manager — алат за управљање компонентама Android SDK-а: инсталацију нових SDK Platform-а, ажурирање постојећих и уклањање застарелих. SDK Manager је доступан као графички интерфејс у Android Studio, као и командну линију путем sdkmanager-а. Преко командне линије SDK Manager је погодан за употребу у CI/CD пајплајновима где нема графичког интерфејса.
SDK Manager инсталира платформе у директоријум Android SDK, који се подразумевано налази у $HOME/Android/Sdk на Linux и macOS или %LOCALAPPDATA%\Android\Sdk на Windows. Унутар директоријума platforms налазе се фасцикле облика android-{API Level}, од којих свака садржи комплетан SDK Platform.
Команда sdkmanager прима идентификатор пакета у формату "platforms;android-{API}". На пример, за инсталацију SDK Platform 35 команда изгледа овако:
# Инсталирај SDK Platform за API Level 35
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 при првој изградњи. За то је потребно навести compileSdk у build.gradle и додати SDK директоријум у локалну конфигурацију. Android Studio такође нуди инсталацију недостајуће платформе при отварању пројекта — довољно је кликнути дугме "Install SDK Platform" у прозору за синхронизацију Gradle-а.
Важно је редовно ажурирати SDK Platform путем SDK Manager-а — заједно са платформом ажурирају се Build-Tools и Platform-Tools, што утиче на перформансе изградње и стабилност отклањања грешака. Google препоручује проверу ажурирања SDK-а сваке 2–3 недеље, посебно пре објављивања нове верзије апликације у Google Play-у.
За покретање емулатора са одређеним API Level-ом потребно је инсталирати System Image исте верзије. SDK Manager омогућава преузимање образаца различитих архитектура (x86_64, arm64-v8a) и типова (Google APIs, Google Play, AOSP). Након преузимања обрасца, AVD Manager креира виртуелни уређај на његовој основи.
# Инсталирај System Image са Google APIs за API 35
sdkmanager "system-images;android-35;google_apis;x86_64"
# Креирај AVD путем командне линије
avdmanager create avd -n pixel8 -k "system-images;android-35;google_apis;x86_64"
# Листа креираних AVD-ова
avdmanager list avd
Три параметра у build.gradle одређују рад апликације са SDK Platform-ом. compileSdk — API Level који се користи за компајлирање. Овај параметар наводи које класе Android API-ја су доступне у коду. compileSdk треба да буде најновији од сва три и не утиче на понашање runtime-а — апликација се компајлира, али користи само оне API-је који су на уређају.
minSdk — минимални API Level на којем апликација може бити инсталирана. Google Play неће дозволити инсталацију апликације на уређају са верзијом нижом од minSdk-а. Овај параметар одређује праг компатибилности и утиче на покривеност публике. Што је minSdk нижи, то је више уређаја подржано, али се мање нових API-ја може користити без провера.
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 — последњи стабилни (35 на почетку 2026), minSdk — API 26 (Android 8.0, покрива 95% уређаја), targetSdk — последњи стабилни. За ажурирање постојеће апликације: подигните compileSdk одмах, targetSdk — након тестирања свих промена понашања, minSdk — само ако је потребно одустати од застарелих уређаја.
Google захтева да се targetSdk ажурира у року од годину дана након изласка нове верзије Android-а. Апликације које не испуњавају овај захтев не могу објављивати ажурирања у Google Play-у. За праћење рокова користите званични календар Android OS ажурирања.
| Параметар | Намена | Препорука |
|---|---|---|
| compileSdk | Верзија API-ја за компајлирање | Последња стабилна |
| minSdk | Минимална подржана верзија | API 26 за покривеност од 95% |
| targetSdk | Верзија за промене понашања | Последња стабилна + тестирање |
При развоју под различитим верзијама Android-а потребно је узети у обзир доступност API-ја. Ако апликација користи compileSdk 35, али ради на уређају са API 31, позивање метода додатих у API 34 ће довести до NoSuchMethodError или AbstractMethodError. За безбедно позивање нових API-ја примењују се провере верзије путем Build.VERSION.SDK_INT.
class FeatureChecker {
fun registerNotificationChannel(context: Context) {
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O) {
// Notification channels су доступни од 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: scheduleExact са заставицом SCHEDULE_EXACT_ALARM
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)
}
}
Понекад је потребно сазнати која верзија SDK Platform-а је инсталирана на уређају програмера или у CI-ју. Ово се може урадити путем 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-а за сваку верзију: исправке грешака, нови API-ји, побољшања перформанси. SDK Manager обавештава о доступним ажурирањима. Препоручује се инсталирање последње ревизије платформе за стабилну изградњу.
Подразумевано, сваки SDK Platform заузима 200–800 MB у директоријуму Android/Sdk/platforms/android-{API}. Унутар фасцикле налазе се android.jar, data фасцикла са ресурсима и конфигурациони фајлови за емулатор и изградњу.
Резиме
Развићемо мобилну апликацију под кључ
IT Sectr креира iOS и Android апликације за стартапе и предузећа од 2017. године. Саветоваћемо вас и предложити најбоље решење.
Прочитајте такође