studio notificaciones estado enviar barra activar android push-notification polling

estado - ¿Cómo funciona la tecnología de notificaciones push en Android?



notificaciones push android studio php (4)

¿Cómo ha implementado Google su función de notificación push? ¿Funciona a través de sondeos realizados por un servicio que se ejecuta en segundo plano o de una manera diferente?


Android mantiene una conexión activa con los servidores de Google, pero no usa mucha energía ni datos, porque no se envía tráfico a través de él hasta que algo envía un mensaje GCM a una aplicación en su teléfono. Solo hay una conexión en el teléfono, utilizada por todas las aplicaciones: la instalación de una nueva aplicación que utiliza GCM no agrega ninguna carga adicional.

El primer paso en GCM es que un servidor de terceros (como un servidor de correo electrónico) envía una solicitud al servidor GCM de Google. Este servidor luego envía el mensaje a su dispositivo, a través de esa conexión abierta. El sistema Android mira el mensaje para determinar para qué aplicación es e inicia esa aplicación. La aplicación debe haberse registrado en Android para usar GCM, y debe tener el permiso correspondiente. Cuando se inicia la aplicación, puede crear una notificación de inmediato con los datos del mensaje. Los mensajes de GCM tienen un tamaño muy limitado, por lo que la aplicación podría abrir una conexión normal al servidor de terceros para obtener más información (por ejemplo, descargar los encabezados de correos electrónicos nuevos).

La ventaja de utilizar notificaciones push es que las aplicaciones no tienen que ejecutarse a intervalos regulares para verificar si hay nuevos datos, lo que ahorra energía y datos. La ventaja de tener un mecanismo centralizado como GCM es que el dispositivo solo necesita una conexión de red abierta y el sistema Android GCM es lo único que necesita para seguir funcionando, en lugar de que cada aplicación tenga que seguir ejecutándose en segundo plano para mantener su propia red conexión a su propio servidor.

Tomó esto de: Source También vea http://developer.android.com/google/gcm/gcm.html .


Por lo que he escuchado durante una conferencia de desarrolladores de Android en Israel:

Simplemente hay un socket TCP esperando en modo de aceptación en un servidor de Google en la nube. La conexión de TCP había sido iniciada por la aplicación Google Play. Es por eso que Google Play debe estar instalado en el dispositivo para que Google Cloud Messaging (GCM) (anteriormente, el servicio de mensajería de nube a dispositivo Android - C2DM ) funcione.

Cuando este socket de cliente TCP recibe algún mensaje, el mensaje contiene información como el nombre del paquete de la aplicación a la que debe dirigirse y, por supuesto, los datos en sí. Estos datos se analizan y se empaquetan en un intent que se transmite y, finalmente, recibe la aplicación.

El socket TCP permanece abierto incluso cuando el estado de la radio del dispositivo cambia al modo "inactivo". Las aplicaciones no tienen que estar ejecutándose para recibir los intentos.

Más información en http://developer.android.com/google/gcm/gcm.html


Sí tienes razón. Google tenía un servicio (GTalk Service) y este servicio le preguntó a los servidores de Google en algunos períodos de tiempo.


Puede implementar la notificación push en android usted mismo con una larga conexión de tcp de sondeo. Pero eso implicaría mantener un socket adicional => drenaje de la batería. O puede abrir una conexión a intervalos regulares usando el Administrador de alarmas.

Google probablemente abre un socket para todas las notificaciones push C2DM, por lo tanto, es más eficiente en cuanto a la batería.