Vous êtes sur la page 1sur 7

Application Framework (AF), Entonces, qu os parece que un S.

O os permita crear aplicaciones haciendo uso de soporte Web (HTML5, CSS, JavaScript), en modo nativo (C/C++) o de un modo hbrido (Web & Nativo)? Pues que os debe de parecer, pues genial, y al fin y a la postre cuantas ms posibilidades tengamos, ms posibilidades para hacer llegar a los dems nuestra creatividad, verdad?. Y todo esto se consigue gracias al Application Framework (AF), que es quien proporciona toda la funcionalidad para empaquetar, lanzar y administrar una aplicacin Tizen, y cuyo aspecto es el siguiente:

El AF tambin nos permite lanzar otras aplicaciones usando su nombre de paquete, URI o MIME type, pero adems tambin se encarga de ejecutar servicios predefinidos (como el system dialer) o notificar al resto de aplicaciones en ejecucin de eventos comunes, como estado bajo de memoria, baja batera, cambios en la orientacin de la pantalla o notificaciones push. La figura nos muestra que el AF tiene dos elementos clave: el AppCore y la AUL. Ciclo de Vida de la Aplicacin (AppCore) De las cajitas anteriores el AppCore es el que gestiona el ciclo de vida la aplicacin y los eventos del sistema, es decir, es quien controla la creacin, reseteo, pausado, reanudacin y terminacin de las aplicaciones, y proporciona los manipuladores para los eventos de sistema que deca antes (como que tengamos poca memoria). Fijaros, que el AppCore, se asienta sobre otro elemento denominado RUA, que se encarga de gestionar las aplicaciones recientemente utilizadas (Recently Used Application).

Cuando una aplicacin se arranca por el AppCore, la historia que va a seguir puede verse resumida en el siguiente grfico:

El significado de cada una de las cajas anteriores es el siguiente:

CREATE Se llama inmediatamente despus de que la aplicacin ha sido lanzada. Se encarga de inicializar la aplicacin y crea una ventana para la misma, reserva memoria para las estructuras de datos, etc. RESET Se ejecuta en cada solicitud de lanzamiento o relanzamiento de la aplicacin. PAUSE Se ejecuta cuando la ventana de la aplicacin es invisible para el usuario. Las tareas de una aplicacin pueden ser suspendidas en el estado de pausa. RESUME En este estado se entra cuando la ventana de la aplicacin vuelve a ser visible otra vez. Las tareas pausadas de una aplicacin pueden ser reanudadas de nuevo. TERMINATE Se llama despus de la finalizacin del bucle principal de ejecucin de la aplicacin. En l, la aplicacin termina.

Cuando se entra en cada estas cajas, la aplicacin cambia su estado, ni que decir tiene que el motivo por el cual una aplicacin pasa de una caja a otra (o dicho de otro modo, pasa de un

estado a otro) se debe a la recepcin de diferentes tipos de eventos por parte de la misma. Los estados asociados son los siguientes:

Cuando la aplicacin es lanzada por primera vez, pasa al estado de READY para pasar a continuacin al estado CREATED cuando se el evento de creacin es llamado. La aplicacin se inicializa en el estado CREATED y una vez realizada esta inicializacin, se entra en el bucle principal de ejecucin (en donde la aplicacin realiza la funcin para la cual ha sido programada) y queda en el estado de RUNNING, para recibir las entradas por parte del usuario y los eventos. En este estado va a permanecer dependientdo del administrador de ventanas y del reto de peticiones de lanzamiento de aplicaciones, y en este caso la aplicacin puede pasar al estado de PAUSED o RESUMED segn corresponda. Finalmente el estadoTERMINATED se alcanza cuando el evento de terminacin de la aplicacin se ejecuta, momento en el cual la aplicacin finaliza. Manipulacin de Eventos Otro elemento muy importante del Aplication Framework es el AUL (Application Utility Library), encargado de proporcionar los mecanismos necesarios para enviar / recibir las peticiones de lanzamiento y terminacin de las aplicaciones. La AUL funciona como un demonio y dispone de informacin sobre todas las aplicaciones en ejecucin. Su funcionamiento se resume en:

Como se aprecia por la figura, el demonio est al tanto de todas las peticiones que se realizan (launch, resume, terminate) y acta en consecuencia consultando la base de datos de

informacin de aplicacin, en el caso que la aplicacin ya haya sido lanzada, se realiza un resume de la misma, en caso contrario, si no est ejecutndose, se procede a su lanzamiento y a la actualizacin de las base de datos de informacin de aplicacin. En este esquema, es posible que dos aplicaciones quieran interactuar entre si, y para ello Tizen provee del Application Data Exchange (ADE) que mediante el intercambio de paquetes habilita tal posibilidad. La forma de hacerlo consiste en crear un paquete (bundle), aadirle informacin y hacer que una aplicacin (sender) se lo enve a otra destinataria (receiver). Los paquetes que se envan siempre funcionan siguiendo un esquema del tipo clave + valor. La siguiente figura ejemplifica este comportamiento muy bien:

Finalmente y por ir acabando, me gustara que os comience a sonar otra palabrota a la que ya dedicaremos ms tiempo, el Application Information Library o AIL es el ltimo de los elementos que est relacionado con el Application Framework, y sirve para aadir, actualizar o borrar informacin de la aplicacin, como puede ser su nombre, tipo, ruta al icono, etc. Si nos fijamos en la figura vemos que cuando una aplicacin se descarga y se almacena en el dispositivo, una peticin de instalacin es efectuada al administrador de paquetes (pkgmgr), el cual invoca al wrt-installer o Web Runtime Installer.

Y por hoy nada ms, en el prximo post hablaremos de como funciona el API de aplicaciones, lo que nos servir de base para ir conociendo los que hay disponibles y hacer aplicaciones que tengan un poco de gracia.
Hoy les traigo un pequea historia y muy breve introduccin a Tizen, uno de los sistemas operativos mviles que se prev que salga por parte de Samsung. La razn que lo hago, es porque su historia tiene mucho que ver con el mundo de Linux y adems es un sistema open source, de manera que nos interesa. Empecemos.

Como podemos observar, hay varios colaboradores de Tizen, y es ms bien un proyecto de muchos. Seguramente habris escuchado de MeeGo, aquel que quiso y no pudo ser, pero en fin, eso es otro tema. Los que trabajan directamente con Tizen son Intel y Samsung, y es un proyecto que forma parte de The Linux Foundation. Tambin podemos notar que existe Tizen IVI y Tizen Mobile. Por un lado, Automotive Grade Linux desarrolla Tizen IVI y, tal como dicen en su web oficial, su meta es proveer un SO libre para tener la mejor experiencia de aplicaciones digitales en un medio de transporte. En resumen, IVI significa In-Vehicle Infotainment, o quizs lo han visto como ICE (In-Car Entertainment), de manera que son SO orientados a la experiencia de usuario en un vehculo. Por ahora nos enfocaremos en Tizen Mobile, que es orientado a dispositivos mviles. Los que se relacionan directamente con Tizen, son Meego, GENIVI Alliance, Intel, Linux Foundation, LiMo Foundation y claramente Samsung. Solo para que no nos perdamos, vamos a echarle un vistazo a estas empresas, y vern desde donde viene Tizen. GENIVI Alliance es un conglomerado de empresas fundado en 2009 con el objetivo de hacer un sistema operativo basado en Linux que pudiera competir globalmente, algo as como Android, IOS o cualquiera de los que ya conocemos. LiMo Foundation es por sus siglas en ingls, Linux Mobile Foundation (Fundacin Linux Mvil), cuya implicacin no requiere explicacin. Supongo que el resto de empresas las conocern, cierto? Como aclaracin, Tizen no es la continuacin de MeeGo, ni tampoco de Bada, aunque incluye varios de sus elementos. Supongo que algunas de las cosas a continuacin les parecern conocidas, y como dije antes, tan solo es para conocer un poco este sistema operativo y no es a fondo. Segn la pgina oficial, el proyecto est pensado para smartphones, tablets, netbooks, dispositivos de vehculos y Smart TV's. En el caso de la versin para Smartphones, veremos una interfaz de usuario flexible y poderosa, efectos de ventanas 3D, capacidades de multitarea y multi-touch.

Tambin permite la aplicacin de herramientas de desarrollo basadas en las librerias javascript jQuery y jQuery Mobile. El SDK permite a los desarrolladores usar HTML5 y otras tecnologas web para escribir aplicaciones que pueden correr en cualquier dispositivo, propiamente en el dispositivo y sin depender de un navegador, muy parecido a FirefoxOS. Ahora, un punto interesante. Qu os parecera si digo que Tizen podra ser compatible con las aplicaciones de Android? Resulta que hay una empresa llamada OpenMobile que ha desarrollado una Capa de Compatibilidad de Aplicaciones o Application Compatibility Layer (ACL). Voy a tratar de traducir lo mejor posible una parte pequea de lo que dice en la hoja de datos para Tizen. ACL para Tizen ejecuta cada una de las aplicaciones de Android, sin excepcin. Por causa de que hace uso del ambiente del tiempo de ejecucin de Android y la mquina virtual Dalvik, corre cada aplicacin tal y como correra en un dispositivo Android. (Dalvik es la mquina virtual de Android. No es la mquina virtual de Java como se cree, pero un paquete incluido permite transformar los .class a archivos compatibles .dex) Debo admitir que eso es un punto a su favor, en muchos sentidos. Las aplicaciones son ms de la mitad del xito de un sistema operativo. Por cierto, he encontrado esta pgina, tizenspain.com, para quienes quieran ahondar un poco ms en Tizen.

Vous aimerez peut-être aussi