Bitácora de Javier Cancela

Entradas etiquetadas ‘Open Handset Alliance

Algunas consideraciones sobre Android

Hablaba en mi anterior entrada (La difícil posición de Symbian) de lo abierto de la plataforma de Google. Adjudicaba ese adjetivo tanto por la libertad que da el sistema a los desarrolladores como por la promesa de liberar el sistema con licencia Open Source. Sin embargo, en los seis meses transcurridos desde la presentación de Android sólo se ha liberado el código fuente del kernel (Android Linux Kernel Tree), lo que ha llevado a mucha gente a preguntarse en los grupos de Google sobre el por qué de tanto retraso.

A través de un artículo de CNET (Google’s Android work far from finished) llego a un hilo de discusión de uno de estos grupos ( Android source isn’t available ?????????) donde un desarrollador de Android da algunas explicaciones. Confirma que casi todo el código fuente de la plataforma será liberado: el propio de Google con licencia Apache 2.0, el resto con la licencia original (GPL, LGP, BSD…). Esto incluya la mayor parte de las aplicaciones del móvil (aunque no GMail, por ejemplo). Las partes del sistema que se mantendrán cerradas serán algunas relacionadas con los drivers de dispositivo, a causa de problemas con la propiedad intelectual. Eso sí, no da fechas, pero deja caer que será después de que aparezcan los primeros dispositivos físicos.

Como se menciona en el artículo de CNET, Google se enfrenta a un doble desafío. Por una parte lanzar una plataforma lo suficientemente abierta como para que todo el mundo pueda hacer lo que considere útil, interesante o lucrativo (y la licencia Apache está para permitir a terceros comercializar software derivado de Android). Por otra, evitar la fragmentación que tan difícil hace las cosas a otras plataformas móviles. La clave estará en la Open Handheld Alliance, compuesta por Google y sus socios, que deberá velar porque la evolución de la plataforma sea a la vez rápida y estable.

Escrito por Javier Cancela

4 \04\UTC abril \04\UTC 2008 a 17:55

Primeras impresiones sobre Android

El sistema

En la anterior entrada decía que Android es un sistema operativo. En realidad esto no es cierto, como aclara la propia documentación. Así que a la documentación me remito:

Android is a software stack for mobile devices that includes an operating system, middleware and key applications.

Android es una pila de software para dispositivos móviles que incluye un sistema operativo, middleware y aplicaciones clave.

Traducción propia, por supuesto. Ese concepto de “pila de software” hace referencia a que el sistema está compuesto por capas de software que se colocan una sobre otra, de manera que cada una puede usar directamente a la que tiene inmediatamente debajo. En concreto la disposición se indica en el siguiete dibujo, proveniente del sitio web de Android:

Arquitectura de Android

Podemos distinguir aquí la parte pública, en azul, compuesta por las aplicaciones del dispositivo y las librerías que podemos utilizar con la SDK (el Application Framework). En verde tenemos las librerías del sistema, a las que, al menos inicialmente, no tendremos acceso directo y que serán utilizadas por el Application Framework.

La clave del sistema es la parte en amarillo, el Runtime. Cada aplicación que nosotros programemos tendrá su propio proceso con su propia instancia de la máquina virtual. Las librerías Core que aparecen en el Runtime incluyen la funcionalidad que solemos encontrar en las librerías básicas de Java: java.io, java.lang, java.util, … Esto no quiere decir que la máquina virtual sea una máquina virtual de Java, sólo que Java es el lenguaje usado para su programación. Veremos más sobre la máquina virtual en un momento.

La parte en rojo la constituye el núcleo (kernel) del sistema operativo. Está basado en el núcleo 2.6 de Linux y es la base de todo el sistema. Hay que tener claro que una aplicación Android no se ejecuta directamente sobre este núcleo y no es por tanto una aplicación Linux. Podemos ver a Android como la versión de Google de JavaME o del .NET Compact Framework.

La máquina virtual

Un punto clave y muy interesante de todo este sistema es Dalvik, la máquina virtual. Dalvik es una máquina virtual muy ligera, optimizada para usar muy poca memoria, lo cual consigue delegando en el kernel de Linux el multithreading y la gestión de memoria y de procesos. Para programar en Dalvik se utiliza un compilador de Java, pero lo que genera no son Java bytecodes, sino un tipo distinto de bytecodes, por lo que Dalvik no se puede denominar una máquina virtual de Java. Además, ofrece librerías estándar de Java pero sin declarar ninguna compatibilidad con Java SE.

Lo que todo esto parece querer decir es que Google pretende sacarle a Sun parte del pastel de Java, al menos en entornos móviles, con una plataforma que no es una máquina virtual de Java pero lo parece. De esta forma Sun no puede reclarmar ningún derecho sobre ella y Google no necesita permiso de nadie para introducir modificaciones, pero a la vez los programadores acostumbrados a Java apenas notarán diferencias. Parecido a lo que intentó Microsoft con su máquina virtual de Java, pero aprendiendo de los errores de Microsoft.

La SDK

En cuanto a la SDK en sí, poco puedo decir de momento, salvo que tiene un buen aspecto. La ventaja de llegar tarde a un entorno tecnológico es que puedes aprender de los demás y careces de lastres en forma de compatibilidad hacia atrás. Las aplicaciones de Android se construyen en torno a cuatro conceptos: las Activities (actividades), que representan pantallas de la aplicación; los Intent Receivers (receptores objetivo), que gestionan eventos; los Services (servicios), que ejecutan código no asociado a una interfaz de usuario; y los Content Provider (proveedores de contenido), que se encargan de almacenar o compartir datos. También es destacable el formato XML para la definición de la interfaz de usuario, que Google promete que acabará con los problemas de layout tan habituales en los dispositivos móviles.

La SDK incluye un plugin para Eclipse, que permite utilizar varias de las herramientas de la SDK desde este IDE, además de añadir los típicos Wizards y asistentes de compilación y despliegue. De todos modos es perfectamente posible utilizar la SDK desde cualquier IDE o editor de texto.

Escrito por Javier Cancela

13 \13\UTC noviembre \13\UTC 2007 a 11:43

La SDK de Android, liberada

Vía Mashable me entero de que Google ha publicado la SDK de Android. Android es el sistema operativo móvil anunciado el pasado lunes por la Open Handset Alliance.

En cuanto la descargue y la investigue un poco escribiré mis impresiones.

Escrito por Javier Cancela

12 \12\UTC noviembre \12\UTC 2007 a 19:21

Escrito en Android, Noticias

Etiquetado con , , ,

Google (y 33 empresas más) anuncian Open Handset Alliance (pero no el gPhone)

Algunos apuntes rápidos sobre la noticia móvil del día, el anuncio de la Open Handset Alliance y su sistema Android:
- Hay un total de 34 empresas: 7 operadoras de telefonía móvil, 9 fabricantes de chips, 4 fabricantes de móviles, 10 compañías de software y 4 empresas de comercialización.
- No se descartan futuras ampliaciones.
- No están Vodafone ni Orange, pero sí T-Mobile y Telefónica.
- ¿Dejará HTC Windows Mobile?
- La plataforma está basada en Linux y será Open Source.
- Una de las claves será su navegador, así que no es difícil ver sinergias con OpenSocial.
- No se descarta un futuro GPhone, que llevaría Android.
- Habrá que esperar al día 12 para ver la SDK y sacar más conclusiones.

Escrito por Javier Cancela

5 \05\UTC noviembre \05\UTC 2007 a 20:03

Seguir

Recibe cada nueva publicación en tu buzón de correo electrónico.