Google, push bildirim özelliklerini nasıl uyguladı? Arka planda veya farklı bir şekilde çalışan bir servis tarafından yapılan yoklama ile çalışıyor mu?
Google, push bildirim özelliklerini nasıl uyguladı? Arka planda veya farklı bir şekilde çalışan bir servis tarafından yapılan yoklama ile çalışıyor mu?
Yanıtlar:
İsrail'deki bir Android geliştiricileri konferansında duyduklarımdan:
Bir bulut Google sunucusunda kabul modunda bekleyen bir TCP soketi vardır . TCP bağlantısı Google Play uygulaması tarafından başlatılmıştı. Google Cloud Messaging (GCM) (eski adıyla Android Cloud to Device Messaging Service - C2DM ) uygulamasını çalıştırmak için Google Play'in cihaza yüklenmesi gerekir .
Bu TCP istemci soketi bir ileti aldığında, iletide ele alınması gereken uygulamanın paket adı ve elbette verilerin kendisi gibi bilgiler bulunur. Bu veri ayrıştırılır ve bir içine doludur niyet yayın ve sonunda uygulama tarafından alınmasını.
TCP soketi, cihazın radyo durumu "boşta" moduna geçse bile açık kalır. Amaçları almak için uygulamaların çalışması gerekmez.
Daha fazla bilgi için http://developer.android.com/google/gcm/gcm.html
Android, Google sunucularına bir etkin bağlantı tutar, ancak çok fazla güç veya veri kullanmaz, çünkü bir şey telefonunuzdaki bir uygulamaya bir Google Cloud Messaging (GCM) mesajı gönderene kadar boyunca trafik gönderilmez. Telefonda tüm uygulamalar tarafından kullanılan tek bir bağlantı var: GCM kullanan yeni bir uygulama yüklemek fazladan yük eklemez.
GCM'deki ilk adım, üçüncü taraf bir sunucunun (e-posta sunucusu gibi) Google'ın GCM sunucusuna bir istek göndermesidir. Bu sunucu daha sonra mesajı bu açık bağlantı üzerinden cihazınıza gönderir. Android sistemi hangi uygulama için olduğunu belirlemek için mesaja bakar ve bu uygulamayı başlatır. Uygulamanın GCM'yi kullanmak için Android'e kayıtlı olması ve ilgili izne sahip olması gerekir. Uygulama başladığında, iletideki verilerle hemen bir bildirim oluşturabilir. GCM mesajlarının boyutu çok sınırlıdır, bu nedenle uygulama daha fazla bilgi almak için üçüncü taraf sunucuyla normal bir bağlantı açabilir (örneğin, yeni e-postaların başlıklarını indirme).
Anlık bildirimleri kullanmanın avantajı, uygulamaların yeni verileri kontrol etmek için düzenli aralıklarla çalışması gerekmemesi ve hem güç hem de veri tasarrufu sağlamasıdır. GCM gibi merkezi bir mekanizmaya sahip olmanın avantajı, cihazın yalnızca bir açık ağ bağlantısına ihtiyaç duyması ve Android GCM sisteminin, kendi ağını korumak için her uygulamanın arka planda çalışmaya devam etmesi yerine, çalışmaya devam etmesi gereken tek şey olmasıdır. kendi sunucusuna bağlantı.
Uzun bir yoklama tcp bağlantısı ile android üzerinde push bildirimini kendiniz uygulayabilirsiniz. Ancak bu, ekstra bir soket => pil tüketimini sürdürmeyi içerir. Veya Alarm Yöneticisi'ni kullanarak düzenli aralıklarla bağlantı açabilirsiniz.
Google muhtemelen tüm C2DM push bildirimleri için bir yuva açar, bu nedenle pilden daha verimlidir.
10 Nisan 2018 itibarıyla Google, GCM'yi kullanımdan kaldırmıştır. GCM sunucusu ve istemci API'ları kullanımdan kaldırıldı ve 11 Nisan 2019'dan kısa bir süre sonra kaldırılacak. GCM uygulamalarını, güvenilir ve ölçeklenebilir GCM altyapısını ve birçok yeni özelliği devralan Firebase Cloud Messaging'e (FCM) taşıyın.
Android cihazlarda, push bildirimleri aldığınızda, gönderen uygulamanın görüntüsü ve bir mesaj durum çubuğunda görünür. Tam olarak müşteri bildirime dokunduğunda uygulamaya iner.