NOVEDADES IMPORTANTES

Acceso a todos los contenidos

Hace unos meses decidimos suspender nuestra actividad de formación online en Digital Learning SL (propietaria de esta web).

Desde entones hemos mantenido operativos nuestra plataforma de teleformación y webs de contenidos Academia Android y Digital Learning, habilitando un acceso libre y gratuito a todos estos recursos, incluyendo cursos y contenidos Premium que antes requerían un registro y pago previo, lo que ha propiciado un volumen de visitas constante de usuarios que consultan esta formación.

Venta-traspaso de los contenidos

Creemos que estas webs por sus contenidos, posicionamiento SEO y atracción de tráfico (junto a sus cuentas en redes sociales asociadas, incluyendo Twitter y Facebook de nuestro curso de Community Manager) pueden ser una oportunidad para emprendedores o compañías de diversos ámbitos (formación, marketing y publicación online, desarrollo software,…) que quieran:

  • Captar usuarios, alumnos o clientes para sus proyectos, productos y servicios.
  • Comercializar los contenidos bajo múltiples fórmulas: venta de publicidad, modelos freemium o de pago, suscripciones…
  • Crear un nuevo proyecto a partir de esta infraestructura de recursos.

Si tú o tú empresa estáis interesados en adquirirlos, ofrecemos su traspaso en propiedad exclusiva. Puedes contactar conmigo en «contacto@digitallearning.es» (por favor entiende que los correos que no vengan suficientemente identificados no vamos a atenderlos). Gracias.

Manuel Cabello (Socio-Director de Digital Learning/Academia Android)

Este es el número de tutoriales publicados:

Pincha en los textos de los contadores de Tutoriales publicados, Premium o Series de tutoriales para tener un detalle de las publicaciones que comprenden.

Desde hace unos meses, todos los contenidos, incluidos los Premium, son accesibles libre y gratuitamente.

  • Premium
  • Acceso libre
130
Acceso libre
126
Premium

Algunos datos sobre los contenidos que hemos publicado hasta la fecha:

74
Videos
61
Proyectos descargables
contacto[arroba]digitallearning.es

ART: nueva máquina virtual de Android

Post Series: Android 5 Lollipop

En esta publicación describiremos las principales mejoras que proporciona la nueva máquina virtual ART (Android Runtime) comentando brevemente algunas de las características más destacadas comparándola con su predecesor Dalvik.

Como punto de partida para desarrollar este apartado, es imprescindible recordar cual es la funcionalidad de una máquina virtual en el desarrollo de aplicaciones para dispositivos Android. Como descripción genérica, podemos utilizar la siguiente definición:

Máquina Virtual: software encargado de simular las características de una determinada computadora, que permite la ejecución de programas como si tratase de una máquina real.

Desde el punto de vista más cercano a los dispositivos Android, este implementa un sistema operativo basado en Linux, y cuya máquina virtual (hasta ahora Dalvik) permite compilar los archivos de Java, convirtiéndolos en archivos ODEX, que permiten ahorrar espacio, además de estar optimizados para su ejecución en el dispositivo. Como parte de las características multitarea que proporciona un smartphone, es decir, la ejecución de varias máquinas virtuales, manteniendo varias de ellas en segundo plano, suele conllevar una falta de fluidez en comparación a su ejecución directa en un sistema operativo, y por lo tanto empeora la experiencia del usuario con el dispositivo.

Como solución a este problema, Google decidió desde la versión KitKat 4.4 (de manera experimental) ir introduciendo la nueva máquina virtual ART, cuyo lenguaje de programación es C++, y que es posible probar desde «Opciones para desarrolladores» en los ajustes del dispositivo (smartphones con Android KitKat).

En cualquier caso,  desde la propia documentación oficial de Google, se recomienda mantener Dalvik como máquina virtual , ya que puede ocasionar problemas con aplicaciones de terceros e incluso con implementaciones de Android. Además, indican que aunque cualquier aplicación debe funcionar sin problemas con la nueva máquina virtual ART sin realizar ningún tipo de cambio previo, se deberá prestar especial atención a determinar técnicas que son funcionales en Dalvik, pero que pueden ocasionar problemas con ART:

  • Uso de Java Native Interface (JNI) para la ejecución de código C/C++ en nuestra aplicación.
  • Uso de herramientas de desarrollo que generan código no estándar (como por ejemplo la ofuscación de código para ocultar su funcionalidad).
  • Uso de técnicas incompatibles para la compactación (establecer de manera consecutiva los espacios de memoria libres) del recolector de basura, como por ejemplo el uso de punteros.

En la siguiente publicación de esta serie profundizaremos en las recomendaciones que se deberán controlar para un funcionamiento correcto de una aplicación en la nueva máquina virtual ART.

Principales mejoras de la máquina virtual ART

Una vez expuestos algunos de los motivos que han llevado a Google a sustituir Dalvik en beneficio de ART, es necesario describir las principales características o ventajas de la nueva máquina virtual de Android, que podrían simplificarse en las siguientes:

Compilación Ahead-of-time (AOT)

Podríamos traducirla literalmente por ‘compilación por adelantado’ o pre-compilación. Es una de las principales diferencias con Dalvik, ya que este ejecuta una máquina virtual que interpreta el código a la vez que se ejecuta la aplicación (archivos ODEX mediante el sistema de compilación JIT o lo que es lo mismo «Justo a tiempo«).

En cambio, ART realizará una pre-compilación durante el proceso de instalación de la aplicación (nuevo tipo de archivo compilado ELF), mediante el uso de la herramienta dex2oat (utilidad que permite compilar archivos de entrada DEX, generando un ejecutable de la aplicación para el dispositivo). Esta primera compilación permite realizar cierta carga de datos, para que las tareas de inicio o cierre de la aplicación se realicen de manera más rápida, y por lo tanto se disminuyan los tiempos de uso de CPU, aumentando el rendimiento de la batería.

Mejoras en el recolector de basura

Estas mejoras permiten evitar problemas de rendimiento que suelen acarrear, entre otras cosas, mala respuesta por parte de la interfaz de usuario, y que en gran medida, se solucionan a partir de las siguientes acciones:

  • Menor tiempo de pausa en el recolector para objetos creados recientemente.
  • Procesamiento paralelo durante la pausa del recolector de basura.
  • Disminuir de dos a uno el número de pausas que realiza el recolector de basura, durante el tiempo que tarde en completar la tarea.
  • Mejora de la recolección de basura concurrente, que elimina procesos que ya no están en uso minimizando el consumo de recursos de la CPU. Además no será necesario llamar de manera explícita al recolector de basura por medio de System.gc(), cuando el dispositivo no disponga de memoria y una aplicación requiere más recursos (tipo de concurrencia GC_FOR_ALLOC).

Mejoras en el desarrollo y depuración de aplicaciones

  • Soporte para nuevas características de depuración: ART implementa una serie de opciones, que permitirán desde saber el número de instancias de una clase, pasando por el filtrado de eventos de esta, o conocer el valor devuelto por un método mediante el evento «method-exit».
  • Mejora del diagnóstico de los fallos y excepciones: ART proporciona mayor información de las excepciones que se produzcan en tiempo de ejecución, informando en mayor detalle de las siguientes: java.lang.ClassCastException, java.lang.ClassNotFoundException y java.lang.NullPointerException.
  • Soporte para perfiles en la vista de trazas, que a diferencia de su uso en Dalvik, ART no ha limitado su sobrecarga por problemas de rendimiento en tiempo de ejecución.

 

Comparativas Art vs Dalvik

En las siguientes imágenes se podrán visualizar diferentes comparativas entre ART y Dalvik:

Comparativa arquitecturas ART y Dalvik

Comparativa de las arquitecturas de las máquinas virtuales ART y Dalvik (imagen de Wikipedia, licencia CCO)

Comparativa Rendimiento ART Dalvik

Comparativa de rendimiento entre ART y Dalvik (imagen de Androidpolice.com)

Pinchando esta imagen, Bench-performance accederás a un artículo de Anandtech.com donde realizan una comparativa de ambas máquinas virtuales y comrpueban que ART mejora considerablemente la lectura de código. Además se muestra la comparativa con la carga de varias aplicaciones como ejemplo, mejorando ART claramente el rendimiento frente a Dalvik.