headless applications

21
Headless Applications Joel Ortíz Diciembre 06 de 2013

Upload: joel-ortiz

Post on 12-Jun-2015

698 views

Category:

Technology


1 download

TRANSCRIPT

Page 1: Headless Applications

Headless Applications

Joel OrtízDiciembre 06 de 2013

Page 2: Headless Applications

Joel Ortíz

BlackBerry Elite Member & Community Manager

Adobe Certified Instructor, Expert & Adobe Community Manager

Active BlackBerry Alliance Partner

StarWars FanBoy

2

Page 3: Headless Applications

¿Qué es una Headless App?

Es una aplicación que corre por detrás sobre el OS BlackBerry 10.

A diferencia las aplicaciones convencionales con una UI y un Active Frame asociado, las Headless App no están bajo el control directo de un usuario.

3

Page 4: Headless Applications

Tipos de Headless App

Short-running Apps: este tipo de aplicaciones no requiere estar corriendo todo el tiempo, comúnmente son disparadas por un evento durante corto tiempo. Estas aplicaciones pueden ser por ejemplo: notificaciones push, receptores de mensajes SMS, downloaders (para suscripciones de podcasts o revistas) o trackers de localización.

Long-running Apps: este tipo de aplicaciones comúnmente corren por un periodo largo de tiempo para monitorear cierta actividad en el dispositivo como podrían ser clientes de mensajería instantánea, loggers de actividad, etc.

4

Page 5: Headless Applications

¿Cómo funcionan?

Ambos tipos de Headless App usan disparadores de eventos (triggers). Un trigger es simplemente un evento que ejecuta la aplicación. Como mencionamos anteriormente este evento podrías ser un mensaje SMS, un cambio de ubicación, etc.

Una vez disparada la Headless App puede funcionar como una aplicación short-running o long-running dependiendo la tarea que se desee realizar para controlar el evento.

5

Page 6: Headless Applications

¿Cómo se crean?

Solo se requieren de dos partes: UI Headless

Modificar los puntos de entrada Solicitar permiso del usuario Usar Invocation Framework para habilitar que la aplicación sea

disparada cuando el evento ocurre.

6

Page 7: Headless Applications

Proceso de una Headless App

7

Page 8: Headless Applications

Application Life Cycle

Page 9: Headless Applications

Ciclo de vida

Las Headless App pueden ser iniciadas o detenidas basandose en la disponibilidad de los recursos. Si el dispositivo BlackBerry 10 esta agotando los recursos del sistema como la batería o RAM, la aplicación recibe un mensaje de stop y da tiempo para guardar su estado y cerrarse.

Cuando se están agotando los recursos del dispositivo, se detienen los procesos dependiendo de su importancia. Los procesos críticos son considerados los más importantes y procesos de detenido son los menos importantes para el usuario.

9

Page 10: Headless Applications

Niveles de importancia

Critical: procesos que deben ejecutarse en todo momento (procesos del sistema)

Foreground: procesos que corren en primer plano Background: procesos que corren de fondo Stop: procesos que se cargan a la RAM

10

Page 11: Headless Applications

Application Life Cycle

Page 12: Headless Applications

Niveles de importancia

Por default, las Headless App pueden ocupar solo 3 MB de memoria. Este limite solo aplica para la parte Headless de la aplicación, la parte de interfaz de usuario puede ocupar más de 3 MB de memoria. Esta cantidad de memoria debe ser suficiente para la mayoría de Headless App porque la parte Headless no incluye activos.

El CPU que se asigna a una Headless App es entre 7% y un 25% cuando se ejecuta en segundo plano. Algo importante acerca de la asignación de CPU es que la parte de Headless recibe una cantidad limitada de tiempo en comparación con una aplicación normal.

Operaciones o cálculos de larga duración no deben ser realizados en la parte Headless.

12

Page 13: Headless Applications

Performance y batería

Las Headless App deben funcionar durante poco tiempo como sea posible para minimizar el consumo de batería y optimizar el rendimiento del dispositivo.

Por default la duración cada vez que se invoca (activa) tiene una duración de 20 segundos, sin embargo por medio de permisos adicionales (_sys_headless_nostop) puede ampliarse ese tiempo de duración inclusive determinarlo como indefinido.

13

Page 14: Headless Applications

Handling Notifications

Page 15: Headless Applications

Notification service

Cuando una Headless App requiere informar de un evento disparado al usuario dependiendo la configuración, la aplicación pueden enviar una notificación.

Debido a que no pueden tener UIs asociadas en primer plano de forma directa, las Headless App usan el Notification Service para realizar esas notificaciones.

Reproducir audio, vibración del dispositivo, notificaciones en BlackBerry HUB y previsualizaciones instantáneas son parte de los tipos de notificaciones que se pueden emplear.

15

Page 16: Headless Applications

Notification service

16

Page 17: Headless Applications

Communicating Between th UI and Headless Parts

Page 18: Headless Applications

Interprocess Comunication Technique

Se puede emplear ICT para comunicar las partes Headless con la parte UI de su aplicación. Invocation Framework Local Sockets (comunicación en tiempo real) QSettings and file monitoring (comunicación persistente)

Se puede emplear una de las técnicas anteriores o combinarlas según la necesidad de su aplicación

18

Page 19: Headless Applications

Closing Headless App

Page 20: Headless Applications

Cerrando la aplicación

El usuario puede cerrar una Headless App desde: Settings -> App Manager -> Device Monitor -> {name app} -> CPU -> Stop

Siempre hay que considerar que las Headless App se pueden ejecutar por default por un tiempo de 20 segundos, por lo que podemos detener la aplicación antes de haber culminado el tiempo.

La parte de UI puede consultar para determinar si se esta ejecutanto la parte Headless y enviar una Signal para indicar que se debe cerrar la parte Headless.

Para aplicaciones Long-running debe considerarse a conciencia para ahorrar bateria o CPU

20

Page 21: Headless Applications

Gracias por su atención

¿Preguntas?@[email protected]