Si eres lector habitual de Xataka Android seguro que ya leíste nuestro artículo "64 bits en Android, aún queda mucho camino por recorrer" en el que exponíamos el estado actual del mercado Android y la llegada de los 64 bits a la plataforma.
En él analizamos las piezas necesarias para que eso se lleve a cabo y dimos unas pinceladas que dejaron entrever que hasta el próximo año no veríamos la llegada de esta tecnología a Android.
En el pasado MWC 2014 ha habido novedades al respecto en el mundo de los fabricantes de chips, con Qualcomm presentando sus nuevos Snapdragon 610 y 615, así que queremos recapitular y volver a echar un ojo al estado Android y los 64 bits: cuándo, cómo y por qué.
Android y los 64 bits: ¿cuándo?
Como bien comentamos en nuestro anterior artículo la llegada de la tecnología de los 64 bits requiere el movimiento de muchos participantes y, si bien, disponer de hardware que soporte 64 bits, ya se han anunciado procesadores Snapdragon o Mediatek, es Google la siguiente que tiene que mover ficha.
Es probable que la próxima gran actualización de Android, quizá Android 5.0, sea la versión definitiva en la que veamos la llegada del kernel con soporte de 64 bits de manera estándar.
A día de hoy Intel está trabajando en una versión de Android con soporte de 64 bits, perfecto para sus últimos Atom, pero es un caso muy aislado.
Android y los 64 bits: ¿cómo?
Android debe implementar un kernel con soporte de 64 bits así como también Dalvik VM o bien la máquina virtual que acabe implantándose, por ejemplo ART. Una aplicación escrita en Java correrá sin ningún problema en un sistema de 64 bits siempre y cuando la máquina virtual, bien Dalvik VM o ART, esté optimizada para aprovechar chips de 64 bits, de esta manera se podrá recompilar la misma con soporte para esa plataforma.

En caso de aplicaciones nativas, habría que adaptarlas para ofrecer soporte de las características inherentes de los 64 bits, lo que es un esfuerzo más costoso en tiempo para un desarrollador ya que, según el tipo de aplicación podría incluso correr más lenta en procesadores de 64 bits si no está bien optimizada.
Es complicado dar una ventana de tiempo para que suceda ello, pero, si bien Google podría mover ficha en cuestión de meses, el paso mastodóntico de este proceso, el desarrollo y adaptación de los millones de aplicaciones Android podría llevar años.
Android y los 64 bits: ¿por qué?
Esta pregunta es una de las grandes preguntas de la tecnología actual y vamos a intentar responderla de manera sencilla empezando por es una transición que está sucediendo a nivel hardware y el software puede aprovechar sus ventajas, ofreciendo un mejor rendimiento final para el usuario.

Samsung, Qualcomm y Mediatek están empezando a ofrecer procesadores con soporte de 64 bits y, si bien a un nivel genérico no hay muchas diferencias entre procesadores de 32 y 64 bits, sí que hay habitualmente un rango de mejora en el tiempo de ejecución de la aplicación cuando nos movemos a un entorno de 64 bits.
No hablamos del doble de velocidad como muchos creen ya que 64 bits es el doble de 32 bits, pero sí que hay un margen de mejora lo suficientemente grande como para que los desarrolladores se preocupes de él.
Para entender el primer punto de esta mejora de la llegada de los 64 bits nos tenemos que centrar en la arquitectura CPU y memoria. Las operaciones que se realizan desde y hacia la memoria RAM son muy lentas en comparación con la velocidad con la que procesa la CPU. Vamos a hacer una comparación:
Suponed que la CPU es un bibliotecario cuya labor es organizar los libros en estanterías (la memoria). Ordenar libros de forma alfabética es algo que el bibliotecario hace muy rápido, de cabeza (registros internos de la CPU), y el cuello de botella de esa operación viene a ser el acercarse a la estantería de libros desordenados y llevarlos a las estanterías correspondientes. Todas esas transacciones con la memoria son lo que ralentizan el proceso y cuantas más veces tenga que acercarse a las estanterías (tanto la desordenada como la final) más tiempo llevará la operación. Ahora es cuando el sistema de 64 bits entra, que permite obtener por cada paseo a la estantería de origen, transportar más libros para que el bibliotecario pueda ordenarlos (más rápido mentalmente gracias a los registros y extensiones 64 bits), También los llevará a las estanterías finales más rápido dando la opción de agruparlos en pequeños grupos, ahorrándole paseos y haciendo más rápida la operación general.
El ritmo de mejora a la hora de pasar de 32 a 64 bits en un programa en cuestión dependerá del tipo de aplicación y de cómo se optimice el compilador para utilizar este nuevo entorno, hay mejoras en la mayoría de casos de entre un 30% y un 60%.
Como ejemplo vamos a menciona el caso de Apple, quien ha dado el primer paso en smartphones hacia 64 bits con su último iPhone 5S que ya integra un chip y S.O. con esta arquitectura. Se ha comprobado que una aplicación de 32 bits y su versión de 64 bits tienen una diferencia de rendimiento del 33%, es decir, correrá un tercio más rápido o, lo que es lo mismo, si antes tardaba un 10 segundos en realizar una operación concreta, ahora tardaría 6,6 segundos.
La segunda mejora de esta nueva arquitectura es que los punteros de 64 bits permiten redireccionar más memoria RAM, es decir, si bien un sistema con procesador de 32 bits puede manejar sin problema hasta 3 GB de RAM, con un sistema de 64 bits se puede manejar mucha más memoria.
No hay que recordar que ya hay en el mercado dispositivos Android que están utilizando el máximo de RAM manejable por los sistemas de 32 bits, Galaxy Note 3, por ejemplo. Esto hace que la llegada de 64 bits de un respiro a nivel de hardware para fabricantes, que se encuentran con esta barrera de direccionamiento de RAM con el entorno tradicional de 32 bits.
Sin embargo, no es oro todo lo que reluce con los punteros de 64 bits. La mayoría de programas utilizarán más memoria que la que utilizaban en 32 bits. Por norma general una aplicación de 64 bits ocupa más espacio en memoria que una de 32 bits y, según la optimización de la misma, podría incluso correr más lento como sucedió en PC con Oracle JVM.
Como se puede ver, es un tema que depende de muchos factores y, si bien ofrece una mejora de rendimiento notable gracias a los tres puntos mencionados:
Además de ello también hay que comentar que los procesadores de 64 bits son capaces de correr aplicaciones de 32 bits por lo que no se daría de lado todo el ecosistema actual de aplicaciones, sino que, correrían sin aprovechar las ventajas de este entorno 64 bits.
En Xataka Android | 64 bits en Android, aún queda mucho camino por recorrer.
Ver 21 comentarios
21 comentarios
kupa
Hay un comentario de ioniescu en twitter que dice twitter.com/aionescu/status/378867279246532608 creo que deberían corregir y hacer caso al señor ionescu.
porzino
Todavía no han optimizado el utilizar varios núcleos y ya estamos con los 64 bits.
rbc89
Esto se está yendo de las manos, ¡por favor! ¿64 bits en un móvil? ¿Pur qué? Yo no lo entiendo
slif24
Yo creo que los pasos que seguirá Android serán:
1.Julio-2014: Google anuncia Android 4.5 KitKat, con una nueva versión de ART. Más optimizada para ir mejorándola, y anuncia el lanzamiento de un SDK con soporte para 64 bits (o quizás más adelante, pero siempre antes del lanzamiento oficial de 5.0) para que los desarrolladores adapten sus aplicaciones. Renovación de tablet con esta versión.
2.Octubre/Noviembre-2014: Google anuncia un Nexus5(2014)/Nexus6 abanderando Android 5.0 con soporte de 64 bits y con el último refinamiento de la interfaz Holo.
Conclusión: a esperarse hasta el próximo Nexus Phone todo el mundo xD
thesharkgt
Por muy fanboy que suene (y lo soy) gracias al Apple A7 es que realmente quieren 64bit todos los dispositivos móviles.
Espero que copien también la idea de un S/O bien optimizado no solo en los Nexus si no en el resto de los dispositivos así como las actualizaciones, porque en el S5, ni el touch ID se salvaron de copiar.
pedrogk
Es importante resaltar (el artículo lo menciona pero creo que no hace suficiente énfasis) que en el caso de aplicaciones Dalvik, dado que es bytecode independiente de la arquitectura del procesador, deben funcionar en 64 bits sin poblema. En el caso de aplicaciones NDK (que tienen código hecho en C/C++ y compilado a binarios para el procesador específico), lo mejor sí es recompilar (y posiblemente ajustar) el código.
aimos
Android y los 64 bits por que? Pues por que Apple ya fue el primero y hay que seguirle el paso copiando y no sólo por eso sino por que el hecho del marketing es muy fuerte, que en mayo cuando salga el S5 tu amigo te lo muestre y tu con tu iPhone 5S le digas, el chip de mi iPhone es de 64 bits y el tuyo? Y tu amigo como que te quiere matar, ahhhhh y de paso la mierda de sensor de huella dactilar que puso Samsung no le llega ni a los talones lo que es el Touch ID. Fríanme a negativos, es la verdad y lo saben.