Los teléfonos y las tabletas (sobre todo los más baratos) no suelen tener mucho espacio de almacenamiento, y sus otros componentes no son tan potentes (poca memoria, procesador lento, etc. Por tanto, el sistema operativo que se ejecuta en ellos debe tener un tamaño mínimo y estar muy optimizado para el hardware específico que contienen.
Por ejemplo, para que Windows sea compatible con una amplia gama de ordenadores personales de diversos fabricantes, se suministra con una miríada de controladores diferentes, algunos de los cuales son genéricos para manejar múltiples versiones de hardware (es decir, tarjetas de vídeo o tarjetas de sonido). De esta manera, Microsoft puede distribuir uno o dos paquetes de instalación (32 bits frente a 64 bits) que podrían instalarse en prácticamente cualquier PC compatible. La otra cara de la moneda es que esto hace que la instalación de Windows sea enorme en comparación.
Por otro lado, Android en su nivel más bajo tiene algo llamado "Kernel". Esto es lo que permite al resto del SO comunicarse con la RAM, la pantalla, la CPU, la cámara, los botones, etc., y es equivalente a los drivers en Windows. Véase este diagrama de la pila de software de Android. Debido a las restricciones mencionadas anteriormente, el kernel debe adaptarse perfectamente al dispositivo específico en el que se va a instalar Android. De este modo, su tamaño puede mantenerse al mínimo, pero el inconveniente es que sería incompatible con otro dispositivo, incluso del mismo fabricante, que tenga componentes ligeramente diferentes.
El núcleo es desarrollado por el fabricante del dispositivo, como Samsung, Motorola, LG, etc. Al estar basado en Linux, el código del kernel es de código abierto, pero suele contener algún código cerrado y propietario de otros fabricantes de componentes como la CPU o la GPU (por ejemplo, Qualcomm o Nvidia) en forma de blobs binarios. Luego hay una capa de personalización que los fabricantes y las operadoras añaden a Android "de serie", que también suele ser de código cerrado y propietario. A veces se trata de un par de aplicaciones adicionales, pero normalmente estas personalizaciones son más invasivas en forma de una interfaz de usuario diferente, como ocurre con TouchWiz de Samsung o SenseUI de HTC.
Cuando Google lanza una actualización de Android, está cambiando toda la pila de software de Android, incluyendo el núcleo, las bibliotecas, el tiempo de ejecución, el marco y las aplicaciones. Ya se puede ver dónde está la dificultad para actualizar un dispositivo. Los cambios de Google requieren que los fabricantes actualicen su código para todos los controladores de cada dispositivo específico del teléfono/tablet. Si Samsung utiliza la CPU/GPU de Qualcomm en lugar de la suya propia, también tendrá que esperar a que Qualcomm actualice sus bloques binarios. Lo mismo ocurre con todas las demás piezas de los circuitos: Wi-Fi, Bluetooth, módem celular, controlador de memoria flash, etc. Los fabricantes de cada uno de estos componentes tendrán que ver si los cambios de Google les obligan a modificar los controladores que se incluirán en el kernel, para que el teléfono siga funcionando con normalidad.
Esta es también la razón por la que una actualización del sistema operativo Android destinada a un teléfono específico no puede ser simplemente "flasheada" en uno diferente. Diferentes modelos de teléfono, incluso del mismo fabricante, suelen contener hardware diferente, por lo que necesitan un núcleo personalizado.
Ahora considere los costos para el fabricante de actualizar cada modelo de dispositivo que hacen cada vez que Google lanza una actualización de Android. Sus ingenieros de software deben revisar los cambios en el sistema operativo actualizado, modificar su código para cada controlador, probar a fondo sus cambios para asegurarse de que no rompen nada, y liberar el código final para su lanzamiento. Ahora multiplique esto por cada modelo de teléfono que han lanzado desde la última actualización de Android.
Los gigantes de la telefonía móvil, como Samsung o Motorola, pueden permitirse este proceso en nombre de la satisfacción del cliente y la fidelidad a la marca, pero los pequeños fabricantes sencillamente no tienen recursos para ello. No hay ningún incentivo para que actualicen los dispositivos que probablemente ya están vendiendo con márgenes muy reducidos.
0 votos
Sin embargo, ¿podría decirme la ciencia que hay detrás de esto? ¿Por qué un dispositivo no puede "actualizar" incluso en el mismo número de versión.
1 votos
Es el fabricante quien debe portar las nuevas versiones de Android a su dispositivo y lanzar la actualización. Vea también las respuestas a este y este pregunta existente.
0 votos
No había visto este comentario hasta ahora. Gracias.