Cómo prepararse para el cómputo de 64 bits en Android

Hace ya varios meses que Apple lanzó su procesador A7 de 64 bits, junto con la versión 7 de iOS también diseñado para cómputo de 64 bits.

Parece ser que en el caso de Android las cosas también se están moviendo en esa dirección; varios de los procesadores móviles dados a conocer recientemente por Intel y Qualcomm tienen arquitectura de 64 bits. Por su parte, el kernel de Android, que está basado en Linux, soporta 64 bits sin problemas. En realidad, lo único que hace falta para que Android sea "completamente compatible con 64 bits" es ajustar la máquina virtual de Dalvik para que soporte esta arquitectura, y tenemos entendido que eso sucederá en la actualización de Android que se hará disponible en el 2do semestre de este año.

Así que es un hecho que las cosas van para allá, por lo que vale la pena que estudiemos esto para entender sus implicaciones y cómo prepararnos.

Ventajas del cómputo de 64 bits

La ventaja más conocida es poder acceder una mayor cantidad de RAM. En procesadores de 32 bits, la máxima cantidad de memoria que se puede direccionar son 4 GB. Al usar 64 bits eliminamos esta restricción.

Por otro lado, en la arquitectura de 64 bits tenemos más registros de datos internos en el CPU. La velocidad de estos registros de datos es mucho mayor que la de la memoria RAM así que al guardar más datos ahí estamos evitando tiempos muertos del CPU mientras espera a que se acceda a memoria RAM.

¿Qué hacer con aplicaciones Dalvik?

Dado que el bytecode de las aplicaciones Dalvik es independiente de plataforma, una aplicación de este tipo funcionará sin necesidad de cambios en un dispositivo de 64 bits. Es decir: si tú tienes una app Dalvik que funciona en arquitectura de 32 bits, una vez que esté disponible la máquina virtual de Dalvik para 64 bits podrás ejecutar tu misma app sin problemas. Habiendo dicho eso, el ideal es que recompiles tu app para 64 bits de manera que puedas aprovechar las ventajas de desempeño de la arquitectura de 64 bits.

Aplicaciones con código nativo

Por default, las aplicaciones de 32 bits corren sin problema en procesadores de 64 bits, pero con un desempeño menor que si hubieran sido compiladas directamente para 64 bits. Adicionalmente, se recomienda que los desarrolladores actualicen sus apps con código nativo (NDK) de manera que puedan aprovechar las capacidades específicas de los procesadores modernos. Por ejemplo, en los procesadores móviles Intel de 64 bits la tecnología Advanced Vector Extensions (Intel® AVX) ha sido extendida para soportar instrucciones de hasta 256 bits.

Referencias

Este artículo es una versión traducida y editada del original "64 bit Android OS". Te invitamos a que conozcas sobre este y otros temas de interés para desarrolladores Android en la Zona para desarrolladores de Intel.