Google Play Services — is een laag van Google-systeemdiensten op Android die de werking van alle Google-apps en API's garandeert: van Google Maps tot Firebase en Google Sign-In. Play Services werken als een apart APK-pakket dat automatisch wordt bijgewerkt via Google Play Store, onafhankelijk van Android-firmware-updates. Volgens Android Developers, 2025 zijn Google Play Services geïnstalleerd op 99.8% van alle actieve Android-apparaten en omvatten ze meer dan 50 afzonderlijke modules.
Belangrijkste
Google Play Services — is een propriëtaire laag van Google-diensten die bovenop het Android-besturingssysteem werkt. In tegenstelling tot AOSP (Android Open Source Project), dat alleen basisfunctiebibliotheken bevat, biedt Play Services API's voor integratie met het Google-ecosysteem: kaarten, geolocatie, authenticatie, pushmeldingen, advertenties en betalingen. Play Services worden geïnstalleerd als een systeemapp met verhoogde bevoegdheden en hebben toegang tot API's die niet beschikbaar zijn voor gewone apps.
Het belangrijkste verschil tussen Google Play Services en standaard Android-bibliotheken — de mogelijkheid om via Play Store te updaten. Als Google een nieuwe versie van de Maps SDK of Auth API uitbrengt, ontvangt de gebruiker de update via Play Services, zonder te wachten op een OTA-update van de fabrikant. Dit lost het fragmentatieprobleem van Android op — volgens Statista (2025) draait ongeveer 40% van de Android-apparaten op OS-versies ouder dan 3 jaar, maar Play Services zijn op 85% van de apparaten bijgewerkt naar de nieuwste versie.
Google Play Services maken geen deel uit van Android Open Source Project en zijn niet beschikbaar op apparaten zonder Google-licentie (bijvoorbeeld Huawei na 2019). Voor apps die werken op apparaten zonder GMS, raadt Google het gebruik van Firebase SDK met cross-platform ondersteuning aan of overstappen naar alternatieve oplossingen (Huawei Mobile Services).
De architectuur van Google Play Services is opgebouwd als een set onafhankelijke modules (APK-pakketten), die elk verantwoordelijk zijn voor hun eigen functionaliteit. De hoofd-APK (com.google.android.gms) bevat de kern van de diensten en ongeveer 50 extra modules die op verzoek worden geladen. Het gebruikersproces heet het Google Play Services-proces en draait op de achtergrond met hoge prioriteit.
Elke module van Google Play Services heeft zijn eigen versie en API. De ontwikkelaar sluit alleen de benodigde modules aan via build.gradle, wat de appgrootte verkleint. Bijvoorbeeld voor Google Sign-In is com.google.android.gms:play-services-auth nodig, voor Google Maps — play-services-maps. Google Play Services lossen automatisch afhankelijkheden tussen modules op en laden ontbrekende componenten.
| Component | Gradle-pakket | Functionaliteit |
|---|---|---|
| Auth | play-services-auth | Google Sign-In, Credential Manager, ID Token |
| Maps | play-services-maps | Google Maps SDK kaartweergave, camera |
| Location | play-services-location | FusedLocationProvider, geozones, Activity Recognition |
| Ads | play-services-ads | Google Mobile Ads, AdMob, Ad Manager |
| Wallet | play-services-wallet | Google Pay, Passes, betalings-API |
| SafetyNet | play-services-safetynet | Apparaatcontrole, reCAPTCHA, attestatie |
Communicatie tussen de app en Play Services vindt plaats via AIDL (Android Interface Definition Language). De app roept SDK-methoden aan, de SDK stuurt IPC-verzoeken naar het Google Play Services-proces, dat het echte werk uitvoert (netwerkverzoeken naar Google-servers, werken met GPS, cryptografie). Het Play Services-proces is geïsoleerd van de app — als het crasht, blijft de app gewoon doorwerken.
Google Play Services worden automatisch bijgewerkt via Google Play Store — de gebruiker ontvangt een nieuwe versie op de achtergrond zonder bevestiging. Updates worden gefaseerd uitgerold (staged rollout): eerst naar 1% van de apparaten, dan naar 10%, 50% en 100%. Als er in de nieuwe versie een kritieke fout wordt ontdekt, kan Google de update binnen 24 uur terugdraaien naar een stabiele versie.
De versie van Google Play Services wordt gecodeerd met twee nummers: de APK-versie (bijv. 25.15.32) en de SDK-versie (bijv. 12.8.0). Voor de ontwikkelaar is het belangrijk om de Play Services-versie op het apparaat te controleren via GoogleApiAvailability — als de gebruiker automatische updates heeft uitgeschakeld of aangepaste firmware gebruikt, kan de versie verouderd zijn. Volgens Google is de gemiddelde Play Services-versie op actieve apparaten niet ouder dan 6 maanden.
// Versie van Google Play Services op apparaat controleren
val availability = GoogleApiAvailability.getInstance()
val resultCode = availability.isGooglePlayServicesAvailable(context)
when (resultCode) {
ConnectionResult.SUCCESS ->
Log.d("GMS", "Google Play Services beschikbaar")
ConnectionResult.SERVICE_MISSING,
ConnectionResult.SERVICE_VERSION_UPDATE_REQUIRED -> {
// Updatedialoog tonen
availability.showErrorDialogFragment(
activity, resultCode, REQUEST_CODE
)
}
}Problemen met versies: als Google Play Services zijn uitgeschakeld (de gebruiker heeft ze handmatig uitgeschakeld in de instellingen), stoppen alle Google API's met werken. De app moet de beschikbaarheid van Play Services controleren vóór elke Google API-aanroep en een duidelijke melding tonen aan de gebruiker met een knop om naar de instellingen te gaan of Play Services te downloaden. Google biedt een foutdialoog via showErrorDialogFragment die automatisch naar Play Store leidt.
Google Play Services Auth — de authenticatiemodule, die Google Sign-In, Credential Manager en Smart Lock voor wachtwoorden biedt. Sinds 2024 raadt Google Credential Manager aan als uniforme API voor alle soorten authenticatie. Google Play Services Maps — weergave van Google-kaarten, geocodering, Places API en routes. Location — Fused Location Provider, die GPS, Wi-Fi en mobiele data combineert voor nauwkeurige locatiebepaling met minimaal energieverbruik.
De module Google Play Services Wallet ondersteunt Google Pay voor betalingen in apps en op websites, evenals Google Passes (loyaliteitskaarten, instapkaarten, tickets). SafetyNet (wordt vervangen door Play Integrity API) — controle van apparaatintegriteit: root-toegang, aangepaste firmware, emulator. Play Integrity API (aanbevolen sinds 2024) — nauwkeurigere controle: device integrity (integriteit), app integrity (handtekening), account integrity (Google-account).
// Locatieverzoek via 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()
)
}De module Google Play Services Awareness — een gecombineerde API die gegevens over locatie, tijd, weer, gebruikersactiviteit en aangesloten hoofdtelefoons samenvoegt. Awareness API stelt de app in staat om te reageren op context: bijvoorbeeld de stille modus inschakelen wanneer de gebruiker op het werk is, of een melding over regen tonen voordat hij naar buiten gaat. API beschikbaar vanaf Play Services 16.0.0.
Integratie van Google Play Services in een Android-project wordt uitgevoerd door afhankelijkheden toe te voegen in build.gradle op app-niveau. Google raadt aan om afzonderlijke modulaire afhankelijkheden te gebruiken in plaats van het algemene play-services-all-pakket om de APK-grootte te verkleinen. Minimale versie van Play Services SDK — 21.0.0 (komt overeen met Android 14), maar de meeste modules ondersteunen API 19+.
Voor integratie is configuratie van de Google Services Gradle Plugin en het bestand google-services.json vereist, dat wordt gedownload van Firebase Console. Het JSON-bestand bevat project-ID's, API-sleutels en Client ID voor OAuth. Zonder google-services.json kunnen de meeste Play Services-modules niet autoriseren op Google-servers. Als het project geen Firebase gebruikt, volstaat het toevoegen van een API-sleutel in AndroidManifest.xml.
// build.gradle (projectniveau)
buildscript {
dependencies {
classpath "com.google.gms:google-services:4.4.2"
}
}
// build.gradle (app-niveau)
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"
}Een belangrijke nuance: verschillende Google Play Services-modules kunnen verschillende versies van elkaar vereisen. Als één module play-services-basement versie 18.0.0 vereist en een andere 18.1.0, lost Gradle het conflict op ten gunste van de hogere versie. Het wordt aanbevolen om één versie voor alle modules te gebruiken via een variabele: ext.playServicesVersion = '21.2.0'. Google Play Services zijn ook afhankelijk van de compileSdk-versie — voor versie 21.0.0 is compileSdk 34+ vereist.
Apparaten zonder Google Play Services (Huawei, Honor, sommige Chinese merken) kunnen geen gebruik maken van de API's die door GMS worden geleverd. Voor dergelijke apparaten raadt Google Firebase SDK aan, die cross-platform bibliotheken bevat die werken zonder Play Services. Firebase Authentication gebruikt rechtstreeks REST API, Firebase Realtime Database — WebSocket-verbinding, Firebase Cloud Messaging — eigen protocol.
Een alternatieve aanpak — het gebruik van Huawei Mobile Services (HMS), die vergelijkbare API's bieden: Huawei Maps Kit, Location Kit, Push Kit. Om beide typen apparaten te ondersteunen, implementeren ontwikkelaars een abstracte laag die bij het opstarten de aanwezigheid van GMS of HMS detecteert en de bijbehorende SDK aansluit. Volgens Counterpoint Research (2025) bedraagt het aandeel apparaten zonder GMS ongeveer 5% van de wereldwijde Android-markt.
// Aanwezigheid van GMS op apparaat controleren
fun isGmsAvailable(): Boolean {
return try {
GoogleApiAvailability.getInstance()
.isGooglePlayServicesAvailable(context) ==
ConnectionResult.SUCCESS
} catch (e: Exception) {
false
}
}
// Abstracte laag voor GMS/HMS
interface PushService {
fun getToken(): String
}
class GmsPushService : PushService {
override fun getToken() =
FirebaseMessaging.getInstance().token.await()
}Voor apps die werken op apparaten zonder GMS is het van cruciaal belang om alle functies die Google API's gebruiken te testen. Play Services retourneert de fout SERVICE_MISSING als de service niet wordt gevonden. Graceful degradation wordt aanbevolen: als Google Sign-In niet beschikbaar is, bied dan inloggen via e-mail aan; als Google Maps niet beschikbaar is, toon dan een WebView met Yandex Maps of OpenStreetMap. Huawei AppGallery publiceert ongeveer 15% van alle Android-apps wereldwijd.
Volledig voorbeeld van het controleren van de beschikbaarheid van Google Play Services en het afhandelen van alle mogelijke statussen: service beschikbaar, update vereist, service uitgeschakeld, service ontbreekt. De code gebruikt GoogleApiAvailability voor de controle en showErrorDialogFragment om het standaard Google-dialoogvenster met navigatie naar Play Store weer te geven.
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()
}
}Het wordt aanbevolen om de beschikbaarheid van Google Play Services bij elke start van de app te controleren, niet alleen bij de eerste. De gebruiker kan Play Services in de instellingen uitschakelen na installatie van de app, wat leidt tot het niet werken van alle Google API's. Voor kritieke functies (bijvoorbeeld betaling via Google Pay) moet de controle verplicht zijn — zonder Play Services kan de app de betaling niet verwerken.
Play Core — is een Google Play Services-bibliotheek voor het beheren van app-modules, runtime-updates en het downloaden van extra bronnen. Play Core maakt implementatie van Dynamic Delivery mogelijk — levering van app-modules op verzoek: de gebruiker downloadt de basisapp en extra functies (bijvoorbeeld de beheermodule of Premium-inhoud) worden alleen gedownload wanneer de gebruiker het bijbehorende scherm voor het eerst opent.
Modulaire levering van Google Play Services via Play Core vermindert de initiële installatiegrootte van de app met 30-50%. Dit is vooral belangrijk voor markten met langzaam internet — volgens Google Play Console vermindert elke 10 MB de installatieconversie met 1%. Play Core SDK vereist Android 5.0 (API 21) en Google Play Services 21.0.0+. Belangrijk: na het downloaden van een module kan deze niet worden verwijderd, alleen de hele app kan worden bijgewerkt.
// Module op verzoek laden via Play Core
val manager = SplitInstallManagerFactory.create(context)
val request = SplitInstallRequest
.Builder()
.addModule("premium")
.build()
manager.startInstall(request)
.addOnSuccessListener {
Log.d("Split", "Premium-module geladen")
}Migratie naar Play Core vereist een wijziging van de app-architectuur: functionaliteit wordt opgedeeld in on-demand modules in Android Studio, en Gradle bouwt elke module als een aparte APK. Google Play Store maakt vervolgens een APK Set (Android App Bundle) en levert alleen de basis-APK aan de gebruiker. Play Core ondersteunt ook in-app updates — de gebruiker kan de app van binnenuit updaten zonder naar Play Store te gaan. Tegen 2026 gebruikt ongeveer 70% van de apps in Google Play Android App Bundle en Play Core.
Veelgestelde vragen
Als u Google Play Services verwijdert, stoppen alle Google-diensten met werken: Google Maps, Google Sign-In, FCM-pushmeldingen, Google Pay, Play Integrity. Apps die deze API's gebruiken, zullen fouten tonen of crashen. Op de meeste apparaten kunnen Play Services niet met standaardmiddelen worden verwijderd — alleen worden uitgeschakeld in de instellingen.
Google Play Services worden automatisch bijgewerkt via Play Store. Voor handmatig bijwerken: open Play Store → Mijn apps en games → zoek Google Play Services → Bijwerken. Als de update niet beschikbaar is, download dan de APK van de nieuwste versie van APKMirror (alleen voor ervaren gebruikers). Automatische updates vinden meestal plaats binnen 2 weken na de release.
De minimaal ondersteunde versie is Android 4.4 KitKat (API 19). Sommige modules (bijv. Credential Manager) vereisen echter Android 6.0 (API 23) of hoger. Voor moderne ontwikkeling raadt Google aan om te richten op Android 14 (API 34) en Play Services versie 21.0.0+ te gebruiken. Verouderde apparaten op Android 4.4 krijgen alleen kritieke Play Services-updates.
Ja, Firebase SDK kan zonder Google Play Services werken op apparaten zonder GMS. Firebase Authentication, Realtime Database, Firestore, Cloud Functions en Hosting hebben geen Play Services nodig. Firebase Cloud Messaging (FCM) kan het directe HTTP-protocol gebruiken in plaats van GMS. Firebase Crashlytics en Performance Monitoring hebben echter Play Services nodig voor gegevensverzameling.
De basis-APK van Google Play Services neemt ongeveer 80-120 MB in beslag in de systeempartitie. Extra modules (kaarten, auth, location) worden op verzoek geladen en kunnen 10-50 MB toevoegen. Ter vergelijking: Apple Push Notification Service in iOS neemt ongeveer 5 MB in beslag. Ondanks de grootte beïnvloeden Play Services de beschikbare opslagruimte van de gebruiker niet — ze bevinden zich in de systeempartitie.
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