Android y la fragmentación

Oscar B 05 junio 2008 3 comentarios

AndroidYa os hemos contado que Google tiene la intención de abrir una tienda “on-line” de aplicaciones para el sistema operativo Android. El sistema Android para teléfonos y dispositivos móviles se publicará bajo licencia de código abierto Apache, por lo que cualquiera puede modificar el código y adaptarlo a sus necesidades.

Sobre mi mesa hay dos móviles con la misma versión del sistema Symbian y del mismo fabricante. Uno dispone de teclado “qwerty” y no tiene cámara, el otro usa un teclado normal de móvil, dispone de cámara y tiene diferente resolución de pantalla. La empresa Symbian, cuando vende una licencia a un fabricante para que haga un nuevo teléfono, le obliga a que mande un equipo de técnicos a sus oficinas para controlar como se implementa el sistema operativo. Las aplicaciones Symbian tienen que ir firmadas, se comprueba de esta forma que es lo que realmente hacen y su compatibilidad. Aun así, hay aplicaciones que van correctamente en uno de mis móviles y no en el otro. ¿Como controlará Google si los programas de Android funcionarán en un teléfono o no?

Según el jefe de proyecto Andy Rubin, Android contará con una tecnología que comprobará que APIs se han implementado en un modelo concreto, un “script” que se ejecuta y nos dice que APIs hay en el terminal. Para un programador, esta no es una solución muy apetecible. Al crear un programa se necesitan saber las APIs del dispositivo para conocer sus capacidades concretas y ha de poder hacerse durante la ejecución, por si se actualiza el software del teléfono. Además, saber que una API no está presente solo nos sirve si creamos un programa que contemple todas las posibilidades en cuanto a capacidades presentes o ausentes.

Aunque todos los fabricantes adoptasen un mínimo de APIs de Android, eso no asegura la compatibilidad entre los móviles Android. Existen unos test de compatibilidad de Sun para comprobar las APIs de Java, las JSR. Consisten en miles de tests muy detallados que comprueban la compatibilidad de la máquina virtual de Java (JVM) en un móvil concreto. Aún así, un programa en Java puede no funcionar en un móvil a pesar de que tenga la misma JVM, según los tests, que otro móvil en que se ejecuta correctamente. Los motivos son que a pesar de los miles de pruebas pueden seguir quedando errores no detectados, que la implementación sea suficiente para los tests pero no completa, o por el propio hardware del dispositivo.

Android permite que el fabricante implemente o no una API, incluso que la modifique a su gusto. Si los programadores no saben si sus creaciones van a funcionar en todos los modelos tendremos la tan temida fragmentación, que ha impedido un mayor éxito de Java en los móviles. Al día de hoy el problema no existe, se programa para un solo emulador y todo funciona de maravilla. Pero cuando empiecen a aparecer terminales con Android, lo mejor que podría pasar es que uno o dos móviles se convirtiesen en superventas y marcasen la pauta para el resto de fabricantes. En caso contrario, mas vale que nos vayamos olvidando de la compatibilidad de los androides.

Vía | Simon Judge
Mas información | The Register

¿Recomendarías este post? lo recomiendo no lo recomiendo

Comentarios

Deja tu comentario
  • 1 Imagen de www.gravatar.com
    allfreedo | 5 estrellas
    Marca como spam

    La verdad es que no se como se lo montaran para que funcione en condiciones. Hasta la fecha lo mejor en este aspecto ha sido windows mobile, con bastantes aplicaciones y una compatibilidad bastante decente.
    Symbian tambien tiene muchisimas, pero mi experiencia es que no son demasiado estables.
    Y java es sencillamente tristisimo (excepto opera mini y algun juego simplon pero adictivo).

    En este aspecto creo que apple es la que tiene la formula ganadora: Una sola plataforma, un SDK completo, un test previo a los programas y una sola tienda para poder conseguir los programas.

  • 2 Imagen de www.gravatar.com
    javi
    Marca como spam

    Apple lo tiene fácil porque sólo hay un terminal. El caso de Java es completamente opuesto, casi todos los terminales aun siendo diferentes, tienen máquina virtual. Solución, o utilizas un conjunto muy limitado de la JVM soportado o bien una lista de terminales compatibles.

  • 3 Imagen de www.gravatar.com

    muy interesante Oscar, no conocía en detalle este concepto

Escribir un comentario

Nos encantaría conocer tu opinión. Por favor, procura que tus comentarios estén relacionados con esta entrada. Intenta también no insultar ni usar palabrotas, respeta a los demás lectores de este blog. Los comentarios off-topic, burdamente promocionales, ofensivos o ilegales serán borrados sin piedad.

Puedes usar algo de HTML:

<a href>, <strong>, <blockquote>, <br />, <p>, <em>, <ul>, <li>. Los párrafos y los retornos de línea también se incluyen automáticamente.

Vista previa del comentario

OpenID

Este blog utiliza OpenId para la identificación de usuarios. OpenId es un sistema que te permite, con un sólo registro, identificarte en todos aquellas webs que lo soporten. Para la identificación se utiliza la url proporcionada por el servidor OpenId cuando te registras en él o la url de tu blog si lo has reclamado.

Si deseas una cuenta OpenId, puedes registrarte en el servidor OpenId de WeblogsSL.

Ejemplos de OpenID

  • Openid.blogs.es: http://openid.blogs.es/usuario o usuario
  • myOpenID: http://usuario.myopenid.com/

Destacado

Especial Mobile World Congress 2008 - síguelo en Xataka Móvil

Autores / Comentaristas

Comentaristas

  1. cacon 5 estrellas
  2. Rafael Galindo 5 estrellas
  3. Fle 5 estrellas
  4. David D.N. 5 estrellas
  5. akarakan 5 estrellas
  6. Capullo 5 estrellas
  7. Yevon 5 estrellas
  8. Richard 5 estrellas
  9. perico rl 5 estrellas
  10. Fransexy 5 estrellas

Suscríbete