Você saberia dizer quem é o responsável pela execução dos aplicativos instalados no sistema operacional do seu computador ou do seu smartphone? Se estivermos falando de um computador comum ou de um celular com iOS ou Windows Phone, a resposta vai ser a mesma. De uma maneira bem resumida, podemos dizer que é o SO que possui a função de executar os aplicativos instalados nele.

Mas no Android essa história é um pouco diferente. Por causa da ampla variedade de aparelhos e diferentes componentes utilizados por eles, o sistema operacional da Google precisa trabalhar com um sistema de emulação de máquina virtual. É isso mesmo, o Android utiliza uma máquina virtual chamada Dalvik para conseguir executar o código dos softwares instalados nele.

E será que isso traz alguma consequência para os consumidores ou essa diferença não reflete no resultado final? A verdade é que reflete sim — e negativamente. Mas os desenvolvedores do sistema operacional estão modificando essa máquina virtual ART para oferecer melhores possibilidades a todos. Confira o que vai acontecer com o Android no futuro e entenda melhor as diferenças entre as máquinas Dalvik e ART.

Dalvik: como é atualmente

Os aplicativos instalados no Android são interpretados pela máquina virtual Dalvik, e então as informações deles são enviadas até a interface gráfica — lógico que há alguns outros passos nesse processo, mas esses são os principais. Esse sistema é utilizado desde a versão Android 2.2 e possui prós e contras bem claros, como você pode perceber na utilização do seu próprio aparelho. Uma máquina virtual com o Dalvik torna o Android mais amplo, traduzindo o código dos apps para que uma grande quantidade de aparelhos possa executá-los.

Por outro lado, essa tradução gera um caminho mais longo no processo dos aplicativos, fazendo com que muitos recursos sejam gastos, de maneira que poderia ser evitada se o Android executasse as tarefas de maneira nativa — como fazem sistemas com interface Java. Entre esses recursos, podemos citar as grandes quantidades de bateria e de memória que são desperdiçadas na virtualização.  

Como isso funciona exatamente?

Fazendo uma analogia bem simples, podemos dizer que o Android fala português de Portugal e precisa de um tradutor para entender o português dos brasileiros (apps). Mais do que apenas receber uma informação e repassá-la, ele precisa ainda saber interpretar os diferentes sotaques (diferenças entre estruturas de hardware) para que não ocorra nenhuma falha na comunicação. É um trabalho árduo.

E, exatamente como um intérprete, o Dalvik precisa realizar as traduções aos poucos, recebendo pacotes de dados e realizando a conversão daquele setor para então enviar e receber um novo pacote. Ao final de cada tradução — que é chamada de “compilação just-in-time” —, o código executável é lido pelo Android e mostrado ao usuário.

ART: remodelando as máquinas virtuais

Como você acabou de ler, o sistema do Dalvik pode ser um problema para aplicativos mais pesados, pois a quantidade de recursos utilizados chega a resultar em travamentos consideráveis em diversos casos — principalmente quando estamos falando de softwares com programação feita de maneira equivocava. Pensando em reduzir esse problema, a Google está testando uma nova máquina virtual: a ART.

Introduzido no Android KitKat como uma opção para consumidores avançados, o ART ainda está longe de ser uma interface de execução nativa, mas pode garantir melhores resultados por modificar a forma como ocorre a compilação dos dados. Em vez de trabalhar com o sistema “Just-in-Time” do Dalvik, é realizada uma compilação “Ahead-of-Time”, que pode ser traduzida como “à frente do tempo”.

Os códigos são pré-compilados na linguagem de execução já durante a instalação dos aplicativos. Isso significa que a instalação dos softwares pode ser mais demorada, mas também representa mais rapidez na execução dos apps — justamente pelo fato de a virtualização já ter acontecido e ter sido gravada na memória dos dispositivos.

As grandes vantagens

Apesar de a instalação no ART ser mais demorada do que é no Dalvik, a Google promete que o novo método faça com que os aparelhos tenham mais velocidade no processamento e na execução de tarefas. O método de pré-compilação na instalação é o grande responsável por isso, uma vez que ele evita a repetição de atividades que acontece na compilação atual do Dalvik.

Ainda é esperado que os aparelhos tenham menor consumo de energia, também pelo fato de as atividades serem repetidas com menor frequência. Como já dissemos, ainda não é com o sistema ART que o Android terá execução de aplicativos diretamente em uma interface nativa — repetimos que se também trata de uma máquina virtual —, mas os avanços são interessantes.

Quando isso estará disponível?

O novo método já está disponível para os usuários avançados que possuem o Android 4.4 KitKat instalado — demandando algumas configurações de desenvolvedor para que o acessos seja liberado. Ainda em fase de testes, há relatos de que o sistema suga a bateria dos aparelhos com mais rapidez do que acontece no Dalvik. Também há quem diga que o sistema está trabalhando  , o que dá margens para que pensemos que em breve a empresa vai trazer novidades bem interessantes para os consumidores.

É bem claro que a Google está trabalhando em novidades para o Android. Alguns membros da imprensa internacional afirmam que a mudança do sistema operacional para a versão 4.5 ou 5.0 pode resultar em uma alteração estrutural bem grande, incluindo a adoção total do ART nos códigos. Seria esse um passo adiante no caminho para a interpretação nativa de aplicações?