Tengo curiosidad acerca de cómo Android es capaz de enviar notificaciones. He instalado aplicaciones como Gmail, Google+, Whatsapp, Twitter, etc., ¿cómo funciona Android saber cuando hay nuevos mensajes, whatsapp mensaje o Tweet? Es esto algo que es manejado por Android o la aplicación que se está ejecutando?
Respuesta
¿Demasiados anuncios?Es un sistema muy astuto llamado "Notificaciones Push".
Cómo funciona
En un dispositivo Android que se mantenga una conexión activa a los servidores de Google. Esta es una pequeña conexión, utilizando muy poca cantidad de datos y de alimentación. Las notificaciones se envían desde desarrolladores de aplicaciones de servidores, dicen en Twitter o en Facebook, correos electrónicos, etc. a los servidores de Google. El dispositivo Android, a continuación, verá que la notificación y la descarga.
Acabo de encontrar una mejor explicación en Stackoverflow. La buena explicación de cómo funciona se puede encontrar aquí. (He aquí una cita de la primera respuesta, a pesar de responder a dos es más fácil de entender):
No es simplemente un socket TCP espera en modo aceptar en un servidor de Google en la nube. La conexión TCP se había iniciado en el de las Gafas de aplicación de Juego. Es por eso que Google Play debe estar instalado en el dispositivo para la fabricación de Google Cloud Messaging (GCM) (anteriormente Android Cloud to Device Messaging Service - C2DM) de trabajo.
Cuando esta TCP socket de cliente recibe un mensaje, el mensaje contiene información tal como el nombre del paquete de la aplicación debe ser dirigida, y por supuesto - a los datos en sí. Esta información se analiza y se empaquetan en un intento de que se transmite y, finalmente, recibido por la aplicación.
El socket TCP permanece abierta, incluso cuando el dispositivo de radio del estado se convierte en "idle" de modo. Las aplicaciones no tienen que estar en ejecución para recibir las intenciones.
¿Por qué el uso de las notificaciones push son útiles
El efecto de tener una sola conexión abierta significa dos cosas importantes:
En primer lugar, el dispositivo utiliza menos datos y el ancho de banda de la conexión a todos los servidores de terceros.
En segundo lugar, se utiliza menos energía, ya que las aplicaciones no tienen que ser abierto en segundo plano para comprobar las notificaciones, como todo es manejado por una sola aplicación de fondo.