Comment fonctionne la technologie de notification push sur Android?

comment Google a-t-il implémenté sa fonction de notification push? Elle fonctionne à l'aide de sondages effectués par un service en cours d'exécution en arrière-plan ou d'une manière différente?

165
demandé sur Dan Dascalescu 2012-07-16 20:34:28

4 réponses

D'après ce que j'ai entendu lors d'une conférence de développeurs Android en Israël:

il y a simplement une socket TCP qui attend en accept mode sur un serveur cloud Google. La connexion TCP avait été initiée par L'application Google Play. C'est pourquoi Google Play doit être installé sur le périphérique pour faire Google Cloud Messaging (GCM) (anciennement Android Cloud to Device Messaging Service - C2DM ) travail.

lorsque cette socket client TCP reçoit un message, le message contient des informations telles que le nom du paquet de l'application auquel il doit être adressé, et bien sûr - les données elles-mêmes. Ces données sont analysées et regroupées dans un intention qui est diffusé et éventuellement reçu par la demande.

la socket TCP reste ouverte même lorsque l'état radio de l'appareil se transforme en mode" ralenti". Les Applications ne doivent pas être course pour recevoir les intentions.

plus d'information à http://developer.android.com/google/gcm/gcm.html

136
répondu Tal Kanel 2017-01-13 16:34:07

Android conserve une connexion active aux serveurs de Google, mais il n'utilise pas beaucoup de puissance ou de données, parce qu'aucun trafic est envoyé le long de celui-ci jusqu'à ce que quelque chose envoie un message de messagerie Cloud de Google (GCM) à une application sur votre téléphone. Il n'y a qu'une connexion sur le téléphone, utilisée par toutes les applications: l'installation d'une nouvelle application qui utilise GCM n'ajoute aucune charge supplémentaire.

la première étape de GCM est qu'un serveur tiers (tel qu'un serveur de messagerie) envoie une requête au serveur GCM de Google. Ce serveur envoie ensuite le message à votre appareil, via cette connexion ouverte. Le système Android regarde le message pour déterminer l'application qui c'est, et démarre l'application. L'application doit avoir enregistré avec Android pour utiliser GCM, et il doit avoir l'autorisation pertinente. Lorsque l'application démarre, il peut créer une notification immédiatement avec les données du message. GCM messages sont très limités en taille, de sorte que l'application puisse ouvrir une connexion au serveur tiers pour obtenir plus d' information (par exemple, Télécharger les en-têtes des nouveaux courriels).

l'avantage d'utiliser les notifications push est que les applications n'ont pas à exécuter à intervalles réguliers pour vérifier de nouvelles données, en enregistrant à la fois la puissance et les données. L'avantage d'avoir un mécanisme centralisé comme GCM est que l'appareil n'a besoin que d'une connexion réseau ouverte et le système GCM Android est la seule chose qui doit continuer à fonctionner, plutôt que chaque application doit rester en cours d'exécution en arrière-plan pour garder sa propre connexion réseau à son propre serveur.

extrait de: Source Voir aussi ici .

126
répondu Aniket Thakur 2018-08-11 16:26:17

vous pouvez implémenter la notification push sur android vous-même avec une longue connexion tcp polling. Mais cela impliquerait le maintien d'une prise supplémentaire => vidange de la batterie. Ou vous pouvez ouvrir une connexion à intervalles réguliers en utilisant le Gestionnaire D'alarme.

Google ouvre probablement une socket pour toutes les notifications C2DM push, d'où son plus efficace de la batterie.

8
répondu Shreesh 2012-09-07 13:32:15

Oui, vous avez raison. Google avait un service (Gtalk Service) et ce service demandé des serveurs Google dans certaines périodes de temps.

1
répondu Yury 2013-02-15 11:13:38