Android combina la ubicuidad de los teléfonos celulares, la emoción del software de código abierto y el respaldo corporativo de empresas como Google, Samsung, HTC, Verizon, China Mobile y AT&T. El resultado de esto es una plataforma móvil que no te puedes permitir no aprender.
Afortunadamente, comenzar a desarrollar para Android es fácil. Incluso ni siquiera es necesario tener acceso a un dispositivo con Android instalado, únicamente necesitas tener una computadora en la cual puedas instalar las herramientas de desarrollo y un emulador.
Los Conceptos
Ahora que ya tenemos una idea de lo que es Android, es necesario entender cómo funciona. Algunos de los conceptos te serán familiares, como el kernel de Linux, SQL, etc. Algunos otros completamente extraños, como la idea de Android del ciclo de vida de una aplicación. Ahondemos un poco.
El kernel Linux
Android está construido sobre el kernel de Linux. Linux provee la capa de abstracción de hardware para Android permitiendo que este sea transferido / portado a una gran variedad de plataformas en el futuro.
Internamente, Android utiliza Linux para su manejo de memoria, control de procesos, trabajo con redes y otros servicios relativos al sistema operativo. El usuario de un teléfono Android jamás verá Linux en su dispositivo y los programas que desarrolles nunca podrán utilizar sus comandos directamente. Como desarrollador tú debes saber que ahí está.
Las librerías nativas
Las librerías nativas son contenidas en la capa inmediata superior al kernel de Linux. Estas librerías compartidas están escritas en C o C++, fueron compiladas para la arquitectura de hardware utilizada por el dispositivo y preinstaladas en él por el proveedor del mismo.
Algunas de las más importantes son:
- Surface Manager: Es el manejador de ventanas compuesto para Android (similar a Metro, Vista o Compiz).
- Gráficos en 2D y 3D: Elementos de dos y tres dimensiones que pueden ser combinados en una sola interfaz de Android.
- Media codecs: Utilizada para grabación y reproducción de diversos formatos de medios (como AAC, AVC, H.564, MP3, MP4, etc)
- Base de datos SQL: Android incluye el motor de base de datos SQLite que puede ser utilizado para almacenar datos en el dispositivo.
- Motor de navegación: Para mostrar el contenido HTML, Android utiliza la librería WebKit.
La máquina virtual
Al mismo nivel que las librerías nativas encontramos la máquina virtual Dalvik que es la implementación Java de Google optimizada para los dispositivos móviles. Todo el código que escribas en Android será escrito en Java que a su vez se ejecutará en Dalvik.
Application Framework
Por encima de las librerías nativas y de la máquina virtual se encuentra el Application Framework. Esta capa provee los bloques de construcción que se utilizan para crear las aplicaciones. Este framework viene preinstalado con Android pero puede ser expandido agregando componentes personalizados.
Las partes más importantes de este framework son:
- Activity Manager: Controla el ciclo de vida de la aplicación.
- Content providers: Encapsulan datos que se comparten entre aplicaciones.
- Resource manager: Todo lo que viene con una aplicación que no sea código (imágenes, videos, etc).
- Location manager: Para saber en qué ubicación geográfica se encuentra el dispositivo (GPS, servicios de ubicación).
- Notification manager: Eventos tales como la llegada de un mensaje de texto, citas, alertas, etc.
Aplicaciones y Widgets
La capa más alta en la arquitectura de Android es la que contiene las aplicaciones y widgets. Los usuarios finales verán únicamente estos programas, sin darse cuenta de todo lo que pasa tras bambalinas.
Las aplicaciones son programas que pueden abarcar toda la pantalla e interactuar con el usuario. Por otra parte, los widgets son programas que operan únicamente en una pequeña parte de la pantalla principal.
Cuando una persona adquiere un teléfono con Android, este viene con un serie de aplicaciones por defecto tales como las siguientes:
- Marcador de teléfonos
- Mensajes de texto
- Correo electrónico
- Contactos
- Agenda
- Google Play
- etc
¿Qué tengo que hacer para comenzar a escribir aplicaciones para Android?
Ya que tienes claros los conceptos básicos de la arquitectura de Android estás a sólo un paso de comenzar a escribir aplicaciones. Este paso es la preparación del entorno de desarrollo.
El entorno
Antes de poner las manos sobre el código es necesario preparar el entorno completo que consta de las siguientes partes:
- Java Development Kit (JDK)
- Eclipse IDE
- Android SDK Tools
- Plugin ADT para Eclipse
- Configuración de un dispositivo virtual (AVD)
En Cristalab hay un excelente artículo que te lleva paso a paso en la instalación y configuración de todo lo anterior por lo que te recomiendo que lo visites. Aquí el link:
Hasta aquí llegamos en este artículo. Si tienes dudas, preguntas o comentarios te invito a que lo compartas al final del artículo en la sección de comentarios.
Si la información te fue útil te invito a que me ayudes a difundirla desde los botones sociales (Twitter, Facebook, Google+).
De igual manera puedes suscribirte al blog para que los nuevos artículos lleguen a tu bandeja de correo o lector de Feeds favorito.
Comentarios
Publicar un comentario
Este es un espacio abierto, puedes escribir lo que gustes respetando los siguientes puntos:
1.- Lo que escribas esté relacionado con el post, si gustas contactarme puedes hacerlo aqui.
2.- Todo es cuestionable, aunque ten en cuenta que existen formas de hacerlo, evita las agresiones y revisa tu lenguaje antes de publicar un comentario.
3.- Siempre hay tres verdades: tu verdad, mi verdad y la verdad, por lo que opiniones diferentes no necesariamente son equivocadas.
4.- Los comentarios son una forma de discusión abierta, por lo que al publicar uno, implícitamente entras a una discusión, con todo lo que esto representa.
5. Me reservo el derecho de eliminar comentarios que no respeten las condiciones mencionadas anteriormente.
Toma en cuenta que puedes utilizar emoticones en tu comentario, para ver una lista de los disponibles da clic en este enlace.