miércoles, 7 de septiembre de 2011

Android - Linux en la palma de tu mano

Repasamos un poco la historia de esta plataforma para telefonía celular creado en base a Linux.


Android Inc. es una empresa que se fundó en 2003 en Palo Alto, California. No se sabía mucho de ellos en esos días. Si, eran una compañía pequeña que hacía algo con teléfonos celulares: aplicaciones, softwares, cosas así. Pero en 2005 la cosa cambió, ya que el monstruo Google decidió comprar esa empresa, ya que estaban muy interesados en entrar en el mercado de los teléfonos móviles.

Así es como surgió el Android que conocemos: una plataforma basada en el kernel de Linux para telefonía celular que es, en este momento, una de las más flexibles y "amables" con el usuario.

La primera prueba se presentó en 2007, cuando la Open Handset Alliance (un consorcio de compañías tecnológicas, entre las que se destacan Samsung, Nvidia, LG, Motorola e Intel) se dedicó de lleno a desarrollar estándares abiertos para celulares. De allí salió el primer Android, construido en base a la versión 2.6 del kernel de Linux.

Esta prueba fue exitosa. Tanto que poco tiempo después, en dicembre de 2008, 14 nuevos miembros se unieron a Android, entre los que podemos nombrar a Garmin, Sony Ericcson, Toshiba y Vodafone, entre otros.

Arquitectura del programa (fuente: wikipedia)

- Aplicaciones
: las aplicaciones base incluyen un cliente de correo electrónico, programa de sms, calendario, mapas, navegador, contactos y otros. Todas las aplicaciones están escritas en lenguaje de programación Java.

- Marco de trabajo de aplicaciones
: los desarrolladores tienen acceso completo a los mismos APIs del framework usados por las aplicaciones base. La arquitectura está diseñada para simplificar la reutilización de componentes; cualquier aplicación puede publicar sus capacidades y cualquier otra aplicación puede luego hacer uso de esas capacidades (sujeto a reglas de seguridad del framework). Este mismo mecanismo permite que los componentes sean reemplazados por el usuario.

- Bibliotecas
: Android incluye un conjunto de bibliotecas de C/C++ usadas por varios componentes del sistema. Estas características se exponen a los desarrolladores a través del marco de trabajo de aplicaciones de Android; algunas son: System C library (implementación biblioteca C estándar), bibliotecas de medios, bibliotecas de gráficos, 3D y SQLite, entre otras.

- Runtime de Android
: Android incluye un set de bibliotecas base que proporcionan la mayor parte de las funciones disponibles en las bibliotecas base del lenguaje Java. Cada aplicación Android corre su propio proceso, con su propia instancia de la máquina virtual Dalvik. Dalvik ha sido escrito de forma que un dispositivo puede correr múltiples máquinas virtuales de forma eficiente. Dalvik ejecuta archivos en el formato Dalvik Executable (.dex), el cual está optimizado para memoria mínima. La Máquina Virtual está basada en registros y corre clases compiladas por el compilador de Java que han sido transformadas al formato .dex por la herramienta incluida "dx".

- Núcleo Linux
: Android depende de Linux para los servicios base del sistema como seguridad, gestión de memoria, gestión de procesos, pila de red y modelo de controladores. El núcleo también actúa como una capa de abstracción entre el hardware y el resto de la pila de software.

Si quieren saber más sobre Android, los invitamos al Android Bootcamp, una capacitación de 12 clases para que todos los que estén interesados en este mundo de la telefonía celular. Pueden anotarse aquí, ¡los esperamos!