En este primer artículo nos adentraremos en algunos aspectos básicos sobre Android: presentación, historia y estructura principal.
Con este artículo comenzamos el Manual de Android básico, en el que vamos a introducirnos en el desarrollo de aplicaciones Java para Android. Veremos paso a paso los conocimientos fundamentales para comenzar a crear nuestras aplicaciones nativas, abordando gran cantidad de conceptos que se tienen que conocer para desarrollar aplicaciones móviles.
En esta primera introducción veremos Android con la perspectiva que nos da el analizarlo a través de su historia, corta pero intensa. Luego veremos las capas de aplicación o arquitectura para el desarrollo Android en Java. En futuros artículos nos pondremos algo más prácticos, pero es importante abordar primero estos asuntos para conseguir asentar las bases del conocimiento que vendrá más tarde.
¿Qué es Android?
La evolución de la tecnología va a paso veloz, Android es de las tecnologías que esta alcanzado a todos por el simple motivo de que se encuentra en los móviles. Android es un sistema operativo basado en Linux. La diferencia principal es que tiene módulos que responden a la pantalla táctil, eventos nativos del móvil. Se desarrolló por una compañía llamada Android, Inc. En 2005 Google adquiere la empresa para seguir trabajando en el mismo proyecto que después conociera la luz como un S.O. para móviles denominado finalmente como Android.
A finales de 2008 Septiembre-Octubre, sale a la venta el primer dispositivo móvil con Android.
Historia de Android
Android tiene una característica peculiar: las versiones tienen nombre de postres en inglés y cada versión que cambia, continúa de forma incremental en el alfabeto, es decir que si el primer nombre inicio con A, el siguiente con B, el siguiente C y así sucesivamente; ya veremos que sucede cuando lleguen a la Z.
Hasta el día de hoy, que comienzo a escribir el manual Android para Desarrolloweb.com, tenemos la versión 4.4 KitKat.
Demos un repaso a las Versiones.
Versión 1.0 Apple Pie - Salió en septiembre del 2008.
Versión 1.1 Banana Bread - Salió en febrero 2009.
Versión 1.5 Cup Cake - Salió en abril 2009
Versión 1.6 Donut - Salió en septiembre 2009
Versión 2.0 Eclair - Salio en octubre 2009
Versión 2.2 Froyo - Salió en mayo 2010
Versión 2.3 Gingerbread - Salió en diciembre 2010
Versión 3.0 Honeycomb - Salió en febrero 2011
Versión 4 .0 Ice Cream Sandwich - Salió en octubre 2011
Versión 4.1 Jelly Bean - Salió en julio 2012
Versión 4.4 KitKat - Salió en octubre 2013
Para más información, puedes consultar este enlace: http://www.android.com/versions/kit-kat-4-4/
Estructura
Ya mencionamos que Android está basado en Linux. Para ser más específicos, hablamos del kernel. Android utiliza como base el kernel de Linux. Esto no significa que por estar basado en el algo que se desarrolló en Linux funcione para Android, por ejemplo Android no tiene soporte glibc.
Ahora vamos a darle un vistazo a la estructura:
Tenemos esta estructura:
- Capa Roja, Kernel.
- Capa Verde, Librerias.
- Capa Amarilla, Android runtime.
- Capa Azul, application Framework
- Capa Azul Ultima, Application.
Vamos a conocer cada una de ellas:
Capa del Kernel (Roja)
Aquí tenemos el corazón de Android: el manejo de memoria, procesos, drivers, etc. Aquí es donde se da la comunicación con el hardware. Esto nos sirve para no estar peleando con los fabricantes de cada móvil, nos ayuda a solo usar la “cámara” y no tener que saber cómo funciona la cámara del fabricante X, fabricante Y; solamente hacemos lo que nos interesa, que sería usar la cámara y listo. Además de eso, aquí se administran los recursos del celular, memoria, energía...
Capa Librerías (Verde)
Esta capa tiene las librerías nativas de Android, están escritas en C o C++ y tienen tareas específicas.
- Surface manager: Gestión del acceso a la pantalla.
- Media Framework: Reproducción de imágenes, audio y vídeo.
- SQLite: BD
- Webkit, Navegador.
- SGL: Gráficos 2D.
- OpenGL: Gráficos 3D.
- Freetype: Renderizar vectores o imágenes.
Android Runtime (Capa Amarilla)
Esta capa amarilla no se considera al 100% una capa. Lo que es muy importante comentar es que aquí se encuentra Dalvik, la máquina virtual de Android, que no es lo misma que la Java Virtual Machine. Esto quiere decir que cuando compilamos en Java lo que se genera solamente va a funcionar en la JVM, porque Dalvik es una máquina virtual, pero de Android, así que el ByteCode que genera Java es inservible para Dalvik.
Algunas de las características de Dalvik son:
- Trabaja en entorno con restricción de memoria y procesador.
- Ejecuta el formato .dex.
- Convierte .class en .dx.
Application Framework (Capa azul)
Esta capa es la es más visible para el desarrollador, ya que la mayoría de los componentes que forman parte del desarrollo los vamos a encontrar aquí.
- Activity Manager- Administra las actividades de nuestra aplicación y el ciclo de vida.
- Windows Manager- Administra lo que se muestra en la pantalla.
- Content Provider-. Administra dependiendo de cómo le indiquemos algunos contenidos, puede ser información que necesitamos la encapsule para enviar o compartir.
- View- Las vistas de elementos que son parte de la interfaz gráfica, como los mapas, cuadros de texto, etc.
- Notification Manager- Administra las notificaciones.
- Package Manger- Administra los paquetes y nos permite el uso de archivos en otros paquetes.
- Telephony Manager- Administra lo que tiene que ver con la telefonía, llamadas, mensajes.
- Resource Manager- Administra recursos de la aplicación, como los xml, imágenes, sonido.
- Location Manager- Gestiona la posición geográfica.
- Sensor Manager- Gestiona los sensores que tenga el dispositivo.
- Cámara- Administra la cámara.
- Multimedia- Administra lo referente a audio, video y fotos.
Aplications (Capa Azul última)
Aquí tenemos las aplicaciones que vienen en el dispositivo, por ejemplo: el gestor de correos, los mensajes, el market, etc.
José Dimas Luján
José Dimas es fundador de Ockham Ti, empresa de desarrollo de software, app móvi...