¿Android admite notificaciones push casi en tiempo real?

Resuelto j pimmel asked hace 55 años • 16 respuestas

Recientemente me enteré de la capacidad de las aplicaciones de iPhone para recibir notificaciones casi instantáneas a aplicaciones .

Esto se proporciona en forma de notificaciones automáticas, un protocolo personalizado que mantiene una conexión de datos siempre activa al iPhone y mensajes de paquetes binarios a la aplicación, que muestra alertas increíblemente rápido, entre 0,5 y 5 segundos desde que la aplicación del servidor se envía a la aplicación del teléfono. tiempo de respuesta. Esto se envía como datos, en lugar de SMS, en paquetes muy pequeños que se cobran como parte del plan de datos, no como mensajes entrantes.

Me gustaría saber si, al usar Android, existe una función similar o si es posible implementar algo parecido usando las API de Android. Para aclarar, defino similar como:

  • No es un mensaje SMS, sino una solución basada en datos
  • Lo más en tiempo real posible
  • Es escalable, es decir, como parte del servidor de una aplicación móvil, podría notificar miles de instancias de aplicaciones en segundos.

Aprecio que la aplicación pueda estar basada en extracción, estilo de solicitud/respuesta HTTP, pero idealmente no quiero realizar tantas encuestas solo para verificar las notificaciones; Además de lo cual es como si el plan de datos se agotara por goteo.

j pimmel avatar Jan 01 '70 08:01 j pimmel
Aceptado

Las preguntas frecuentes de Firebase Cloud Messaging FCM son la nueva versión de GCM. Hereda la infraestructura central de GCM para entregar mensajes de manera confiable en Android, iOS y Chrome. Sin embargo, seguirán admitiendo GCM porque muchos desarrolladores utilizan hoy en día los SDK de GCM para gestionar las notificaciones y la actualización de la aplicación cliente lleva tiempo.

Desde el 26 de junio de 2012, Google Cloud Messaging es la forma preferida de enviar mensajes a aplicaciones que se ejecutan en dispositivos.

Anteriormente (y ahora obsoleto), el servicio se llamaba Cloud To Device Messaging .

j pimmel avatar May 28 '2010 17:05 j pimmel

XMPP es una buena solución. Lo he usado para una aplicación de Android en tiempo real y habilitada para push. XMPP es potente, altamente extensible y fácil de integrar y usar.

Hay muchos servidores XMPP gratuitos (aunque por cortesía no debes abusar de ellos) y hay servidores de código abierto que puedes ejecutar en uno de tus propios equipos. OpenFire es una excelente opción.

La biblioteca que desea no es Smack como se indicó anteriormente, es aSmack . Pero tenga en cuenta que este es un entorno de compilación: tendrá que crear la biblioteca.

Este es un cálculo que hice sobre el impacto en la duración de la batería de una solución XMPP:

El cliente de Android debe mantener una conexión TCP persistente despertándose periódicamente para enviar un latido al servidor XMPP.
Esto claramente impone un costo en términos de uso de energía. A continuación se proporciona una estimación de este costo:

  • Usando una batería de 1400 mAh (como la que se suministra en Nexus One y HTC Desire)
  • Un dispositivo inactivo, conectado a una red 3G, utiliza aproximadamente 5 mA
  • El ciclo de despertar, latido del corazón y sueño ocurre cada 5 minutos, tarda tres segundos en completarse y utiliza 300 mA.
  • El coste en uso de batería por hora es por tanto:
    • 36 segundos 300 mA = 3 mAh enviando latidos
    • 3600 segundos 5 mA = 5 mAh en reposo
    • 4:95 + 3 = 7:95 mAh combinados
  • Una batería de 1400 mAh dura aproximadamente 11,6 días en inactivo y 7,3 días cuando se ejecuta la aplicación, lo que representa una reducción aproximada del 37 % en la duración de la batería.
  • Sin embargo, una reducción de la duración de la batería del 37% representa el peor de los casos en la práctica, dado que los dispositivos rara vez están completamente inactivos.
flesh avatar Apr 17 '2011 19:04 flesh