Una de las mayores novedades que trae consigo Android Lollipop 5.0, es la nueva maquina virtual, aunque dicha maquina virtual, ya venia con la versión de Kitkat pero de manera opcional. El propósito de esta nueva maquina, es la optimización del rendimiento de Android, que con su antecesor Dalvik se veía comprometido. Veremos como es su adaptación a ART.
Hace algún tiempo describimos las dos maquinas virtuales, con ART, que utiliza la compilación previa, en vez de la compilación a tiempo de Dalvik, se reduce de manera considerable la compilación del funcionamiento de una aplicación, y como consecuencia de ello, reducimos el uso de CPU y por lo tanto mejora el rendimiento de la batería.
Una desventaja, es que para instalar una aplicación necesitaremos más tiempo, ya que internamente está compilando los archivos binarios de la APP, también dichas aplicaciones ocuparan más espacio en memoria, pero la idea es tener más fluidez y reducir la carga de CPU.
Adaptación del código a ART
Nos podemos encontrar, algunas excepciones donde las practicas de programación aceptadas por Dalvik ya no serán validas con ART, aunque el bytecode DEX de Dalvik es compatible con ART, pero deberemos realizar diferentes ajustes en el código de la APP para que nuestra aplicación sea valida con la nueva maquina virtual.
- Verificar si la propiedad del sistema java.vm. versión tiene un valor 2.0.0
- Si utilizamos JNI para código C/C++, al depurar con CheckJNI tendremos mucha más información sobre errores.
- Actualizar a las últimas versiones de las herramientas, debido a que alguna de ellas no tenga soporte para ART.
- Ahora con ART, la llamada System.gc(), debemos evitarla, pues la propia máquina tendrá mejor rendimiento.
- No guardar punteros a los datos de instancias de objetos.
- Los campos de la clase Object ahora son privados.
- Utilizar las mejoras en ART, para la depuración y manejo de errores, tales como el flujo de control invalido o listas de parámetros con longitud 0.
A pesar de tener en cuenta este tipo de cosas, y a pesar del cambio, se están preocupando para que el cambio no sea un quebradero de cabeza para los desarrolladores y podamos disfrutar de todas sus ventajas.

No hay comentarios:
Publicar un comentario