•  
     

Tecnologia ART: o que realmente é e qual a vantagem sobre o Dalvik?

Junto com o Android 4.4 KitKat, lançado no final do ano passado, a Google resolveu embarcar a nova versão da máquina virtual do seu sistema operacional móvel, o ART (Android Runtime), que promete tornar a execução de apps muito mais eficiente. Com o intuito de testar a nova tecnologia com o grande público e otimizá-lo até seu lançamento oficial, a Google disponibilizou aos donos de dispositivos Nexus com Kitkat 4.4 a possibilidade de experimentar o que pode ser uma das maiores mudanças no Android desde a sua criação. Mas afinal, o que é esse tal de ART e quais melhorias ele traz?
1.jpg

Para entendermos os benefícios do novo runtime ART, temos que recorrer a detalhes técnicos dos dois sistemas. Os aplicativos executados hoje no Android utilizam uma máquina virtual (MV) chamada Dalvik, criada por Dan Borstein desde a primeira versão do sistema. Basicamente, os programas são escritos em Java e então convertidos em código de máquina chamado bytecode - uma etapa intermediária entre o código-fonte e o código legível pelo hardware. Nesse estágio, o código não está associado a nenhum código de máquina específico e pode ser convertida para rodar em várias arquiteturas distintas (portabilidade). Finalmente, a MV Dalvik traduz o bytecode em um código legível pela máquina em questão, código que é de fato executado pelo processador principal. Essa tradução (compilação) ocorre durante a execução do aplicativo, que dá o nome à técnica utilizada para tal: JIT (Just In Time).

O ART, por sua vez, foi concebido para usar uma técnica de compilação chamada AOT (Ahead Of Time). Sua principal diferença em relação ao Dalvik é que ela ocorre antes da execução do aplicativo - e não durante, como o JIT - o que elimina esta etapa durante o tempo de execução. Com isso, espera-se um aumento de velocidade de execução de até 2 vezes em relação ao Dalvik, reduzindo-se a percepção de lag.

A título de ilustração, segue um gráfico de benchmark de um simples algoritmo de ordenação (quicksort) de valores executado sob ART (vermelho), Dalvik (azul) e Java Native Interface (laranja), que é o Java Virtual Machine rodando em um computador comum.

2.png

Pontos fracos

O ART, no entanto, não é um mar de rosas. A instalação dos aplicativos será perceptivelmente mais demorada para aplicativos complexos e eles utilizarão mais espaço na memória do aparelho. Apesar disso, as melhorias prometidas superam esses pontos, que também devem ser minimizados nas próximas versões do Android.

Um usuário fez um vídeo que mostra dois aparelhos Nexus 7 rodando cada um com uma das versões de runtime. Ele executa o aplicativo Photoshop e compara o desempenho dos dois sistemas:




O ART não tem data para substituir o Dalvik por enquanto. Alguns especulam que será no ainda misterioso Android 5.0 Key Lime Pie. Outros acreditam que ele deve levar mais algum tempo para amadurecer. Por enquanto, para aqueles que desejam experimentar o novo recurso, custa lembrar que diversos aplicativos ainda não são compatíveis com ele e podem dar force close. Alguns exemplos são: WhatsApp, Pandora, Titanium Backup e Ingress.

FONTE