SDK Platform: шта је то, верзије и Android SDK Manager

Аутор: IT Sectr Објављено: 2026-02-09 Време читања: 11 мин

SDK Platform Android — скуп библиотека, системских образа и алата за одређену верзију оперативног система. Свака платформа је везана за свој API Level и укључује android.jar са класама Android API, runtime компоненте и емулатор. Према Google Developer Documentation, 2026, програмери користе SDK Platform за компилацију кода против циљне верзије ОС-а. Без инсталиране платформе није могуће саставити APK или покренути апликацију на емулатору. SDK Manager управља преузимањем, ажурирањем и уклањањем ових компоненти.

Главно

  • SDK Platform — скуп библиотека и алата за једну верзију Android-а, који одговара одређеном API Level-у.
  • API Level — нумерички идентификатор верзије Android SDK-а, који одређује доступне класе и методе.
  • SDK Manager — алат за инсталацију, ажурирање и уклањање SDK Platform, Tools и системских образа.
  • compileSdk — верзија SDK Platform-а која се користи за компилацију апликације, треба да буде најновија стабилна.
  • targetSdk — API Level на којем је апликација тестирана и за који је оптимизовано понашање runtime-а.

Шта је SDK Platform

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, али не обрнуто.

Зашто је потребан засебан SDK Platform за сваку верзију

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 1231Snow Cone2021
Android 1333Tiramisu2022
Android 1434Upside Down Cake2023
Android 1535Vanilla Ice Cream2024

Састав SDK Platform-а: основне компоненте

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 и AAB200–400 MB
Platform ResourcesСистемски ресурси (теме, стилови)30–80 MB
SkinsПрофили уређаја за емулатор10–50 MB

API Level и верзије SDK Platform-а

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-а: кључне промене

Са сваким новим 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 и представља индустријски стандард.

AndroidAPIГодинаКључна иновација
6.0 Marshmallow232015Runtime дозволе
8.0 Oreo262017Канали обавештења, Autofill
10292019Scoped Storage, Dark Theme
12312021SplashScreen, exported атрибут
14342023Broadcast заставице, Foreground Services

SDK Manager: инсталација и подешавање

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.

Инсталација SDK Platform-а путем sdkmanager-а

Команда sdkmanager прима идентификатор пакета у формату "platforms;android-{API}". На пример, за инсталацију SDK Platform 35 команда изгледа овако:

bash
# Инсталирај 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"

Аутоматска инсталација путем Gradle-а

Савремени 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 креира виртуелни уређај на његовој основи.

bash
# Инсталирај 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

compileSdk, targetSdk и minSdk у Gradle-у

Три параметра у 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).

Пример конфигурације Gradle-а

groovy
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, minSdk и targetSdk

Стратегија избора зависи од циљева пројекта. За нову апликацију: 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Верзија за промене понашањаПоследња стабилна + тестирање

Примери рада са SDK Platform-ом у коду

При развоју под различитим верзијама Android-а потребно је узети у обзир доступност API-ја. Ако апликација користи compileSdk 35, али ради на уређају са API 31, позивање метода додатих у API 34 ће довести до NoSuchMethodError или AbstractMethodError. За безбедно позивање нових API-ја примењују се провере верзије путем Build.VERSION.SDK_INT.

Провера API Level-а у runtime-у

kotlin
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)
        }
    }
}

Коришћење нових API-ја са @RequiresApi

За методе који се позивају само на одређеним верзијама, користите анотацију @RequiresApi. Ово сугерише lint проверама да је метод безбедан и искључује упозорења. У комбинацији са провером SDK_INT, анотација чини код чистијим и разумљивијим за рецензенте.

kotlin
@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-а

Понекад је потребно сазнати која верзија SDK Platform-а је инсталирана на уређају програмера или у CI-ју. Ово се може урадити путем ADB-а или програмски у коду апликације. Познавање API Level-а уређаја помаже при тестирању понашања специфичног за верзију.

kotlin
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
}

Често постављана питања

По чему се SDK Platform разликује од Android Studio?

Android Studio је IDE, а SDK Platform је скуп библиотека и алата за компајлирање. Studio користи SDK Platform за изградњу апликација, али се платформе преузимају одвојено путем SDK Manager-а и могу се ажурирати независно од верзије Studio-а.

Колико SDK Platform-а треба инсталирати?

Обично су довољне три верзије: најновија (compileSdk), минимална (minSdk) и једна међуверзија за тестирање. SDK Manager омогућава лако додавање и уклањање платформи по потреби. Програмери у просеку чувају 3–5 платформи на радној машини.

Може ли се користити стари SDK Platform за нове API-је?

Не. Сваки SDK Platform садржи само API-је своје верзије. За позивање метода из API 35 потребна је платформа android-35. Навођење новог compileSdk-а са инсталираном старом платформом изазваће грешку компајлирања.

Шта су ажурирања SDK Platform-а?

Google издаје ажурирања SDK Platform-а за сваку верзију: исправке грешака, нови API-ји, побољшања перформанси. SDK Manager обавештава о доступним ажурирањима. Препоручује се инсталирање последње ревизије платформе за стабилну изградњу.

Где се SDK Platform-ови чувају на диску?

Подразумевано, сваки SDK Platform заузима 200–800 MB у директоријуму Android/Sdk/platforms/android-{API}. Унутар фасцикле налазе се android.jar, data фасцикла са ресурсима и конфигурациони фајлови за емулатор и изградњу.

Резиме

  • SDK Platform — скуп библиотека и алата за одређену верзију Android-а, који одговара дефинисаном API Level-у.
  • API Level — нумерички идентификатор који одређује доступне класе, методе и понашање система.
  • SDK Manager — алат за инсталацију и ажурирање SDK Platform-а, System Images и Build-Tools-а путем GUI-ја или командне линије.
  • Параметри compileSdk, minSdk и targetSdk у build.gradle управљају верзијом платформе за компајлирање и компатибилношћу.
  • За позивање нових API-ја на старим уређајима користите провере Build.VERSION.SDK_INT и анотацију @RequiresApi.
  • Google захтева ажурирање targetSdk у року од годину дана након изласка нове верзије Android-а за објављивање у Google Play-у.
  • Редовно ажурирање SDK Platform-а путем SDK Manager-а обезбеђује приступ новим API-јима, исправкама и побољшањима перформанси.

Развићемо мобилну апликацију под кључ

IT Sectr креира iOS и Android апликације за стартапе и предузећа од 2017. године. Саветоваћемо вас и предложити најбоље решење.

Разговарајте о пројекту

Прочитајте такође