La fragmentación en Android es un tema que siempre da que hablar, aunque recientemente Google dio un paso más para reducirla. El conglomerado de fabricantes y la arquitectura del sistema operativo de Google no ayudan a que todos los móviles actualicen a tiempo a pesar de que este año la cosa pinta mejor. Sin embargo, muchos desconocen una parte de Android que es igual de importante que las actualizaciones, hablamos del kernel o núcleo del sistema.
Este elemento es necesario para la ejecución del famoso sistema del robot verde y determina cómo funcionan nuestros dispositivos. Veamos qué importancia tiene, de qué está formado y por qué deberíamos exigir actualizaciones de este.
El kernel de Android, determinante para el funcionamiento de nuestro móvil
El núcleo del sistema , llamado kernel en inglés, es el principal elemento de un sistema operativo. En Android, es monolítico, esto quiere decir que todo sucede dentro de él sin contar con otros elementos externos. Por lo tanto, en el núcleo encontramos componentes críticos como los controladores, que intermedian entre el hardware y software. En el caso de Android, su núcleo parte del de Linux, que luego es adaptado al primero.
Estos controladores manejan cómo se comportan los diferentes componentes de hardware, como la pantalla, el procesador, las cámaras, el audio, o los sensores que tenga el dispositivo (barómetro, sensor de luminosidad, sensor de proximidad, brújula, etc). Lo que ocurre es que cuando un fabricante decide actualizar un modelo, en ocasiones es necesario un cambio en estos drivers, para que se adapten a la nueva arquitectura de la versión pertinente.
Sin embargo, lo más habitual es que los propios fabricantes no actualicen el kernel si no lo ven necesario. Si la estabilidad de la actualización es aceptable, evitan dedicar esfuerzos y tiempo a su mejora. Aunque las marcas aseguran que cuando lanzan una nueva versión, esta es estable, más de una vez me he encontrado lo contrario. Tras una actualización importante, mi anterior teléfono dejó de rendir como lo hacía, incluso la cámara realizaba peores tomas.
Una de las causas que provocan esto es precisamente los controladores: mantener el mismo kernel durante toda la vida del dispositivo, hará que aparezcan fallos o simplemente el rendimiento decaiga, además van ligados a las versiones de Android. Esto es algo natural y es que es costoso mantener un soporte ampliado con el actual portfolio de dispositivos de la mayoría de fabricantes.
Por suerte para ellos, este hecho no es algo demasiado conocido, a no ser que seas un poco entusiasta. Otra consecuencia de utilizar el mismo kernel es que llega un punto en el que no sería compatible con futuras versiones del sistema, quedando así fuera de soporte antes de tiempo.
Actualizar el kernel es un proceso largo en el que intervienen varios actores
Como principal responsable de Android, Google ha propuesto alguna solución a los problemas de kernel. Por ello desarrolló el núcleo genérico (GKI por sus siglas en inglés), para evitar que los fabricantes deban añadir cambios cada vez que Android se actualiza, así habría un núcleo común y los cambios específicos de cada dispositivo se actualizarían por separado. Los kernel genéricos siguen funcionando a día de hoy, pero realmente han tenido poca influencia.
Tampoco esto arreglaría el problema que hemos comentado, pues las GKI están más dirigidas a mantener un núcleo estable para que actualizar sea un proceso más sencillo. Lo más sensato es pedir que los fabricantes actualicen todos los componentes del sistema, pero no es tan fácil como parece.
Cuando se toma un kernel Linux para una nueva versión de Android, intervienen varios actores principales. Tal y como vemos en la documentación oficial de Android, el núcleo se compone de las siguientes capas:
- Primero, se parte del kernel de Linux de kernel.org
- AOSP: aquí se incluyen parches adicionales específicos de Android para los núcleos comunes del Android Open Source Project.
- Después es el turno de los proveedores, como fabricantes de procesadores.
- Finalmente, la responsabilidad última es de los fabricantes OEM que desarrollan los controladores de dispositivos adicionales y capas de personalización.
En este largo proceso radica parte del problema, pues por poner un ejemplo, Xiaomi no puede actualizar el kernel de sus móviles sin antes esperar al cambio por parte de Qualcomm, que proporciona parte del hardware como el procesador o las antenas.
En definitiva, como usuarios finales, solo podemos trasladar nuestras quejas cuando un determinado modelo deje de funcionar correctamente. Y aún así, los ingenieros de las principales marcas tratarán de arreglarlo mediante algún parche, sin tocar la raíz del problema.
Android es un sistema complejo, formado por muchos elementos necesarios para garantizar una buena experiencia de usuario. Sin embargo, adaptarse a tal cantidad de hardware, así como a multitud de fabricantes, tiene un precio a pagar.
Imagen de portada | Bing Image Creator
En Xataka Android | 21 gestos y trucos para dominar tu móvil Android como un Pro