Android es un sistema operativo basado en Linux, mayoritariamente utilizado en dispositivos móviles. La distribución de Android también incluye aplicaciones esenciales y un middleware.El SDK de Android permite el desarrollo de aplicaciones utilizando Java como lenguaje de programación, también incluye diferentes herramientas de desarrollo que permiten, entre otras muchas utilidades: probar las aplicaciones en diferentes versiones de Android mediante un simulador, realizar depuración de código y acceder a los terminales físicos.
En el año 2005 Google adquirió la empresa Android Inc. desarrollador original de Android. Recientemente se ha lanzado la versión 4.2 que incluye nuevas funcionalidades como poder realizar fotografías en 360 grados , soporte multiusuario, soporte nativo a la conexión con televisores de forma inalámbrica, etc. Como curiosidad indicar que las versiones de Android son denominadas con nombres de postres:
- versión 1.5: Cupcake
- versión 1.6: Donut
- versión 2.0 / 2.1: Éclair
- versión 2.2: Froyo
- versión 2.3: Gingebread
- versión 3.0: Honeycomb
- versión 4.0: Ice Cream Sandwich
- versión 4.1/4.2: Jelly Bean
La arquitectura de Android está compuesta de las siguientes capas:
- Kernel de Linux: está basado en la versión 2.6 del kernel de Linux.
- Bibliotecas: Incluyen gestores de vistas, biblioteca 3D, SGL, marco multimedia, FreeType, SSL, SQLite, WebKit, biblioteca de sistema C, etc.
- Android Runtime: Formado por bibliotecas del núcleo equivalentes al API estándar de Java y Davlik que es equivalente a la maquina virtual de Java.
- Framework de aplicaciones: Son componentes reutilizables por la capa de aplicaciones.
- Aplicaciones: Conjunto de aplicaciones base, aplicaciones de terceros, widgets y aplicaciones nativas.
De la experiencia que nos dan nuestros desarrollos en Android podemos extraer que sus puntos fuertes son:
- Rápida adaptación de profesionales J2EE. Esto es debido a que el lenguaje de programación de aplicaciones es Java y el IDE de desarrollo recomendado es Eclipse. Solamente es necesario asimilar los conceptos específicos de la programación Android como Actividad, Notificaciones, etc.
- Mercado amplio y en expansión.
- Amplia comunidad de desarrolladores.
- En constante evolución.
- Respaldo de grandes compañías del sector: Open Handset Alliance (OHA) con Google a la cabeza.
Los puntos débiles son:
- Conviven demasiadas versiones instaladas al mismo tiempo en el mercado (fragmentación) debido a:
– Se liberan versiones con demasiada frecuencia.
– La personalización por parte de los fabricantes frena las actualizaciones.
- Incompatibilidad entre versiones: Dificultad para cubrir un alto porcentaje de las versiones instaladas en el mercado. Si se utilizan funcionalidades de API de las últimas versiones no serán compatibles con muchos dispositivos del mercado que usan APIs anteriores.
- Necesidad de multitud de pruebas, debido a la gran cantidad de dispositivos, tamaños y densidades de pantalla.
- Inmadurez en paquetes de código generados por la comunidad poco robustos al ser muy recientes y no haber sido depurados todos los errores.
- Diferentes comportamientos del mismo software provocado por la evolución de las versiones que realizan cambios estructurales en los cambios de versión.
Para Alvantia Android es una apuesta de futuro, pues consideramos que el futuro está en los dispositivos móviles. También creemos firmemente en el modelo Open Source en el que está basado, y que ya hace años impulsó el desarrollo de Java, pues facilita que Android sea un producto vivo impulsado por un gran número de desarrolladores que comparten código y ponen su experiencia a disposición de la creciente comunidad de desarrolladores.