Un ingeniero de Google responde a por qué los fabricantes tardan tanto en actualizar

Varios ingenieros de Android han llegado a cabo hoy una sesión AMA (Ask Me Anything) en Reddit, dando la oportunidad a los usuarios de preguntar cualquier cosa.

Un usuario hizo una pregunta muy simple acerca de las actualizaciones del sistema y, como respuesta, obtuvo un mensaje bastante extenso. La pregunta fue:

¿Cuál creeis que es la mayor limitación (o falta de incentivo) para que los fabricantes no actualicen las versiones de Android de sus dispositivos regularmente y qué creeis que es necesario para cambiar esto?

En su respuesta, el ingeniero explica por qué los fabricantes son lentos y, a veces, reacios a la hora de actualizar y qué hace Google para que los fabricantes puedan enviar las actualizaciones de forma más fácil.

El principal punto a entender es que para los fabricantes, las actualizaciones son fundamentalmente un tema de costes. Cada socio fabricante quiere poder actualizar sus dispositivos mientras dure su vida útil. Están limitados por las duras elecciones económicas que los costes presentan.

Es por eso que nuestros esfuerzos para acelerar las actualizaciones están directamente dirigidos a reducir estos costes.

Por tanto, según explica el ingeniero de Google, la razón por la que los fabricantes no actualizan es por el alto coste que les supone. Sobre este punto, profundiza un poco más explicando el origen de estos costes:

Ahora, la pregunta realmente es, ¿por qué los costes de actualización son altos? La respuesta tiene varias partes:

Android es de código abierto y personalizable

El ecosistema Android es enorme

Para cada dispositivo, hay varias compañías involucradas en el lanzamiento

Hay costes de certificación de los operadores por cada actualización importante

Según explica el ingeniero, las dos primeras razones son exclusivas de Android. La tercera y la cuarta son universales y aplican también fuera del ecosistema de Android. Sin embargo, la tercera razón es más pronunciada en Android. Juntas, las tres primeras razones conducen a mayores costes de actualización frente a otras plataformas.

Android es de código abierto y, como todos los proyectos de código abierto, permite modificaciones y personalizaciones. Esta flexibilidad es una característica esencial de Android y permite a los fabricantes adaptar el código a sus necesidades.

Las personalizaciones implican costes, como en todos los proyectos de código abierto. El fabricante toma una versión de Android, realiza cambios y lo lanza. Cuando llega la siguiente versión, tienes que tomar los cambios que has hecho y trasladarlos la nueva versión. Esto lleva tiempo y esfuerzo, y el tiempo y el esfuerzo significan costes.

El ingeniero explica que hay dos maneras de reducir estos costes: una de ellas es que el fabricante contribuya con sus cambios al proyecto de código abierto, de modo que los costes de adaptación sean asumidos por el proyecto de Android. Así es como funciona la comunidad del núcleo de Linux.

Android, sin embargo, es un caso diferente. Muchas de las modificaciones de la base de código de Android son de naturaleza propietaria, lo que por varias razones impide que sean enviados al proyecto de código abierto. Así que esto significa que los fabricantes tienen que adaptar sus propios cambios con cada nueva versión.

La segunda forma es estableciendo fronteras entre qué componentes puede modificar libremente el fabricante y cuáles deberían ser comunes. Aquí es donde iniciativas como Project Treble y Project Mainline están ayudando a los fabricantes con las actualizaciones.

Aunque todavía hay mucho camino por recorrer, las últimas cifras de adopción de Android 10 parecen indicar que Google va por buen camino ya que los fabricantes están actualizando sus dispositivos más rápido que nunca antes.

El ingeniero concluye que la respuesta a la pregunta son los costes de trasladar las modificaciones de los fabricantes con cada nueva versión de Android.

Esta es la razón por la que los esfuerzos de Google seguirán encaminados a definir fronteras entre los componentes para hacer que, cada vez más, el sistema operativo subyacente sea actualizable, sin sacrificar la flexibilidad y la potencia de la naturaleza de código abierto que Android proporciona.