Hace ya varios meses que Google comenzó a mover la maquinaria para hacer la transición definitiva hacia la arquitectura de 64 bits en ecosistema Android. Las aplicaciones desarrolladas para sistemas 32 bits suponen un lastre al tener que hacer todo el software compatible con dispositivos antiguos, pero hay un problema mayor con esto: en agosto de 2021 ya no podrán descargarse desde Google Play aquellas aplicaciones de 32 bits que no hayan migrado el código a 64 bits, lo cuál afectará a cientos de miles de juegos que por distintos motivos no darán el salto. Pero no hay nada que temer, ya que Uptodown seguirá hospedando y permitiendo la descarga de apps de 32 bits desde dispostivos de 64 bits sin restricción alguna pasada esa fecha.
32 bits vs 64 bits
Sin entrar en detalles excesivamente técnicos, está claro que un software desarrollado desde el principio para arquitecturas de 64 bits permite aprovechar mucho más los recursos de hardware del sistema. Esto supone para el desarrollador un sinfín de ventajas a la hora de ofrecer aplicaciones más seguras y técnicamente avanzadas, ya que el hecho de arrastrar paquetes de compatibilidad con sistemas de 32 bits provoca limitaciones de diversa índole en la propia aplicación. No es lo mismo desarrollar un juego que aproveche al máximo el hardware sobre el que corre que adaptarlo a un sistema con una potencia mucho menor y hacer malabares a nivel de código para sacarle partido al dispositivo solo para algunos aspectos aislados de la app.
Pero realmente, ¿qué diferencia hay entre un procesador 32-bit y otro 64-bit? Pues entre otras cosas, la diferencia de capacidad a la hora de realizar operaciones lógicas. Un bit es un valor binario que puede ser cero o uno, por lo que una CPU capaz de trabajar con registros de 32 bits permitirá almacenar 4.294.967.296 valores diferentes (2 elevado a 32 posibilidades), mientras que uno de 64 bits llegará a los (cojamos aire) 18.446.744,073.709.551.616 valores (2 elevado a 64). O lo que es lo mismo, un procesador de 64 bits puede almacenar cuatro mil millones direcciones de memoria más que el de 32.
Pero las mejoras no se rigen por la mera fuerza bruta, ya que las aplicaciones de Android no tienen esas necesidades de cálculo. En realidad, el principal aliciente de todo esto es que eliminando a los 32 bits de la ecuación se tendrá un ecosistema Android más robusto y unificado, reduciendo tiempos de testeo y costes de desarrollo, por no hablar de un mejor soporte, librerías más eficientes y, en general, una reducción en la complejidad de las aplicaciones. Al final todo gira en torno a poder migrar por fin del estándar ARMv7 a ARMv8 en la fabricación de chips para móviles con la seguridad de que el software va a estar totalmente preparado para este cambio.
La fecha límite marcada por Google
Desde Android 5.0 Lollipop, las aplicaciones Android son compatibles con esta arquitectura, y ya entonces Google advirtió que tarde o temprano tendría lugar «el cambio». A principios de 2019, la compañía trazó un plan de ruta a seguir por los desarrolladores:
- Desde el 1 de agosto de 2019, todas las nuevas apps o actualizaciones de las existentes deben incluir una versión de 64-bits para poder ser publicadas en Google Play, aunque se extenderá algo más esta limitación en caso de usar SDKs concretos: Corona Labs (agosto 2020), Adobe Air (agosto 2020) y Unity 5.6.7 o superior (agosto 2021).
- Desde el 1 de agosto de 2021, no será posible descargar desde Google Play ninguna aplicación que no incluya soporte para arquitecturas de 64 bits, por lo que solo podrán descargarse las de 32 bits en dispositivos con esa misma arquitectura.
Uptodown seguirá soportando apps de 32 bits
Aunque Google ofrece varias guías y métodos asistidos para facilitar las cosas a los desarrolladores con la migración de código, lo cierto es que muchos de ellos no tienen las cosas fáciles. Dependiendo del entorno de desarrollo, lenguaje y librerías utilizadas para crear la aplicación, hacer el código compatible con arquitecturas de 64 bits puede ser una tarea costosa, tanto a nivel de desarrollo como económico. ¿Qué quiere decir esto? Pues que Google Play podría convertirse en un cementerio de juegos que no han podido ser actualizados y que, por tanto, no podremos descargar en nuestro dispositivo Android salvo que éste tenga arquitectura de 32 bits. Y no hablamos precisamente de reliquias. Cualquier juego publicado antes del 1 de agosto de 2019 en Google Play podría verse afectado si no incluyó compatibilidad con los 64 bits.
A efectos prácticos, realmente todas esas aplicaciones siguen siendo compatibles con todo tipo de dispositivos por mucho que Google imponga sus restricciones, y de hecho, incluso si de alguna forma el propio sistema operativo Android introdujera algún tipo de limitación a la hora de ejecutar apps de 32 bits, seguiríamos teniendo la virtualización y emulación para poder usarlas. No os vamos a engañar, aunque exista toda una campaña mediática en favor de la arquitectura de 64 bits, casi podríamos entrever más intereses comerciales que tecnológicos. Nosotros no luchamos en esa guerra y por eso no tenemos necesidad de secundarla.
Dado que Uptodown es un repositorio que preserva y almacena todas las versiones anteriores de una aplicación sin restricción alguna de hardware de cara al usuario, todas las aplicaciones que de forma voluntaria o no decidan no realizar la migración, seguirán estando disponibles en nuestra plataforma de formas indefinida, al menos hasta que se acerce el fatídico día en el que los aviones caigan del cielo y se produzca un colapso tecnológico. De forma similar al venido a menos Efecto 2000, aún tenemos por delante el año 2038.
¿Qué sucede en 2038 con el software de 32 bits?
El sistema para contar los segundos en arquitecturas de 32 bits tiene como fecha de inicio el 1 de enero de 1970 a las 00:00:00 UTC. Como hemos dicho al principio del artículo, una arquitectura de 32 bits es capaz de trabajar con números de 32 bits, es decir, 4.294.967.296 valores diferentes. Aunque pueden tratarse estos valores como números positivos, también se suele usar para almacenar negativos (las variables unsigned), por lo que pasados los 2.147.483.647 segundos, el valor almacenado se reiniciaría. ¿Y sabéis cuándo se alcanza esa fecha de segundos contados a partir del 1 de enero de 1970? Pues sí, el 19 de enero de 2038.
Obviamente, con tantos años por delante es muy improbable este problema que afecte a servicios importantes. Hace ya muchos años que Microsoft, Apple y Google están migrando todo su software a nuevas arquitecturas, y a lo mejor incluso para entonces, los 64 bits serán también cosa del pasado. Aún así, en el ámbito tecnológico ya sabemos que las cosas de palacio van despacio, y que la realización de cambios profundos en los estándares tecnológicos imperantes puede demorarse muchísimos años si la propia sociedad de consumo no los secunda.
Dicho lo cual, ¿tienes una aplicación de Android y no puedes (o no te interesa) migrar el código a 64-bits? Puedes publicarla en Uptodown a través de nuestra plataforma para desarrolladores. La fecha límite marcada por Google solo afecta a su marketplace. En Uptodown seguirá estando disponible todo el catálogo independientemente del dispositivo desde el que se realice la descarga.