Google Play Services: суштина, компоненте и Android развој

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

Google Play Services — је слој системских Google услуга на Android-у који обезбеђује рад свих апликација и API-ја Google: од Google Maps до Firebase и Google Sign-In. Play Services раде као засебан APK пакет, који се аутоматски ажурира путем Google Play Store-а, независно од ажурирања Android фирмвера. Према подацима Android Developers, 2025, Google Play Services су инсталиране на 99.8% свих активних Android уређаја и укључују преко 50 засебних модула.

Главно

  • Google Play Services — системски слој Google услуга за Android, ажуриран одвојено од ОС-а
  • Аутоматско ажурирање — Play Services се ажурирају путем Play Store-а независно од фирмвера произвођача
  • Модули — преко 50 компонената: Maps, Auth, Ads, Wallet, Location, SafetyNet и друге
  • API ниво — Play Services доступне од Android 2.3 (API 9), већина модула од API 14+
  • Google Mobile Services — GMS пакет укључује Play Services плус Google апликације (Chrome, Gmail, YouTube)

Шта су Google Play Services?

Google Play Services — је власнички слој Google услуга који ради изнад оперативног система Android. За разлику од AOSP (Android Open Source Project), који укључује само основне библиотеке, Play Services пружају API-је за интеграцију са Google екосистемом: мапе, геолокација, аутентификација, push обавештења, рекламе и плаћања. Play Services се инсталирају као системска апликација са повишеним привилегијама и имају приступ API-јима недоступним обичним апликацијама.

Кључна разлика Google Play Services од стандардних Android библиотека — могућност ажурирања путем Play Store-а. Ако Google објави нову верзију Maps SDK или Auth API-ја, корисник добија ажурирање путем Play Services-а, не чекајући OTA ажурирање фирмвера од произвођача. Ово решава проблем фрагментације Android-а — према подацима Statista (2025), око 40% Android уређаја ради на верзијама ОС-а старијим од 3 године, али су Play Services ажуриране на најновију верзију на 85% уређаја.

Google Play Services нису део Android Open Source Project-а и нису доступне на уређајима без Google лиценце (нпр. Huawei након 2019. године). За апликације које раде на уређајима без GMS-а, Google препоручује коришћење Firebase SDK-а са подршком за више платформи или прелазак на алтернативна решења (Huawei Mobile Services).

Архитектура и компоненте Play Services

Архитектура Google Play Services је изграђена као скуп независних модула (APK пакета), од којих сваки одговара за своју функционалност. Главни APK (com.google.android.gms) садржи језгро услуга и око 50 додатних модула који се учитавају по потреби. Кориснички процес се назива процес Google Play Services и ради у позадини са повишеним приоритетом.

Сваки модул Google Play Services има сопствену верзију и API. Програмер повезује само потребне модуле путем build.gradle-а, што смањује величину апликације. На пример, за Google Sign-In је потребан com.google.android.gms:play-services-auth, за Google Maps — play-services-maps. Google Play Services аутоматски решавају зависности између модула и учитавају недостајуће компоненте.

КомпонентаGradle пакетФункционалност
Authplay-services-authGoogle Sign-In, Credential Manager, ID Token
Mapsplay-services-mapsGoogle Maps SDK рендеровање мапа, камера
Locationplay-services-locationFusedLocationProvider, геозоне, Activity Recognition
Adsplay-services-adsGoogle Mobile Ads, AdMob, Ad Manager
Walletplay-services-walletGoogle Pay, Passes, API за плаћање
SafetyNetplay-services-safetynetПровера уређаја, reCAPTCHA, атестација

Интеракција путем AIDL-а

Интеракција између апликације и Play Services-а одвија се путем AIDL-а (Android Interface Definition Language). Апликација позива SDK методе, SDK шаље IPC захтеве у процес Google Play Services-а, који обавља стварни посао (мрежни захтеви ка Google серверима, рад са GPS-ом, криптографија). Процес Play Services-а је изолован од апликације — ако падне, апликација наставља са радом.

Механизам аутоматског ажурирања и верзионисање

Google Play Services се ажурирају аутоматски путем Google Play Store-а — корисник добија нову верзију у позадини без потребе за потврдом. Ажурирања се дистрибуирају фазно (staged rollout): прво на 1% уређаја, затим на 10%, 50% и 100%. Ако се у новој верзији открије критична грешка, Google може да повуче ажурирање на стабилну верзију у року од 24 сата.

Верзија Google Play Services се кодира са два броја: верзија APK-а (нпр. 25.15.32) и верзија SDK-а (нпр. 12.8.0). Програмеру је важно да провери верзију Play Services-а на уређају путем GoogleApiAvailability-ја — ако је корисник искључио аутоматско ажурирање или користи прилагођени фирмвер, верзија може бити застарела. Према Google-у, просечна верзија Play Services-а на активним уређајима није старија од 6 месеци.

kotlin
// Провера верзије Google Play Services на уређају
val availability = GoogleApiAvailability.getInstance()
val resultCode = availability.isGooglePlayServicesAvailable(context)

when (resultCode) {
    ConnectionResult.SUCCESS ->
        Log.d("GMS", "Google Play Services доступне")

    ConnectionResult.SERVICE_MISSING,
    ConnectionResult.SERVICE_VERSION_UPDATE_REQUIRED -> {
        // Приказујемо дијалог ажурирања
        availability.showErrorDialogFragment(
            activity, resultCode, REQUEST_CODE
        )
    }
}

Проблеми са верзијама: ако су Google Play Services искључене (корисник их је ручно искључио у подешавањима), сви Google API-ји престају да раде. Апликација треба да провери доступност Play Services-а пре сваког позива Google API-ја и прикаже разумљиву поруку кориснику са дугметом за прелазак у подешавања или преузимање Play Services-а. Google обезбеђује дијалог са грешком путем showErrorDialogFragment-а који аутоматски води у Play Store.

Кључни модули и њихова намена

Google Play Services Auth — модул за аутентификацију, који пружа Google Sign-In, Credential Manager и Smart Lock за лозинке. Од 2024. године Google препоручује Credential Manager као јединствени API за све типове аутентификације. Google Play Services Maps — рендеровање Google мапа, геокодирање, Places API и руте. Location — Fused Location Provider, који комбинује GPS, Wi-Fi и мобилне податке за прецизно одређивање локације са минималном потрошњом енергије.

Play Integrity API: замена за SafetyNet

Модул Google Play Services Wallet подржава Google Pay за плаћање у апликацијама и на веб-сајтовима, као и Google Passes (програми лојалности, карте за укрцавање, улазнице). SafetyNet (замењује се Play Integrity API-јем) — провера интегритета уређаја: root приступ, прилагођени фирмвер, емулатор. Play Integrity API (препоручује се од 2024. године) — прецизнија провера: device integrity (интегритет), app integrity (потпис), account integrity (Google налог).

kotlin
// Захтев за локацију путем FusedLocationProvider-а
val fusedClient = LocationServices.getFusedLocationProviderClient(context)

val locationRequest = LocationRequest.Builder()
    .setPriority(Priority.PRIORITY_HIGH_ACCURACY)
    .setInterval(10000)
    .setFastestInterval(5000)
    .build()

if (ActivityCompat.checkSelfPermission(
    context, Manifest.permission.ACCESS_FINE_LOCATION
) == PackageManager.PERMISSION_GRANTED) {
    fusedClient.requestLocationUpdates(
        locationRequest,
        locationCallback,
        Looper.getMainLooper()
    )
}

Модул Google Play Services Awareness — комбиновани API, који обједињује податке о локацији, времену, временским приликама, активности корисника и повезаним слушалицама. Awareness API омогућава апликацији да реагује на контекст: на пример, укључи тихи режим када је корисник на послу, или прикажи обавештење о киши пре изласка. API доступан од Play Services 16.0.0.

Интеграција Google Play Services у Android пројекат

Интеграција Google Play Services у Android пројекат изводи се додавањем зависности у build.gradle нивоа апликације. Google препоручује коришћење засебних модуларних зависности, а не општег пакета play-services-all, како би се смањила величина APK-а. Минимална верзија Play Services SDK-а — 21.0.0 (одговара Android 14), али већина модула подржава API 19+.

За интеграцију је потребно подесити Google Services Gradle Plugin и датотеку google-services.json, која се преузима из Firebase Console-а. JSON датотека садржи идентификаторе пројекта, API кључеве и Client ID за OAuth. Без google-services.json већина модула Play Services-а неће моћи да се ауторизује на Google серверима. Ако пројекат не користи Firebase, довољно је додати API кључ у AndroidManifest.xml.

groovy
// build.gradle (ниво пројекта)
buildscript {
    dependencies {
        classpath "com.google.gms:google-services:4.4.2"
    }
}

// build.gradle (ниво апликације)
apply plugin: 'com.google.gms.google-services'

dependencies {
    implementation "com.google.android.gms:play-services-auth:21.2.0"
    implementation "com.google.android.gms:play-services-maps:19.0.0"
    implementation "com.google.android.gms:play-services-location:21.3.0"
}

Важна нијанса: различити модули Google Play Services могу захтевати различите верзије једни од других. Ако један модул захтева play-services-basement верзију 18.0.0, а други — 18.1.0, Gradle решава конфликт у корист старије верзије. Препоручује се коришћење јединствене верзије за све модуле кроз променљиву: ext.playServicesVersion = '21.2.0'. Google Play Services такође зависе од верзије compileSdk — за верзију 21.0.0 потребан је compileSdk 34+.

Android уређаји без Google Play Services

Уређаји без Google Play Services (Huawei, Honor, неки кинески брендови) не могу да користе API-је које пружа GMS. За такве уређаје Google препоручује Firebase SDK, који укључује вишеплатформске библиотеке које раде без Play Services-а. Firebase Authentication користи REST API директно, Firebase Realtime Database — WebSocket везу, Firebase Cloud Messaging — сопствени протокол.

Алтернативни приступ — коришћење Huawei Mobile Services (HMS), које пружају сличне API-је: Huawei Maps Kit, Location Kit, Push Kit. За подршку оба типа уређаја, програмери имплементирају апстрактни слој који одређује присуство GMS-а или HMS-а при покретању и повезује одговарајући SDK. Према Counterpoint Research (2025), удео уређаја без GMS-а износи око 5% глобалног Android тржишта.

kotlin
// Провера присуства GMS-а на уређају
fun isGmsAvailable(): Boolean {
    return try {
        GoogleApiAvailability.getInstance()
            .isGooglePlayServicesAvailable(context) ==
            ConnectionResult.SUCCESS
    } catch (e: Exception) {
        false
    }
}

// Апстрактни слој за GMS/HMS
interface PushService {
    fun getToken(): String
}

class GmsPushService : PushService {
    override fun getToken() =
        FirebaseMessaging.getInstance().token.await()
}

Апстрактни слој GMS и HMS

За апликације које раде на уређајима без GMS-а, критично је тестирати све функције које користе Google API. Play Services враћају грешку SERVICE_MISSING ако сервис није пронађен. Препоручује се graceful degradation: ако Google Sign-In није доступан, понудите пријаву путем е-поште; ако Google Maps нису доступне, прикажите WebView са Yandex Maps или OpenStreetMap. Huawei AppGallery објављује око 15% свих Android апликација у свету.

Пример кода: провера и ажурирање Play Services

Потпуни пример провере доступности Google Play Services и обраде свих могућих стања: сервис доступан, потребно ажурирање, сервис искључен, сервис недостаје. Код користи GoogleApiAvailability за проверу и showErrorDialogFragment за приказ стандардног Google дијалога са преласком у Play Store.

kotlin
class GmsCheckActivity : AppCompatActivity() {

    companion object {
        private const val REQ_UPDATE = 1001
    }

    fun checkGooglePlayServices() {
        val api = GoogleApiAvailability.getInstance()
        when (api.isGooglePlayServicesAvailable(this)) {
            ConnectionResult.SUCCESS ->
                initializeApp()
            ConnectionResult.SERVICE_DISABLED ->
                showSettingsDialog()
            ConnectionResult.SERVICE_VERSION_UPDATE_REQUIRED ->
                api.showErrorDialogFragment(
                    this, ConnectionResult.SERVICE_VERSION_UPDATE_REQUIRED,
                    REQ_UPDATE
                )
        }
    }

    override fun onActivityResult(request: Int,
            result: Int, data: Intent?) {
        super.onActivityResult(request, result, data)
        if (request == REQ_UPDATE && result == RESULT_OK)
            initializeApp()
    }
}

Препоручује се провера доступности Google Play Services при сваком покретању апликације, а не само при првом. Корисник може да искључи Play Services у подешавањима након инсталације апликације, што ће довести до нерада свих Google API-ја. За критичне функције (нпр. плаћање путем Google Pay-а) провера мора бити обавезна — без Play Services апликација не може да обради плаћање.

Миграција на Play Core и Modular Delivery

Play Core — је библиотека Google Play Services за управљање модулима апликације, ажурирањима у реалном времену и преузимањем додатних ресурса. Play Core омогућава имплементацију Dynamic Delivery-ја — испоруку модула апликације по потреби: корисник преузима основну апликацију, а додатне функције (нпр. модул администрације или Premium садржај) се преузимају тек када корисник први пут отвори одговарајући екран.

Модуларна испорука Google Play Services путем Play Core-а смањује величину почетне инсталације апликације за 30-50%. Ово је посебно важно за тржишта са спорим интернетом — према Google Play Console, сваких 10 MB смањује конверзију инсталације за 1%. Play Core SDK захтева Android 5.0 (API 21) и Google Play Services 21.0.0+. Важно: након преузимања модула, он се не може обрисати, већ само ажурирати цела апликација.

kotlin
// Учитавање модула по потреби путем Play Core-а
val manager = SplitInstallManagerFactory.create(context)
val request = SplitInstallRequest
    .Builder()
    .addModule("premium")
    .build()

manager.startInstall(request)
    .addOnSuccessListener {
        Log.d("Split", "Premium модул учитан")
    }

Миграција на Play Core захтева промену архитектуре апликације: функционалност се дели на on-demand модуле у Android Studio-у, а Gradle гради сваки модул као засебан APK. Google Play Store затим креира APK Set (Android App Bundle) и испоручује кориснику само основни APK. Play Core такође подржава in-app updates — корисник може да ажурира апликацију изнутра, без одласка у Play Store. До 2026. године око 70% апликација у Google Play-у користи Android App Bundle и Play Core.

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

Шта ће се десити ако избришем Google Play Services на Android-у?

Ако избришете Google Play Services, престаће да раде све Google услуге: Google Maps, Google Sign-In, Push обавештења FCM, Google Pay, Play Integrity. Апликације које користе ове API-је приказиваће грешке или се рушити. На већини уређаја Play Services се не могу избрисати стандардним средствима — само искључити у подешавањима.

Како ручно ажурирати Google Play Services?

Google Play Services се ажурирају аутоматски путем Play Store-а. За ручно ажурирање: отворите Play Store → Моје апликације и игре → пронађите Google Play Services → Ажурирај. Ако ажурирање није доступно, преузмите APK најновије верзије са APKMirror-а (само за искусне кориснике). Аутоматско ажурирање обично се дешава у року од 2 недеље након објављивања.

Која је минимална верзија Android-а за Google Play Services?

Минимална подржана верзија је Android 4.4 KitKat (API 19). Међутим, неки модули (нпр. Credential Manager) захтевају Android 6.0 (API 23) или виши. За савремени развој Google препоручује циљање Android 14 (API 34) и коришћење Play Services верзије 21.0.0+. Застарели уређаји на Android 4.4 добијају само критична ажурирања Play Services-а.

Могу ли да користим Firebase без Google Play Services?

Да, Firebase SDK може да ради без Google Play Services на уређајима без GMS-а. Firebase Authentication, Realtime Database, Firestore, Cloud Functions и Hosting не захтевају Play Services. Firebase Cloud Messaging (FCM) може да користи директни HTTP протокол уместо GMS-а. Међутим, Firebase Crashlytics и Performance Monitoring захтевају Play Services за прикупљање података.

Која је величина APK-а Google Play Services?

Основни APK Google Play Services заузима око 80-120 MB у системској партицији. Додатни модули (мапе, auth, location) се учитавају по потреби и могу додати 10-50 MB. За поређење: Apple Push Notification Service у iOS-у заузима око 5 MB. Упркос величини, Play Services не утичу на расположиву меморију корисника — налазе се у системској партицији.

Резиме

  • Google Play Services — системски слој Google услуга, који обезбеђује рад Maps, Auth, Ads, Location и других API-ја
  • Аутоматско ажурирање — Play Services се ажурирају путем Play Store-а независно од фирмвера, решавајући проблем фрагментације
  • Модули — преко 50 независних компонената, повезаних путем засебних Gradle зависности
  • Провера — GoogleApiAvailability омогућава одређивање верзије Play Services и предлагање ажурирања кориснику
  • Уређаји без GMS-а — Huawei и други брендови користе HMS; Firebase SDK подржава рад без Play Services
  • Play Core — библиотека за модуларну испоруку, ажурирања у апликацији и динамичко учитавање функционалности
  • Play Integrity API — савремена замена за SafetyNet за проверу интегритета уређаја и апликације

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

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

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

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