¿Android? Conozcamos mejor al “robot verde”

Android es un sistema operativo diseñado para smartphones, tablets, relojes, TVs, automóviles y otros dispositivos inteligentes, originalmente desarrollado por la empresa Android Inc., pasando luego a manos de Google a partir del año 2005 y hasta la actualidad.

android_robot

Al contrario de otros sistemas operativos móviles, como iOS o Windows Phone, Android se desarrolla de forma abierta (open source). Esto significa que podemos acceder tanto al código fuente del sistema como también a su listado de errores reportados.

Desde sus comienzos comerciales (allá por fines del año 2008) hasta hoy, Android ha ido “mutando” y adoptando diferentes versiones, en las cuales se fueron agregando  funcionalidades nuevas, mejoras y corrección de errores para ofrecernos cada vez mejores experiencias de usuario. Una particularidad llamativa es que esas versiones y sub-versiones recibían nombres de dulces y postres, ordenados alfabéticamente a medida que se liberaban. Así, la primera versión comercial de Android (1.0) se conoció como Apple Pie (Tarta de manzana), la segunda (1.1) fue Banana Bread (Pan de banana), pasando luego por Cupcake (1.5), Donut (1.6), Eclair (2.0 – 2.1), Froyo (2.2), Gingerbread (2.3), Honeycomb (3.0 – 3.1 – 3.2), Ice Cream Sandwich (4.0), Jelly Bean (4.1 – 4.2 – 4.3), KitKat (4.4), Lollipop (5.0 – 5.1), Marshmallow (6.0, que es la última versión estable al día de hoy 2016) y su más reciente versión aún no liberada oficialmente, Nougat (7.0).

versiones_android

Ya hablando en términos del sistema en sí, si hacemos una “disección” de Android, en su corazón nos vamos a encontrar con un Kernel de Linux.  Es decir, con millones de líneas de código encargadas de realizar tareas de bajo nivel, como la gestión de la memoria RAM, de los procesos y de los controladores del hardware del dispositivo (cámara, micrófono, pantalla, etc.).

En un nivel superior al kernel, existen diferentes Librerías, donde se concentran las funcionalidades que tienen que ver con el renderizado de gráficos, almacenamiento de datos, navegación web, entre otras. En esta capa también tenemos un Runtime, que contiene el entorno de ejecución (máquinas virtuales) donde corren las aplicaciones.

En el siguiente nivel se encuentra el Framework de aplicaciones, en el cual Android gestiona los distintos componentes de las aplicaciones (a través de Activity Managers, Location Managers, etc.).

Por último, tenemos el nivel superior o capa de Aplicaciones, compuesta por las diferentes aplicaciones propias de Android y las aplicaciones instaladas por el usuario.

Desarrollo de aplicaciones y Android SDK

Las aplicaciones de Android son desarrolladas con el lenguaje de programación Java. Aunque también es posible utilizar C o C++ como lenguajes de desarrollo, a través de Android NDK o frameworks como Xamarín, que permiten utilizar el lenguaje C#.

Una aplicación de Android se compone, en esencia, de tres tipos de archivos:

  • Código Java.
  • Un archivo especial, xml, que contiene información sobre nuestra app que es relevante para el sistema Android.
  • Diversos recursos: layouts, imágenes, estilos y colores, texto, etc.android_desarrollo

El desarrollo de aplicaciones de Android es facilitado a través un conjunto o kit de herramientas y librerías llamado SDK de Android (SDK, por sus siglas en inglés, significa Software Development Kit), el cual permite desarrollar, compilar, depurar y probar nuestras aplicaciones de Android.

El SDK de Android está diseñado modularmente para ofrecernos una serie de plataformas y paquetes, que podemos descargar e instalar de forma individual, a través de una herramienta conocida como SDK Manager.

De forma resumida, los componentes más importantes que conforman el SDK son:

  • android_studio_1SDK Platforms para cada API level. Por API level se entiende un conjunto de funcionalidades y características de Android, que están “listas” para usar en nuestras aplicaciones. Cada API level se corresponde con una única versión de Android y viceversa.
  • Documentación para cada API level.
  • Herramientas de compilación y depuración de aplicaciones.
  • Emulador de Android y gestor de emuladores para testear nuestras aplicaciones en diferentes versiones y dispositivos.

El Android SDK se distribuye gratuitamente por Google y se obtiene como parte del entorno de desarrollo integrado (IDE, por sus siglas en inglés) oficial: Android Studio. Este último nos facilita muchas tareas que tienen que ver con el desarrollo de aplicaciones, ofreciéndonos varias ventajas, como un editor de código inteligente, compilación de código robusto y flexible, visualización instantánea de los cambios realizados en apps mientras las mismas se ejecutan, creación y gestión de dispositivos virtuales de Android (AVDs), entre otras.

Autor Mauricio Camacho- Testing de Fx2

 

Enlaces de interés

https://developer.android.com/index.html

https://developer.android.com/studio/command-line/index.html

https://developer.android.com/studio/index.html