¿Es Dificil Adaptar una APP a ART?


Android Lolipop esta cada vez mas cerca,y una de las mayores novedades es la implementacion de ART(Android Run Time) sera la unica maquina virtual de android L,esta estaba opcional en Kit Kat.
Esta maquina virtual se hizo para mejorar el rendimiento de sus celulares,ya que Dalvik no iva muy bien que digamo.
¿Que es Android Run Time?
ART hace referencia a Android Runtime, o tiempo de ejecución de Android, éste es el responsable de correr las aplicaciones en Android. ART es el sucesor de Dalvik Runtime y su principal diferencia es que el primero elimina la necesidad de una máquina virtual o de interpretar el código de las aplicaciones lo cual se ve reflejado en mejoras en el desempeño de la aplicación desde el lanzamiento. Esto lo hace por medio del compilador de código, el cual es diferente que en Dalvik. Actualmente ART está en una fase inicial y debido a que su debut se hizo con Android 4.4 KitKat es muy pronto para saber la completa implicación de estos cambios
Art Vs Dalvik:


Esta nueva maquina virtual utiliza una compilacion previa,y no como Dalvik 
que utiliza una compilacion justo a tiempo.Al reducir la cantidad global de la compilacion que necesita ser realizado a traves de una aplicacion,el uso del Procesador disminuye,pero aumenta la duracion de la bateria.

El resultado de esto es que con ART las aplicaciones tardaran mas en instalarse(ya que en ese momento estan compilando el codigo de la maquina) y ocuparan un 20% mas de memoria.


Adaptando El Codigo:


Si bien es cierto que ART es compatible con el bytecode DEX de Dalvik, nos podemos encontrar algunas excepciones donde algunas prácticas de programacion aceptadas por Dalvik ya no seran validas con ART, o simplemente que puedan ser optimizadas. Para ello, recomiendo los siguientes ajustes en su codigo:

  • Verificar si se está ejecutando en ART: Para ello verificaremos si propiedad del sistema java.vm.version tiene un valor 2.0.0
  • ART es más estricto con JNI: Si utilizamos JNI para código C/C++, si depuramos con CheckJNI tendremos mucha más información sobre errores.
  • Actualizar a las últimas versiones de las herramientas, pues aún podemos llegar a tener alguna herramienta que no haya sido actualizada con el soporte para ART
  • Evitar llamas explícitas al recolector de basura: Ahora, con ART, la llamada System.gc() debemos evitarla, pues la propia máquina tendrá mejor desempeño al no invocarlo
  • No guardar punteros a los datos de instancias de objetos
  • Los campos de la clase Object ahora son privados
  • Hacer uso de las mejoras en ART para depuración y manejo de errores, tales como el flujo de control inválido o listas de parámetros con longitud 0.



¿Como Activo ART En Mi Celular(Necesario KitKat)?
Lo primero es conseguir tener el menú de desarrollador. Para ello tenéis que acceder a los Ajustes, al final del menú, acceder a Información del teléfono, y al final de ese menú, pulsar repetidas veces sobre Número de Compilación, entonces os avisará que ya sois desarrolladores, abriéndose un menú nuevo en los ajustes. Así que volved atrás y en el menú de ajustes encontrareis uno que se llama Opciones de Desarrollo. Al entrar, habrá muchas opciones nuevas, seleccionad la cuarta: Elegir tiempo de Ejecución. Os saldrán dos opciones, Dalvik o ART. Seleccionad ART ya que por defecto Dalvik es la que viene seleccionada.
El teléfono se pagará y tendrá que reiniciarse para recompilar todas las aplicaciones.Tardará un rato, y más cuantas más aplicaciones tengáis, así que tened paciencia y el teléfono cargado, no serán más de 5 minutos, pero tenedlo en cuenta. Cuando se reinicie, ya tendría ART activado en vuestro android y probando lo que pretende ser el futuro del sistema.(Esta Parte la copie y pegue de una pagina Llamada Elandroidelibre,recomiendo que la lean es muy buena)
Y bueno hasta aqui el post no olvides puntuar