Actualmente nuestro mundo se encuentra inmerso en la tecnología, principalmente en la telefonía móvil. Aunado a este fenómeno, nuestro entorno y sociedad han ido evolucionando, de tal manera que lo hemos incorporado a nuestra vida cotidiana. Junto con la telefonía móvil han llegado enormes beneficios que nos permiten ser más prácticos, eficientes y eficaces en nuestro día a día; los nuevos dispositivos móviles nos proporcionan una gran variedad de capacidades que antes solo nos ofrecía una computadora personal, lo que ha permitido tener acceso a la información por medio de Internet en cualquier lugar y momento.
Android es una plataforma para aplicaciones móviles, que ha tenido gran aceptación por los usuarios durante los últimos años. Actualmente es la alternativa más buscada respecto a sus competidores. Entre las características que lo destacan frente a otros sistemas operativos móviles, se pueden mencionar las siguientes:
Es una plataforma basada en el núcleo Linux y es de código abierto.
Se adapta a cualquier hardware lo que permite que además del teléfono móvil, pueda ser usado en otros dispositivos: tabletas, cámaras, televisores, electrodomésticos, entre otros.
La interfaz de usuario es escrita en XML, lo que proporciona el beneficio de visualizar una misma aplicación tanto en una pantalla reducida como en una de gran tamaño.
El producto final es desarrollado en Java, lo que permite que sean ejecutadas en cualquier procesador.
En el siguiente diagrama se presenta como está formada la arquitectura de Android, en la cual se puede observar que cada una de las capas que lo conforman están basadas en software libre.
Núcleo Linux: esta capa es la que permite el manejo de la memoria, el multiproceso, los controladores y la seguridad. Es la capa que funciona como el medio de abstracción entre el hardware y el resto de la pila.
Bibliotecas: en esta capa se encuentran un grupo de bibliotecas en C y C++, que son usadas en distintos componentes de Android. Algunas de las bibliotecas son: System C, Media Framework, Surface Manager, WebKit/Chromium, SGL, Bibliotecas 3D, FreeType, SQLite y SSL.
Runtime de Android: en esta capa se encuentra la máquina virtual Dalvik, creada especialmente para Android, basada en la máquina virtual de Java. Sin embargo a partir de la versión Lollipop utiliza la máquina virtual ART. También se encuentra el módulo Core Libraries que proporciona una gran cantidad de bibliotecas disponibles en Java.
Entorno de aplicación: en esta capa se encuentra la plataforma para aplicaciones, permite simplificar y reutilizar los componentes. Algunos de los servicios más importantes que proporciona son: Sistema de vistas, Manejador de notificaciones, Manejador de ventanas, Manejador de recursos, Content providers y Manejador de actividades.
Aplicaciones: finalmente en esta capa se encuentra el conjunto de aplicaciones instaladas en la máquina virtual de Android. Normalmente las aplicaciones son escritas en Java, aunque también se pueden utilizar otros lenguajes como C y C++, entre otros.
En la siguiente imagen se puede ver a grandes rasgos, la línea de tiempo de Android.
Dependiendo de la versión en que se desea desarrollar una aplicación, se deben tomar en cuenta sus servicios disponibles y limitaciones. Es recomendable hacer una breve investigación de lo que se puede y no se puede hacer con dicha versión. Para más información puedes visitar el sitio oficial de Android.