Google Play Services: essens, komponenter och Android-utveckling

Författare: IT Sectr Publicerad: 2026-04-30 Lästid: 11 min

Google Play Services — är ett lager av Googles systemtjänster på Android som säkerställer att alla Googles appar och API:er fungerar: från Google Maps till Firebase och Google Sign-In. Play Services fungerar som ett separat APK-paket som automatiskt uppdateras via Google Play Store, oberoende av Android-firmwareuppdateringar. Enligt data från Android Developers, 2025 är Google Play Services installerade på 99.8% av alla aktiva Android-enheter och omfattar över 50 separata moduler.

Huvudpunkter

  • Google Play Services — systemlager av Google-tjänster för Android, uppdateras separat från operativsystemet
  • Automatisk uppdatering — Play Services uppdateras via Play Store oberoende av tillverkarens firmware
  • Moduler — över 50 komponenter: Maps, Auth, Ads, Wallet, Location, SafetyNet och andra
  • API-nivå — Play Services tillgängliga från Android 2.3 (API 9), de flesta moduler från API 14+
  • Google Mobile Services — GMS-paketet inkluderar Play Services plus Googles appar (Chrome, Gmail, YouTube)

Vad är Google Play Services?

Google Play Services — är ett proprietärt lager av Googles tjänster som körs ovanför operativsystemet Android. Till skillnad från AOSP (Android Open Source Project), som endast innehåller grundläggande bibliotek, tillhandahåller Play Services API:er för integration med Googles ekosystem: kartor, geolokalisering, autentisering, push-notiser, annonser och betalningar. Play Services installeras som en systemapp med förhöjda privilegier och har tillgång till API:er som inte är tillgängliga för vanliga appar.

Den viktigaste skillnaden mellan Google Play Services och standard Android-bibliotek — möjligheten att uppdateras via Play Store. Om Google släpper en ny version av Maps SDK eller Auth API, får användaren uppdateringen via Play Services utan att vänta på en OTA-uppdatering från tillverkaren. Detta löser fragmenteringsproblemet för Android — enligt Statista (2025) kör cirka 40% av Android-enheterna på OS-versioner äldre än 3 år, men Play Services är uppdaterade till senaste versionen på 85% av enheterna.

Google Play Services är inte en del av Android Open Source Project och är inte tillgängliga på enheter utan Google-licens (t.ex. Huawei efter 2019). För appar som körs på enheter utan GMS rekommenderar Google att använda Firebase SDK med plattformsoberoende stöd eller att byta till alternativa lösningar (Huawei Mobile Services).

Arkitektur och komponenter i Play Services

Arkitekturen för Google Play Services är uppbyggd som en uppsättning oberoende moduler (APK-paket), där var och en ansvarar för sin egen funktionalitet. Huvud-APK:n (com.google.android.gms) innehåller tjänsternas kärna och cirka 50 ytterligare moduler som laddas på begäran. Användarprocessen kallas Google Play Services-processen och körs i bakgrunden med hög prioritet.

Varje modul i Google Play Services har sin egen version och sitt eget API. Utvecklaren ansluter endast nödvändiga moduler via build.gradle, vilket minskar appens storlek. Till exempel för Google Sign-In krävs com.google.android.gms:play-services-auth, för Google Maps — play-services-maps. Google Play Services löser automatiskt beroenden mellan moduler och laddar saknade komponenter.

KomponentGradle-paketFunktionalitet
Authplay-services-authGoogle Sign-In, Credential Manager, ID Token
Mapsplay-services-mapsGoogle Maps SDK kartrendering, kamera
Locationplay-services-locationFusedLocationProvider, geozoner, Activity Recognition
Adsplay-services-adsGoogle Mobile Ads, AdMob, Ad Manager
Walletplay-services-walletGoogle Pay, Passes, betalnings-API
SafetyNetplay-services-safetynetEnhetskontroll, reCAPTCHA, attestering

Interaktion via AIDL

Interaktion mellan appen och Play Services sker via AIDL (Android Interface Definition Language). Appen anropar SDK-metoder, SDK skickar IPC-förfrågningar till Google Play Services-processen, som utför det faktiska arbetet (nätverksförfrågningar till Googles servrar, arbete med GPS, kryptografi). Play Services-processen är isolerad från appen — om den kraschar fortsätter appen att fungera.

Mekanism för automatisk uppdatering och versionshantering

Google Play Services uppdateras automatiskt via Google Play Store — användaren får en ny version i bakgrunden utan bekräftelse. Uppdateringar distribueras i faser (staged rollout): först till 1% av enheterna, sedan till 10%, 50% och 100%. Om ett kritiskt fel upptäcks i den nya versionen kan Google återställa uppdateringen till en stabil version inom 24 timmar.

Versionen av Google Play Services kodas med två nummer: APK-version (t.ex. 25.15.32) och SDK-version (t.ex. 12.8.0). För utvecklaren är det viktigt att kontrollera Play Services-versionen på enheten via GoogleApiAvailability — om användaren har stängt av automatisk uppdatering eller använder anpassad firmware kan versionen vara föråldrad. Enligt Google är den genomsnittliga Play Services-versionen på aktiva enheter inte äldre än 6 månader.

kotlin
// Kontrollera versionen av Google Play Services på enheten
val availability = GoogleApiAvailability.getInstance()
val resultCode = availability.isGooglePlayServicesAvailable(context)

when (resultCode) {
    ConnectionResult.SUCCESS ->
        Log.d("GMS", "Google Play Services tillgängliga")

    ConnectionResult.SERVICE_MISSING,
    ConnectionResult.SERVICE_VERSION_UPDATE_REQUIRED -> {
        // Visa uppdateringsdialogrutan
        availability.showErrorDialogFragment(
            activity, resultCode, REQUEST_CODE
        )
    }
}

Versionsproblem: om Google Play Services är avstängda (användaren stängde av dem manuellt i inställningarna) slutar alla Google API:er att fungera. Appen bör kontrollera tillgängligheten av Play Services före varje Google API-anrop och visa ett tydligt meddelande för användaren med en knapp för att gå till inställningarna eller ladda ner Play Services. Google tillhandahåller en felmeddelandedialog via showErrorDialogFragment som automatiskt leder till Play Store.

Nyckelmoduler och deras syfte

Google Play Services Auth — autentiseringsmodulen, som tillhandahåller Google Sign-In, Credential Manager och Smart Lock för lösenord. Sedan 2024 rekommenderar Google Credential Manager som ett enhetligt API för alla typer av autentisering. Google Play Services Maps — rendering av Google Maps, geokodning, Places API och rutter. Location — Fused Location Provider, som kombinerar GPS, Wi-Fi och mobildata för exakt positionsbestämning med minimal strömförbrukning.

Play Integrity API: ersättning för SafetyNet

Modulen Google Play Services Wallet stöder Google Pay för betalningar i appar och på webbplatser, samt Google Passes (lojalitetsprogram, boardingkort, biljetter). SafetyNet (ersätts av Play Integrity API) — kontroll av enhetens integritet: root-åtkomst, anpassad firmware, emulator. Play Integrity API (rekommenderas från 2024) — mer exakt kontroll: device integrity (integritet), app integrity (signatur), account integrity (Google-konto).

kotlin
// Platsförfrågan 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()
    )
}

Modulen Google Play Services Awareness — kombinerat API som förenar data om plats, tid, väder, användaraktivitet och anslutna hörlurar. Awareness API gör att appen kan reagera på sammanhanget: till exempel aktivera tyst läge när användaren är på jobbet eller visa en notis om regn innan användaren går ut. API tillgängligt från Play Services 16.0.0.

Integration av Google Play Services i Android-projekt

Integration av Google Play Services i ett Android-projekt utförs genom att lägga till beroenden i build.gradle på applikationsnivå. Google rekommenderar att använda separata modulära beroenden, inte det allmänna play-services-all-paketet, för att minska APK-storleken. Minsta version av Play Services SDK — 21.0.0 (motsvarar Android 14), men de flesta moduler stöder API 19+.

För integration krävs konfiguration av Google Services Gradle Plugin och filen google-services.json, som laddas ner från Firebase Console. JSON-filen innehåller projektidentifierare, API-nycklar och Client ID för OAuth. Utan google-services.json kan de flesta Play Services-moduler inte auktorisera på Googles servrar. Om projektet inte använder Firebase räcker det att lägga till en API-nyckel i AndroidManifest.xml.

groovy
// build.gradle (projektnivå)
buildscript {
    dependencies {
        classpath "com.google.gms:google-services:4.4.2"
    }
}

// build.gradle (appnivå)
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"
}

En viktig nyans: olika Google Play Services-moduler kan kräva olika versioner av varandra. Om en modul kräver play-services-basement version 18.0.0 och en annan 18.1.0, löser Gradle konflikten till förmån för den högre versionen. Det rekommenderas att använda en enhetlig version för alla moduler via en variabel: ext.playServicesVersion = '21.2.0'. Google Play Services är också beroende av compileSdk-versionen — för version 21.0.0 krävs compileSdk 34+.

Android-enheter utan Google Play Services

Enheter utan Google Play Services (Huawei, Honor, vissa kinesiska märken) kan inte använda API:erna som tillhandahålls av GMS. För sådana enheter rekommenderar Google Firebase SDK, som innehåller plattformsoberoende bibliotek som fungerar utan Play Services. Firebase Authentication använder REST API direkt, Firebase Realtime Database — WebSocket-anslutning, Firebase Cloud Messaging — eget protokoll.

Ett alternativt tillvägagångssätt — att använda Huawei Mobile Services (HMS), som tillhandahåller liknande API:er: Huawei Maps Kit, Location Kit, Push Kit. För att stödja båda typerna av enheter implementerar utvecklare ett abstraktionslager som vid start upptäcker närvaron av GMS eller HMS och ansluter motsvarande SDK. Enligt Counterpoint Research (2025) utgör andelen enheter utan GMS cirka 5% av den globala Android-marknaden.

kotlin
// Kontrollera förekomst av GMS på enheten
fun isGmsAvailable(): Boolean {
    return try {
        GoogleApiAvailability.getInstance()
            .isGooglePlayServicesAvailable(context) ==
            ConnectionResult.SUCCESS
    } catch (e: Exception) {
        false
    }
}

// Abstraktionslager för GMS/HMS
interface PushService {
    fun getToken(): String
}

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

Abstraktionslager för GMS och HMS

För appar som körs på enheter utan GMS är det avgörande att testa alla funktioner som använder Google API. Play Services returnerar felkoden SERVICE_MISSING om tjänsten inte hittas. Graceful degradation rekommenderas: om Google Sign-In inte är tillgängligt, erbjud inloggning via e-post; om Google Maps inte är tillgängliga, visa en WebView med Yandex Maps eller OpenStreetMap. Huawei AppGallery publicerar cirka 15% av alla Android-appar i världen.

Kodexempel: kontrollera och uppdatera Play Services

Fullständigt exempel på kontroll av tillgängligheten för Google Play Services och hantering av alla möjliga tillstånd: tjänsten tillgänglig, uppdatering krävs, tjänsten avstängd, tjänsten saknas. Koden använder GoogleApiAvailability för kontrollen och showErrorDialogFragment för att visa standarddialogrutan från Google med navigering till 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()
    }
}

Det rekommenderas att kontrollera tillgängligheten av Google Play Services vid varje appstart, inte bara vid den första. Användaren kan stänga av Play Services i inställningarna efter att ha installerat appen, vilket leder till att alla Google API:er slutar fungera. För kritiska funktioner (t.ex. betalning via Google Pay) måste kontrollen vara obligatorisk — utan Play Services kan appen inte behandla betalningen.

Migrering till Play Core och Modular Delivery

Play Core — är ett Google Play Services-bibliotek för hantering av appmoduler, uppdateringar under körning och nedladdning av ytterligare resurser. Play Core möjliggör implementering av Dynamic Delivery — leverans av appmoduler på begäran: användaren laddar ner basappen och ytterligare funktioner (t.ex. administrationsmodul eller Premium-innehåll) laddas endast ner när användaren för första gången öppnar motsvarande skärm.

Modulär leverans av Google Play Services via Play Core minskar appens initiala installationsstorlek med 30-50%. Detta är särskilt viktigt för marknader med långsamt internet — enligt Google Play Console minskar varje 10 MB installationskonverteringen med 1%. Play Core SDK kräver Android 5.0 (API 21) och Google Play Services 21.0.0+. Viktigt: efter nedladdning av en modul kan den inte tas bort, endast hela appen kan uppdateras.

kotlin
// Ladda modul på begäran via Play Core
val manager = SplitInstallManagerFactory.create(context)
val request = SplitInstallRequest
    .Builder()
    .addModule("premium")
    .build()

manager.startInstall(request)
    .addOnSuccessListener {
        Log.d("Split", "Premium-modul laddad")
    }

Migrering till Play Core kräver en förändring av appens arkitektur: funktionalitet delas upp i on-demand-moduler i Android Studio och Gradle bygger varje modul som en separat APK. Google Play Store skapar sedan en APK Set (Android App Bundle) och levererar endast bas-APK:n till användaren. Play Core stöder också in-app updates — användaren kan uppdatera appen inifrån utan att gå till Play Store. Till 2026 använder cirka 70% av apparna i Google Play Android App Bundle och Play Core.

Vanliga frågor

Vad händer om jag tar bort Google Play Services på Android?

Om du tar bort Google Play Services slutar alla Google-tjänster att fungera: Google Maps, Google Sign-In, FCM-pushnotiser, Google Pay, Play Integrity. Appar som använder dessa API:er kommer att visa fel eller krascha. På de flesta enheter kan Play Services inte tas bort med standardmetoder — endast stängas av i inställningarna.

Hur uppdaterar jag Google Play Services manuellt?

Google Play Services uppdateras automatiskt via Play Store. För manuell uppdatering: öppna Play Store → Mina appar och spel → hitta Google Play Services → Uppdatera. Om uppdateringen inte är tillgänglig, ladda ner APK för den senaste versionen från APKMirror (endast för erfarna användare). Automatisk uppdatering sker vanligtvis inom 2 veckor efter lansering.

Vilken är den lägsta Android-versionen för Google Play Services?

Den lägsta version som stöds är Android 4.4 KitKat (API 19). Vissa moduler (t.ex. Credential Manager) kräver dock Android 6.0 (API 23) eller högre. För modern utveckling rekommenderar Google att rikta in sig på Android 14 (API 34) och använda Play Services version 21.0.0+. Föråldrade enheter på Android 4.4 får endast kritiska Play Services-uppdateringar.

Kan jag använda Firebase utan Google Play Services?

Ja, Firebase SDK kan fungera utan Google Play Services på enheter utan GMS. Firebase Authentication, Realtime Database, Firestore, Cloud Functions och Hosting kräver inte Play Services. Firebase Cloud Messaging (FCM) kan använda direkt HTTP-protokoll istället för GMS. Firebase Crashlytics och Performance Monitoring kräver dock Play Services för datainsamling.

Hur stor är APK:n för Google Play Services?

Grund-APK:n för Google Play Services tar cirka 80-120 MB i systempartitionen. Ytterligare moduler (kartor, auth, location) laddas på begäran och kan lägga till 10-50 MB. Som jämförelse: Apple Push Notification Service i iOS tar cirka 5 MB. Trots storleken påverkar Play Services inte användarens tillgängliga lagringsutrymme — de finns i systempartitionen.

Sammanfattning

  • Google Play Services — systemlager av Google-tjänster som säkerställer funktionen för Maps, Auth, Ads, Location och andra API:er
  • Automatisk uppdatering — Play Services uppdateras via Play Store oberoende av firmware, löser fragmenteringsproblemet
  • Moduler — över 50 oberoende komponenter, anslutna via separata Gradle-beroenden
  • Kontroll — GoogleApiAvailability gör det möjligt att bestämma Play Services-versionen och föreslå en uppdatering till användaren
  • Enheter utan GMS — Huawei och andra märken använder HMS; Firebase SDK stöder arbete utan Play Services
  • Play Core — bibliotek för modulär leverans, uppdateringar i appen och dynamisk laddning av funktionalitet
  • Play Integrity API — modern ersättning för SafetyNet för kontroll av enhets- och appintegritet

Vi utvecklar en mobil applikation nyckelfärdigt

IT Sectr skapar iOS- och Android-applikationer för startups och företag sedan 2017. Vi ger dig råd och föreslår den bästa lösningen.

Diskutera projektet

Läs också