HI I´M AN IDEA
WANNA PLAY
WITH ME?
 

Primeros pasos para programación en Android

Buenas, ya que la idea principal de este blog (una de muchas) es conseguir construir una gran herramienta de consulta donde ir apilando conceptos e intentar facilitar el camino a todo desarrollador que quiera formar parte o forme parte ya, de este mundo inmenso y tan poco documentado que es la programación para dispositivos móviles en el S.O. android, voy a intentar comenzar desde el principio.

Empezaremos a desarrollar los conceptos básicos para poder comprender la manera en que está construida una aplicación.

Aunque parezcan conceptos un poco pesados de leer a primera vista, y ya estén entrando ganas de instalarse el SDK y empezar con eclipse, es una lectura muy recomendada ya que nos facilitarán el camino a la hora de entender incluso el tutorial mas sencillo.

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++ utilizando la llamada NDK).

Todo terminal Android tiene unos requisitos hardware mínimos, como la memoria RAM, que debe tener al menos 64 MB . 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.

Arquitectura de una aplicación 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.


About the author

Jaime Mulero Hola! Me llamo Jaime Mulero, soy programador desde hace años, apasionado por la informática prácticamente desde que tengo uso de razón. Jquery Ninja, Codeigniter Trooper, database juggler and Android engineer! Jaime Mulero

VN:F [1.9.20_1166]
Rating: 10.0/10 (1 vote cast)
Primeros pasos para programación en Android, 10.0 out of 10 based on 1 rating
Difunde la palabra
  • Print
  • Digg
  • StumbleUpon
  • del.icio.us
  • Facebook
  • Yahoo! Buzz
  • Twitter
  • Google Bookmarks
  • Meneame

¿Algo que opinar? Deja tu comentario!