Android Extensions. ¿El fin de la fragmentación en Android?

Android Extensions. ¿El fin de la fragmentación en Android?

Carlos Yañez

14-12-2016

Android es un sistema operativo de código abierto que ha revolucionado nuestras vidas, pero tiene un su contra que está altamente fragmentado.

Esto significa que coexisten en los millones de dispositivos Android que hay en el planeta diferentes versiones del mismo, lo cual limita al usuario la capacidad de instalarse nuevas aplicaciones.

En el post de hoy vamos a explicar por qué existe esta limitación y cómo Google se ha planteado eliminar estas limitaciones con Android Extensions.

 

¿Por qué existe la fragmentación en Android?

La distribución de la versión de Android que incluye un dispositivo móvil depende del fabricante. Cuando el dispositivo se pone a la venta, este sale al mercado con una versión de Android determinada, normalmente la última o penúltima versión.

Cuando aparece una actualización de Android, es el fabricante el que decide si la adapta y prepara para sus dispositivos y por lo tanto la distribuye.

Normalmente se realizan distribuciones por parte del fabricante, pero después de varios meses que haya sido lanzada una nueva versión de Android, y no siempre lo hace para todos sus modelos de dispositivo.

Google ha intentado muchas veces que esto no sea así, pero a los fabricantes les interesa esta política que siguen para que los usuarios finales cambien de dispositivo con asiduidad y garantizarse ingresos.

Esto causa la fragmentación que hay de versiones de Android en el mercado, ya que no todo el mundo puede permitirse el cambiar su dispositivo cada año.

 

¿Qué afectación tiene la fragmentación?

Aunque Android es un sistema operativo de código abierto, las aplicaciones que corren sobre Android normalmente no lo son y se deben desarrollar en base a unos estándares.

Para poder distribuir estas aplicaciones a través de Google Play, estas deben cumplir con un acuerdo de distribución de aplicaciones móviles (MADA) y pasar un test de compatibilidad.

Este test certifica que la aplicación funciona correctamente sobre una o varias versiones concretas de Android usando las APIs publicadas.

Las APIs son librerías de funciones que usan los desarrolladores para que las aplicaciones que desarrollan se comuniquen correctamente con Android.

Estas APIs hacen de puente entre la aplicación y lo que controla Android del dispositivo móvil, como la cámara o el GPS.

Cuando Android se actualiza, las APIs se actualizan con nuevas versiones y funciones, y esta actualización puede hacer que una aplicación que era compatible con una versión de Android, no lo sea para una versión distinta.

Esto provoca que haya aplicaciones nuevas que no podamos descargarnos sobre versiones antiguas de Android. Si los fabricantes distribuyesen las actualizaciones de Android a todos sus dispositivos, no habría fragmentación y no existirían este tipo de problemas.

 

¿Cómo se plantea Google eliminar este problema?

Hace unas semanas se presentó la nueva versión Android, de la que escribí un post.

Hasta ahora, no se había publicado el documento de definición de compatibilidad de Android 7 (CDD) que es el que define las pautas que deben seguir los fabricantes de dispositivos Android para que los mismos puedan incorporar Google Play.

Lo importante de este documento es que se menciona la inclusión de una nueva característica llamada Android Extensions. Aunque aún es pronto para saber exactamente en que consiste esta nueva característica, parece que se trata de una app o servicio de Google actualizable que permita la actualización de las API’s del sistema.

Esto significa que los usuarios podrían tener la posibilidad de que se actualizasen sus API’s e instalar así nuevas aplicaciones sin necesidad de estar pendiente que el fabricante de su dispositivo distribuya una nueva versión de Android.

La realidad es que esta solución en si no evitaría la fragmentación, tan solo garantizaría mayor compatibilidad con nuevas aplicaciones, pero la fragmentación como tal seguiría existiendo.

Otro aspecto a tener en cuenta es que esta nueva característica sea capaz de integrar todas las APIs básicas. Pero lo más importante desde mi punto de vista es el tema de la aplicación de parches de seguridad.

Android Extensions sólo permitiría la actualización de las API’s manteniendo una versión de Android inferior. Las versiones antiguas de Android se podrían mantener, pero seguramente dejarían de tener soporte por parte de Google y por lo tanto no recibirían los parches de seguridad que se fuesen publicando.

Por otro lado, esta es una nueva característica de Android 7, por lo que en versiones anteriores no dispondremos de esta nueva característica.

 

Como veis, Google busca soluciones a la fragmentación. No puede imponer a los fabricantes la distribución de las nuevas versiones a sus dispositivos, y por ello les obliga al menos a que permitan la actualización a API’s.

El tiempo nos dirá si este planteamiento es el acertado y con ello conseguimos reducir la fragmentación o al menos animar a que la misma se reduzca a partir de Android 7.

¿Crees que el planteamiento de Google es el adecuado?

Profile picture for user Carlos Yañez
Carlos Yañez

Ingeniero Superior de Telecomunicaciones por la UPC. Director de Informática en un Laboratorio de Análisis con implantación nacional. Profesor de los cursos de Electrónica y Técnico en Sistemas Microinformaticos y Redes.