Android SDK: primeros pasos

Con este artículo comienzo una serie de artículos técnicos sobre el SDK de Android, donde trataré de explicar cómo desarrollar aplicaciones sobre Android, al mismo tiempo que yo mismo voy aprendiendo.

Android es, como a estas alturas ya deberías saber, el sistema operativo para terminales móviles basado en kernel Linux de Google. El kernel Linux ha sido modificado para adaptarlo a las limitaciones de los terminales móviles, así como a la máquina virtual Java desarrollada para Android (DVM ó Dalvik Virtual Machine), sobre la cual correrán todas las aplicaciones Android (aunque también es posible desarrollar aplicaciones en C++, yo no voy a tratarlo).

Todo terminal Android tiene unos requisitos hardware mínimos, como la memoria RAM, que debe tener al menos 64 MB (como el HTC Dream y Magic). Esto es porque el sistema ocupa en memoria unos 44 MB, y deben quedar al menos unos 20 MB para la ejecución de las aplicaciones de usuario. Como veremos en próximos artículos, los ejecutables Android (.dex, de Dalvik EXecutable) ocupan muy poco espacio en memoria debido a la optimización que ha sufrido DVM (recordemos, DVM es la máquina virtual Java de Android).

Cada aplicación de Android usa un proceso independiente, con una máquina virtual independiente, y lanzado con un usuario distinto para cada proceso, por lo que se consigue un entorno muy seguro para la ejecución de nuestras aplicaciones. Aunque como veremos en próximos artículos Android provee de mecanismos para compartir información e incluso código.

En esta imagen se muestran las capas que se usan en Android:

Una aplicación Android puede contener varios componentes independientes entre sí, dependiendo de la funcionalidad que tengan. A saber:

  • Actividades (activities)
    • Una actividad es, para entendernos, una pantalla de interactuación con el usuario mediante componentes visuales como selector de fecha/hora, editor de texto, listas, botones, etc.
    • Estas actividades pueden lanzar otras actividades y obtener respuesta de ellas, como por ejemplo llamar a una actividad "selección de imágen" y obtener como resultado la imagen seleccionada.
    • Las aplicaciones convencionales contarán con al menos una actividad.
  • Servicios (services)
    • Los servicios en Android son similares a los "demonios" de UNIX, es decir, código que se ejecuta en segundo plano esperando a ser llamado para llevar a cabo una operación.
    • Un ejemplo sería un reproductor de música, que reproduciría música en segundo plano mientras que una actividad mediante sus controles visuales le solicita realizar operaciones: stop, play, siguiente...
  • Escuchadores de eventos (broadcast receiver)
    • Los broadcast receivers no realizan ninguna acción hasta que reciben la notificación de un evento, como por ejemplo la llegada de un SMS o que se tomó una fotografía.
    • Con esto se consigue una programación orientada a eventos, que sobre terminales móviles nos brinda un mundo de posibilidades.
  • Proveedores de contenidos (content providers)
    • Este componente es el que maneja la información de una aplicación (usando para ello SQLite). Son similares a los modelos del patrón MVC, aunque con protección de memoria (hay que solicitar permiso para acceder al content provider de otra aplicación, como por ejemplo la agenda telefónica).

Todos estos componentes, como ya dije, son independientes entre sí, pudiendo ser utilizados por otras aplicaciones, así como nuestra aplicación puede usar cualquier componente de otras aplicaciones.

La comunicación entre componentes se realiza mediante intents (intenciones), mensajes asíncronos que se envían unos a otros (los content providers son la excepción ya que se usan mediante llamadas directas/síncronas). Por ejemplo, si tenemos un activity que muestra un interfaz de reproducción de música (con controles para play, stop, etc.), ésta enviará un intent al componente service que reproduce la música para que efectúe la operación solicitada por el usuario.

Y aquí finaliza el primer artículo sobre el SDK de Android. Espero que te sea de utilidad y que los siguientes también lo sean.

 


Normas de uso
El autor del comentario se hace responsable del contenido de éste. En caso de que el autor del comentario infringiera alguna ley, se ofrecerán todos los datos necesarios a las autoridades pertinentes para que tomen las medidas oportunas.
Se debe escribir correctamente en el mismo idioma del artículo que se comenta. En caso contrario podría ser eliminado.
El comentario debe ceñirse a la temática del artículo.

En la siguiente lista de palabras, haz clic en primeros:
  1. android
  2. sdk
  3. primeros
  4. pasos
Esta pregunta es para evitar comentarios spam. Perdón por las molestias.