Android: La nueva plataforma de desarrollos móviles

Publicado el 15 de noviembre de 2007

Android

Google, junto a The Open Handset Alliance, un grupo de más de 30 compañías de tecnología y móviles, presentó su nuevo hijo, Android, una plataforma móvil completa, libre y abierta.

¿Qué es?
Android es un stack de software para dispositivos móviles que incluye un sistema operativo, middleware y aplicaciones clave. Google está otorgando un un vistazo al SDK de Android, que provee de herramientas y APIs necesarios para comenzar a desarrollar aplicaciones en la plataforma Android, utilizando el lenguaje de programación Java.

Características:

  • Framework de aplicaciones, que permite reuso y reemplazo de componentes.
  • Máquina virtual Dalvik, optimizada para dispositivos móviles.
  • Navegador integrado, basado en el motor open source WebKit.
  • Gráficos optimizados, con una librería de gráficos 2D; gráficos 3D basado en la especificación OpenGL ES 1.0 (aceleración de hardware opcional).
  • SQLIte para almacenamiento de datos estructurados.
  • Soporte para medios con formatos comunes de audio, video e imágenes planas (MPEG4, H.264, MP3, AAC, AMR, JPG, PNG, GIF)
  • Telefonía GSM (dependiente del hardware)
  • Bluetooth, EDGE, 3G, y WiFi (dependiente del hardware)
  • Cámara, GPS, brújula, y acelerómetro (dependiente del hardware)
  • Ambiente rico de desarrollo incluyendo un emulador de dispositivo, herramientas para debuguear, perfiles de memoria y performance, y un plugin para el IDE Eclipse.

Arquitectura de Android
El siguiente diagrama muestra los componentes mayores del sistema operativo de Android. Cada sección se describe en detalle más abajo:

Android - Arquitectura del sistema

Aplicaciones
Las aplicaciones base incluirán un cliente de email, programa de SMS, calendario, mapas, navegador, contactos, y otros. Todas las aplicaciones escritas en el lenguaje de programación Java.

Framework de aplicaciones
Los desarrolladores tienen acceso completo a los mismos APIs del framework usados por las aplicaciones base. La arquitectura está diseñada para simplificar el reuso de componentes; cualquier aplicación puede publicar sus capacidades y cualquier otra aplicación puede luego hacer uso de esas capacidades (sujeto a reglas de seguridad del framework). Éste mismo mecanismo permite que los componentes sean reemplazados por el usuario.

Librerías
Android incluye un set de librerías C/C++ usadas por varios componentes del sistema Android. Éstas capacidades se exponen a los desarrolladores a través del framework de aplicaciones de Android.
Algunas son: System C library (implementación librería C standard), librerías de medios, librerías de gráficos, 3d, SQLite, entre otras.

Runtime de Android
Android incluye un ser de librerías base que proveen la mayor parte de las funcionalidades disponibles en las librerías base del lenguaje de programación Java. Cada aplicación Android corre su propio proceso, con su propia instancia de la máquina virtual Dalvik. Dalkiv ha sido escrito de forma que un dispositivo puede correr múltiples máquinas virtuales de forma eficiente. Dalkiv ejecuta archivos en el formato Dalvik Executable (.dex), el cual está optimizado para memoria mínima. La Máquina Virtual está basada en registros, y corre clases compiladas por el compilador de Java que han sido transformadas al formato .dex por la herramienta incluida “dx”.

Kernel Linux
Android depende de un Linux versión 2.6 para los servicios base del sistema como seguridad, gestión de memoria, gestión de procesos, stack de red, y modelo de drivers. El kernel también actúa como una capa de abstracción entre el hardware y el resto del stack de software.

Android RobotYa podemos bajar el SDK, leer la documentación, y unirnos a la comunidad. Para fomentar el desarrollo en esta nueva plataforma, el desafío Android Developer Challenge recompensará con $10 millones a desarrolladores que construyan aplicaciones “geniales” para Android.

Como habrán leído, no utiliza la máquina virtual de Java, ni la especificación Java Micro Edition, sino que tiene su propia máquina virtual optimizada Dalvik, y una implementación de Java Standard edition. Ésto ha supuesto una separación, división y controversia en la comunidad de desarrolladores Java: Porqué no seguir una implementación estándar, porqué usar una JVM distinta, etc.

Pero yendo directamente a la programación, es un proyecto sumamente interesante. En el sitio ya se pueden ver algunos videos de cómo desarrollar aplicaciones, y resulta bastante sencillo para programadores que hayan usado Java.

En éste enlace, muestra por ejemplo cómo hacer un Hola Mundo en Android. Con el plugin de Eclipse para Android, simplemente se crea un proyecto nuevo, que hay que editar. El código, se ve así:

public class HelloAndroid extends Activity{
/** Called when the activity is first created. */
	@Override
	public void onCreate(Bundle icicle){
		super.onCreate(icicle);
		setContentView(R.layout.main);
	}
}

Suena conocido, no? De ahí en más, hay que modificarlo, y empezar a darle átomos a Android. Podemos visualizar el resultado en un emulador de Android ya incluido.

Sin duda es un gran paso para Google, que mientras Steve Jobs pelea con los hackers del Iphone hasta verse obligado a lanzar un SDK el año entrante, decide lanzar una plataforma de desarrollo muy completa, además de libre y abierta. Como viene la mano, parece que definitivamente, la batalla de la web 3.0, se va a dar en los dispositivos móviles. ¿Dónde está Microsoft a todo esto? Ah, cierto, tienen aquella mesa para jugar al buscaminas con los dedos y Halo 3…

Por más información, bajarte el SDK, y aprender un poco más: http://code.google.com/android/index.html

Por cierto, aporté parte de éste material (sobretodo lo traducido de la web de Android) a WikiPedia. Si te interesa colaborar, puedes entrar en el artículo y extenderlo (o aprolijarlo) para que quede completito: http://es.wikipedia.org/wiki/Android

8 comentarios en este post

Feed de comentarios
  1. Avatar

    Adolf 15 noviembre. 2007 - 23:44

    Buennnna idea la de esta gente… de a poquito linux se mete hasta en celulares -desde hace ya un tiempo- pero no siempre tan transparente como esta… espero no haber dicho cualquier cosa jajaja, vengo de algoritmos… sepan entender. Saludos.

    Internet Explorer 6.0 Windows XP
  2. Avatar

    Diego 16 noviembre. 2007 - 16:01

    estaba visto que si google iba esta por sacar un cel corriendo en un sistema propio que es libre y abierto, iba a sacar o a ayudar a formar una buena herramienta para programar cosas para cels,
    no estaria para nada malo aprenderlo, creo que de ak a dos años va a ser tan basico o necesario para entrar en una empresa que va a haber que encarar con el tema, je
    cheee, tengo tu cuaderno, cualqueir cosa que presises mandame un mensaje un t escaneo lo que presises y te lo mando ,
    ns vemo
    chauuu

    Firefox 2.0.0.6 Ubuntu
  3. Avatar

    fernando 18 noviembre. 2007 - 16:57

    Adolf:
    Ya hay algunos celulares con Linux, pero ninguno con la repercusión que tiene Google con cada cosa que hace, además que todo lo que toca lo transforma en oro!
    Diego:
    El lunes llevame el cuaderno, no lo he necesitado este fin de semana. Google rulez.
    Saludos!

    Firefox 2.0.0.9 Windows 2000
  4. Avatar

    faby 15 diciembre. 2008 - 18:39

    Hola, necesito ayuda para crear una base de datos con sqlite para Android pero no se como empezar. Me podrías ayudar con eso por fa. Me gustaría que me enviaras los pasos para crear una base de datos.

    Saludos.

    Firefox 3.0.4 Windows XP
  1. Unknown gps gsm sistemas | 14 febrero. 2008 - 10:06

    gps gsm sistemas…

    One of the biggest advancements in technology is not only blue tooth, but also the addition of blue tooth gps to the blue tooth system….

  2. WordPress Instalación y configuración de entorno de desarrollo Android con Eclipse | Picando Código | 31 marzo. 2011 - 16:03

    […] que salió Android en 2007, lo descargué y probé e hice un análisis del SDK de Android en el blog. Desde entonces […]

Responder a Dalfe

Clic para cancelar respuesta.

Notificarme los nuevos comentarios por correo electrónico. Tambien puedes suscribirte sin comentar.

Toasty!