Google Play Services, Android'deki Google sistem hizmetlerinin bir katmanıdır ve Google Maps'ten Firebase'e ve Google Sign-In'e kadar tüm Google uygulamalarını ve API'lerini çalıştırır. Play Services, Android donanım yazılımı güncellemelerinden bağımsız olarak Google Play Store aracılığıyla otomatik olarak güncellenen ayrı bir APK paketi olarak çalışır. Android Developers, 2025'e göre, Google Play Services aktif Android cihazların %99,8'inde yüklüdür ve 50'den fazla ayrı modül içerir.
Önemli Noktalar
Google Play Services, Android işletim sistemi üzerinde çalışan tescilli bir Google hizmetleri katmanıdır. Yalnızca temel kitaplıkları içeren AOSP'nin (Android Açık Kaynak Projesi) aksine, Play Services Google ekosistemiyle entegrasyon için API'ler sağlar: haritalar, coğrafi konum, kimlik doğrulama, push bildirimleri, reklamcılık ve ödemeler. Play Services, yükseltilmiş ayrıcalıklara sahip bir sistem uygulaması olarak kurulur ve normal uygulamalar için kullanılamayan API'lere erişime sahiptir.
Google Play Services ile standart Android kitaplıkları arasındaki temel fark, Play Store aracılığıyla güncelleme yeteneğidir. Google, Maps SDK veya Auth API'nin yeni bir sürümünü yayınladığında, kullanıcı üreticiden bir OTA donanım yazılımı güncellemesi beklemeden Play Services aracılığıyla güncellemeyi alır. Bu, Android parçalanma sorununu çözer — Statista (2025)'ye göre, Android cihazların yaklaşık %40'ı 3 yıldan eski işletim sistemi sürümlerinde çalışır, ancak Play Services cihazların %85'inde en son sürüme güncellenmiştir.
Google Play Services, Android Açık Kaynak Projesi'nin bir parçası değildir ve Google lisansı olmayan cihazlarda (örneğin, 2019'dan sonra Huawei) kullanılamaz. GMS'siz cihazlarda çalışan uygulamalar için Google, çapraz platform desteğine sahip Firebase SDK'yı kullanmayı veya alternatif çözümlere (Huawei Mobile Services) geçmeyi önerir.
Google Play Services mimarisi, her biri kendi işlevselliğinden sorumlu bağımsız modüller (APK paketleri) kümesi olarak oluşturulmuştur. Ana APK (com.google.android.gms), temel hizmetleri ve isteğe bağlı olarak yüklenen yaklaşık 50 ek modül içerir. Kullanıcı süreci Google Play Services process olarak adlandırılır ve yükseltilmiş öncelikle arka planda çalışır.
Her Google Play Services modülünün kendi sürümü ve API'si vardır. Geliştirici, build.gradle aracılığıyla yalnızca gerekli modülleri bağlayarak uygulama boyutunu azaltır. Örneğin, Google Sign-In com.google.android.gms:play-services-auth gerektirir, Google Maps play-services-maps gerektirir. Google Play Services, modüller arasındaki bağımlılıkları otomatik olarak çözer ve eksik bileşenleri yükler.
| Bileşen | Gradle Paketi | İşlevsellik |
|---|---|---|
| Auth | play-services-auth | Google Sign-In, Credential Manager, ID Token |
| Maps | play-services-maps | Google Maps SDK harita oluşturma, kamera |
| Location | play-services-location | FusedLocationProvider, coğrafi çitler, Activity Recognition |
| Ads | play-services-ads | Google Mobile Ads, AdMob, Ad Manager |
| Wallet | play-services-wallet | Google Pay, Passes, ödeme API'si |
| SafetyNet | play-services-safetynet | Cihaz doğrulama, reCAPTCHA, tasdik |
Uygulama ve Play Services arasındaki etkileşim, AIDL (Android Arayüz Tanımlama Dili) aracılığıyla gerçekleşir. Uygulama SDK yöntemlerini çağırır, SDK Google Play Services sürecine IPC istekleri gönderir ve süreç gerçek işi yapar (Google sunucularına ağ istekleri, GPS ile çalışma, kriptografi). Play Services süreci uygulamadan yalıtılmıştır — çökerse uygulama çalışmaya devam eder.
Google Play Services, Google Play Store aracılığıyla otomatik olarak güncellenir — kullanıcı onay gerektirmeden arka planda yeni bir sürüm alır. Güncellemeler aşamalı olarak yayınlanır (aşamalı kullanıma sunma): önce cihazların %1'ine, ardından %10, %50 ve %100'üne. Yeni sürümde kritik bir hata bulunursa, Google 24 saat içinde güncellemeyi kararlı bir sürüme geri alabilir.
Google Play Services sürümü iki sayıyla kodlanır: APK sürümü (örneğin, 25.15.32) ve SDK sürümü (örneğin, 12.8.0). Geliştirici, GoogleApiAvailability aracılığıyla cihazdaki Play Services sürümünü kontrol etmelidir — kullanıcı otomatik güncellemeleri devre dışı bıraktıysa veya özel bir ROM kullanıyorsa sürüm güncel olmayabilir. Google'a göre, aktif cihazlardaki ortalama Play Services sürümü 6 aydan daha eski değildir.
// Cihazda Google Play Services sürümünü kontrol etme
val availability = GoogleApiAvailability.getInstance()
val resultCode = availability.isGooglePlayServicesAvailable(context)
when (resultCode) {
ConnectionResult.SUCCESS ->
Log.d("GMS", "Google Play Services kullanılabilir")
ConnectionResult.SERVICE_MISSING,
ConnectionResult.SERVICE_VERSION_UPDATE_REQUIRED -> {
// Güncelleme iletişim kutusunu göster
availability.showErrorDialogFragment(
activity, resultCode, REQUEST_CODE
)
}
}Sürüm sorunları: Google Play Services devre dışı bırakılırsa (kullanıcı ayarlardan manuel olarak devre dışı bıraktıysa), tüm Google API'leri çalışmayı durdurur. Uygulama, her Google API çağrısından önce Play Services kullanılabilirliğini kontrol etmeli ve kullanıcıya ayarlara gitme veya Play Services'i indirme düğmesiyle net bir mesaj göstermelidir. Google, showErrorDialogFragment aracılığıyla otomatik olarak Play Store'a yönlendiren bir hata iletişim kutusu sağlar.
Google Play Services Auth, Google Sign-In, Credential Manager ve Smart Lock for Passwords sağlayan bir kimlik doğrulama modülüdür. 2024'ten itibaren Google, tüm kimlik doğrulama türleri için birleşik bir API olarak Credential Manager'ı önermektedir. Google Play Services Maps, Google harita oluşturma, coğrafi kodlama, Places API ve yönlendirme sağlar. Location, minimum güç tüketimiyle hassas konum belirleme için GPS, Wi-Fi ve hücresel verileri birleştiren Fused Location Provider sağlar.
Google Play Services Wallet modülü, uygulamalarda ve web sitelerinde ödemeler için Google Pay'i ve Google Passes'i (sadakat kartları, biniş kartları, biletler) destekler. SafetyNet (Play Integrity API ile değiştiriliyor) — cihaz bütünlüğü kontrolü: root erişimi, özel ROM, emülatör. Play Integrity API (2024'ten itibaren önerilen) daha doğru doğrulama sağlar: cihaz bütünlüğü, uygulama bütünlüğü (imza), hesap bütünlüğü (Google hesabı).
// FusedLocationProvider ile konum isteme
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 modülü, konum, zaman, hava durumu, kullanıcı etkinliği ve bağlı kulaklıklar hakkındaki verileri birleştiren birleşik bir API'dir. Awareness API, uygulamanın bağlama tepki vermesini sağlar: örneğin, kullanıcı işteyken sessiz modu etkinleştirmek veya dışarı çıkmadan önce yağmur bildirimi göstermek. API, Play Services 16.0.0'dan itibaren kullanılabilir.
Google Play Services'in bir Android projesine entegrasyonu, uygulama düzeyindeki build.gradle'e bağımlılıklar eklenerek yapılır. Google, APK boyutunu azaltmak için genel play-services-all paketi yerine bireysel modül bağımlılıklarının kullanılmasını önerir. Minimum Play Services SDK sürümü 21.0.0'dır (Android 14'e karşılık gelir), ancak çoğu modül API 19+'yı destekler.
Entegrasyon, Google Services Gradle Plugin'inin ve Firebase Console'dan indirilen google-services.json dosyasının ayarlanmasını gerektirir. JSON dosyası, proje tanımlayıcılarını, API anahtarlarını ve OAuth için Client ID'yi içerir. google-services.json olmadan, çoğu Play Services modülü Google sunucularında kimlik doğrulaması yapamaz. Proje Firebase kullanmıyorsa, AndroidManifest.xml'e bir API anahtarı eklemek yeterlidir.
// build.gradle (proje düzeyi)
buildscript {
dependencies {
classpath "com.google.gms:google-services:4.4.2"
}
}
// build.gradle (uygulama düzeyi)
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"
}Önemli bir nüans: farklı Google Play Services modülleri birbirlerinin farklı sürümlerini gerektirebilir. Bir modül play-services-basement sürüm 18.0.0 gerektiriyorsa ve diğeri 18.1.0 gerektiriyorsa, Gradle çakışmayı yüksek sürüm lehine çözer. Tüm modüller için bir değişken aracılığıyla tek bir sürüm kullanılması önerilir: ext.playServicesVersion = '21.2.0'. Google Play Services ayrıca compileSdk sürümüne de bağlıdır — sürüm 21.0.0, compileSdk 34+ gerektirir.
Google Play Services olmayan cihazlar (Huawei, Honor, bazı Çin markaları) GMS tarafından sağlanan API'leri kullanamaz. Bu tür cihazlar için Google, Play Services olmadan çalışan çapraz platform kitaplıkları içeren Firebase SDK'yı önerir. Firebase Authentication doğrudan REST API'sini kullanır, Firebase Realtime Database WebSocket bağlantılarını kullanır, Firebase Cloud Messaging kendi protokolünü kullanır.
Alternatif bir yaklaşım, benzer API'ler (Huawei Maps Kit, Location Kit, Push Kit) sağlayan Huawei Mobile Services (HMS)'i kullanmaktır. Her iki cihaz türünü desteklemek için geliştiriciler, başlangıçta GMS veya HMS kullanılabilirliğini algılayan ve uygun SDK'yı bağlayan soyut bir katman uygular. Counterpoint Research (2025)'e göre, GMS'siz cihazlar küresel Android pazarının yaklaşık %5'ini oluşturur.
// Cihazda GMS kullanılabilirliğini kontrol etme
fun isGmsAvailable(): Boolean {
return try {
GoogleApiAvailability.getInstance()
.isGooglePlayServicesAvailable(context) ==
ConnectionResult.SUCCESS
} catch (e: Exception) {
false
}
}
// GMS/HMS için soyut katman
interface PushService {
fun getToken(): String
}
class GmsPushService : PushService {
override fun getToken() =
FirebaseMessaging.getInstance().token.await()
}GMS'siz cihazlarda çalışan uygulamalar için, Google API'lerini kullanan tüm işlevleri test etmek kritik öneme sahiptir. Play Services, hizmet bulunamazsa SERVICE_MISSING hatası döndürür. Zarif düşüş önerilir: Google Sign-In kullanılamıyorsa, e-posta ile giriş sunun; Google Maps kullanılamıyorsa, Yandex.Maps veya OpenStreetMap ile bir WebView gösterin. Huawei AppGallery, dünyadaki tüm Android uygulamalarının yaklaşık %15'ini yayınlar.
Google Play Services kullanılabilirliğini kontrol etme ve tüm olası durumları (hizmet kullanılabilir, güncelleme gerekli, hizmet devre dışı, hizmet mevcut değil) yönetme konusunda eksiksiz bir örnek. Kod, kontrol için GoogleApiAvailability'yi ve Play Store'a yönlendiren Google'ın standart iletişim kutusunu göstermek için showErrorDialogFragment'ı kullanır.
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 kullanılabilirliğinin yalnızca ilk kez değil, her uygulama başlatıldığında kontrol edilmesi önerilir. Kullanıcı, uygulamayı yükledikten sonra ayarlardan Play Services'i devre dışı bırakabilir ve bu da tüm Google API'lerini bozar. Kritik işlevler için (örneğin, Google Pay ödemeleri), kontrol zorunlu olmalıdır — Play Services olmadan uygulama ödemeleri işleyemez.
Play Core, uygulama modüllerini, çalışma zamanı güncellemelerini ve ek kaynakların indirilmesini yönetmek için bir Google Play Services kitaplığıdır. Play Core, Dynamic Delivery'yi etkinleştirir — uygulama modüllerinin isteğe bağlı teslimi: kullanıcı temel uygulamayı indirir ve ek özellikler (örneğin, bir yönetim modülü veya Premium içerik) yalnızca kullanıcı ilgili ekranı ilk kez açtığında indirilir.
Google Play Services Play Core aracılığıyla modüler teslimat, ilk uygulama kurulum boyutunu %30-50 oranında azaltır. Bu, özellikle yavaş interneti olan pazarlar için önemlidir — Google Play Console'a göre, her 10 MB kurulum dönüşümünü %1 azaltır. Play Core SDK, Android 5.0 (API 21) ve Google Play Services 21.0.0+ gerektirir. Önemli: bir modül indirildikten sonra silinemez, yalnızca tam bir uygulama güncellemesiyle güncellenebilir.
// Play Core aracılığıyla isteğe bağlı modül yükleme
val manager = SplitInstallManagerFactory.create(context)
val request = SplitInstallRequest
.Builder()
.addModule("premium")
.build()
manager.startInstall(request)
.addOnSuccessListener {
Log.d("Split", "Premium modül yüklendi")
}Play Core'a geçiş, uygulama mimarisinde değişiklik gerektirir: işlevsellik Android Studio'da isteğe bağlı modüllere bölünür ve Gradle her modülü ayrı bir APK olarak oluşturur. Google Play Store daha sonra bir APK Set (Android App Bundle) oluşturur ve kullanıcıya yalnızca temel APK'yı teslim eder. Play Core ayrıca uygulama içi güncellemeleri de destekler — kullanıcı Play Store'a gitmeden uygulamayı güncelleyebilir. 2026 yılına kadar Google Play'deki uygulamaların yaklaşık %70'i Android App Bundle ve Play Core kullanıyor.
Sıkça Sorulan Sorular
Google Play Services'i silerseniz, tüm Google hizmetleri (Google Maps, Google Sign-In, FCM push bildirimleri, Google Pay, Play Integrity) çalışmayı durdurur. Bu API'leri kullanan uygulamalar hata gösterir veya çöker. Çoğu cihazda Play Services standart yöntemlerle silinemez — yalnızca ayarlardan devre dışı bırakılabilir.
Google Play Services Play Store aracılığıyla otomatik olarak güncellenir. Manuel güncelleme için: Play Store'u açın → Uygulamalarım ve oyunlarım → Google Play Services'i bulun → Güncelleyin. Güncelleme mevcut değilse, APKMirror'dan en son sürümün APK'sını indirin (yalnızca ileri düzey kullanıcılar için). Otomatik güncellemeler genellikle yayından sonraki 2 hafta içinde gerçekleşir.
Desteklenen minimum sürüm Android 4.4 KitKat (API 19)'dur. Ancak bazı modüller (örneğin, Credential Manager) Android 6.0 (API 23) veya üstünü gerektirir. Modern geliştirme için Google, Android 14'ü (API 34) hedeflemeyi ve Play Services sürüm 21.0.0+ kullanmayı önerir. Android 4.4'teki eski cihazlar yalnızca kritik Play Services güncellemelerini alır.
Evet, Firebase SDK, GMS'siz cihazlarda Google Play Services olmadan çalışabilir. Firebase Authentication, Realtime Database, Firestore, Cloud Functions ve Hosting, Play Services gerektirmez. Firebase Cloud Messaging (FCM), GMS yerine doğrudan HTTP protokolünü kullanabilir. Ancak Firebase Crashlytics ve Performance Monitoring, veri toplama için Play Services gerektirir.
Temel Google Play Services APK'sı sistem bölümünde yaklaşık 80-120 MB yer kaplar. Ek modüller (haritalar, auth, location) isteğe bağlı olarak indirilir ve 10-50 MB ekleyebilir. Karşılaştırma için: iOS'ta Apple Push Notification Service yaklaşık 5 MB yer kaplar. Boyutuna rağmen Play Services, kullanıcının kullanılabilir depolama alanını etkilemez — sistem bölümünde bulunurlar.
Özet
Anahtar teslim bir mobil uygulama geliştireceğiz
IT Sectr, 2017'den beri girişimler ve işletmeler için iOS ve Android uygulamaları oluşturmaktadır. Size danışmanlık yapacak ve en iyi çözümü önereceğiz.
Ayrıca okuyun