No mundo da tecnologia, novas terminologias eabreviações não são novidade e, às vezes, a cada nova versão do software existente, você pode ver um novo termo sendo cunhado, que todos parecem usar e entender. O problema para iniciantes e até muitos usuários casuais, no entanto, é que eles não entendem completamente o que significa a nova conotação, nem podem facilmente descobrir sobre isso sozinhos a partir de fontes oficiais, principalmente devido ao fato de que os desenvolvedores não são ' Não estou interessado em explicar muitas dessas terminologias e seus detalhes técnicos. Na melhor das hipóteses, você será apontado para um link oficial que fornece uma explicação, mas em termos técnicos que são praticamente inúteis para um não-técnico.
Nós da AddictiveTips sempre nos orgulhamos deemburrecendo conceitos técnicos e fornecendo respostas em termos que sejam agradáveis ao usuário casual e ao iniciante em tecnologia. Portanto, quando o Google decidiu apresentar o ART com o Android 4.4 KitKat, vimos isso como uma oportunidade de apresentar aos nossos leitores o novo ambiente de tempo de execução e ajudar a todos a entender do que se trata tudo isso e como é diferente da máquina virtual Dalvik que ART está sendo construído para substituir.

O que é um ambiente de tempo de execução?
Antes de respondermos à pergunta real,precisamos entender o que realmente é um ambiente de tempo de execução. Para simplificar, o tempo de execução inclui instruções de software que são executadas quando o programa está sendo executado, mesmo que não sejam essencialmente parte do código desse software em particular. Essas instruções traduzem basicamente o código do próprio software no código que o computador é capaz de executar. Portanto, todas as linguagens de computador exigem algum tipo de ambiente de tempo de execução que possa executar corretamente o código escrito nessa linguagem.
O Android utiliza uma máquina virtual comoambiente de tempo de execução para executar os arquivos APK que constituem um aplicativo Android. A vantagem de usar uma máquina virtual é dupla: primeiro, o código do aplicativo é isolado do sistema operacional principal, garantindo que, caso algo dê errado, esteja contido em um ambiente isolado e não afete o sistema operacional principal. Além disso, ele permite compatibilidade cruzada, ou seja, mesmo que um aplicativo seja compilado em outra plataforma (como um PC, como geralmente ocorre no desenvolvimento de aplicativos móveis), eles ainda podem ser executados na plataforma móvel usando a máquina virtual .
Para Android, o tempo de execução baseado em máquina virtualAté agora, o ambiente em uso é conhecido como Dalvik Virtual Machine, que, tenho certeza, quem já explorou os detalhes do sistema operacional, está mais do que familiar.
Por que usar uma máquina virtual?
Esse é realmente o ponto que abordamos logo acima. As máquinas virtuais são lentas, não há como negar isso, mas na verdade possuem algumas vantagens que as tornam uma escolha preferida.
- Máquinas virtuais fornecem um ambiente isoladopara execução de código. Portanto, mesmo que um aplicativo contenha um código malicioso que possa danificar o SO principal, ele não afetará diretamente os arquivos do sistema e, portanto, o SO principal será impedido de ficar corrompido. O benefício em larga escala é mais estabilidade e confiabilidade para o sistema operacional.
- Os APKs de aplicativos fornecidos pela Play Store(ou qualquer outra fonte, nesse caso) são instruções descompiladas que os desenvolvedores confiam na máquina virtual para compilar antes da execução e executar no dispositivo. Isso fornece mais compatibilidade; se o desenvolvedor fornecer código já compilado e compilado para um processador baseado no Snapdragon, ele poderá não funcionar corretamente em um chip Tegra, por exemplo. Portanto, essa compilação no dispositivo soluciona esse problema.
Então, o que é Dalvik e o que há de errado com isso?
Essa é a pergunta, não é? A Dalvik está presente desde o início do Android, em 2007, e não mudou muito desde então, além da abordagem de compilação Just-In-Time (JIT) introduzida no Android 2.2 Froyo, que basicamente compila aplicativos exatamente quando estão iniciado ou quando o usuário fornecer as instruções necessárias. É útil, além de uma melhoria em relação à abordagem anterior do intérprete convencional, que compilava e executava o código linha por linha enquanto era executada, mas a desvantagem é uma enorme sobrecarga quando o aplicativo está sendo lançado pela primeira vez.
Isso ocorre porque o sistema precisa reunirtodos os arquivos necessários, compile o aplicativo e carregue-o na RAM. Enquanto o aplicativo compilado permanecer na RAM, ele continuará respondendo rapidamente, mas quando você carregar mais aplicativos e a RAM acabar, o primeiro será descarregado e, portanto, após o lançamento subsequente, todo o processo será reiniciado. A abordagem faz sentido no papel e, de fato, tem funcionado bem até agora na plataforma. No entanto, os dispositivos mais antigos com RAM limitada sofrem mais, porque o ciclo de carregamento / descarregamento continua com mais frequência e, portanto, o sistema parece lento em termos de capacidade de resposta geral. É aí que entra a nova máquina virtual, ART.
O que é ART e como ele melhora as coisas?
ART ou Android RunTime (nome bastante ridículo, sim,sabemos) é uma nova máquina virtual experimental que o Google introduziu com o Android 4.4 KitKat como uma opção de desenvolvedor (com Dalvik ainda sendo o padrão por enquanto). A principal diferença entre o ART e o Dalvik é a abordagem de compilação usada por ambos - o ART emprega um novo conceito Ahead-Of-Time (AOT) contrário ao JIT da Dalvik, que basicamente compila aplicativos antes mesmo de serem lançados. O que isso significa é que as instalações pela primeira vez levarão mais tempo e os aplicativos ocuparão mais espaço no armazenamento interno, mas, ao mesmo tempo, como o aplicativo será totalmente compilado assim que for instalado, os tempos de inicialização serão muito mais rápidos. Da mesma forma, como a parte de compilação é cuidada apenas uma vez no momento da instalação, os impostos do processador são mais baixos, o que resulta em melhor duração da bateria e desempenho geral.
Dalvik vs. ART - Comparação
Vamos fazer uma rápida comparação das duas máquinas virtuais antes de avançar.
Dalvik | ARTE |
Usa a abordagem Just-In-Time (JIT), que resulta em menor consumo de espaço de armazenamento, mas maior tempo de carregamento do aplicativo | Usa a abordagem AOT (Antecipação do tempo), que compila aplicativos quando são instalados, resultando em tempos de carregamento mais rápidos e menor uso do processador |
O cache se acumula com o tempo, portanto, os tempos de inicialização são mais rápidos | O cache é criado na primeira inicialização, portanto, a reinicialização do dispositivo leva muito mais tempo |
Funciona melhor para dispositivos de armazenamento interno mais baixos, pois o espaço ocupado é menor | Consome muito mais espaço de armazenamento interno, pois armazena aplicativos compilados, além dos APKs |
É estável e testado por tempo - VM de escolha para desenvolvedores de aplicativos | É altamente experimental e novo - ainda não há muito suporte dos desenvolvedores de aplicativos |
Você diz que a arte é experimental ...
Sim, e agora, ele está disponível apenas emdispositivos com chipsets Snapdragon e executando o Android 4.4 KitKat. Você tem a opção de alternar de Dalvik para ART a partir das opções ocultas de desenvolvedor, se desejar, mas saiba que alguns de seus aplicativos podem não funcionar corretamente. Além disso, se já houver um cache de aplicativo criado no Dalvik, a primeira reinicialização após a troca poderá demorar até meia hora.
O Google disponibilizou o ART principalmente comKitKat para desenvolvedores para brincar e estabelecer as bases para uma troca permanente no futuro. E isso de forma alguma implica que o ART esteja pronto para uso hoje. Será no futuro, mas, por enquanto, é experimental e não é adequado para uso diário pelo usuário final.
Quanto aos benefícios da TARV, existem diferençasrelatórios. Para a maioria dos revisores, os dispositivos de teste são compostos por processadores quad-core com mais de 2 GB de RAM, que é uma configuração mais do que adequada para realmente observar os ganhos de velocidade do ART. Ainda assim, usuários aleatórios relatam ganhos acima de 50% em velocidade e mais de 30% em duração da bateria. Outros ainda afirmam que não passa de um efeito placebo.
Com toda a justiça, nada pode ser dito antes quefica disponível para massas e perde o tag experimental. Portanto, salvaremos esse debate para mais tarde. O que se pode dizer neste momento com certeza é que a TARV é o futuro. O Google seguirá a compilação antecipada para corresponder verdadeiramente ao iOS, sua maior contraparte e a ART abrirá o caminho. Não importa o quão tolo possa parecer ou incompleto, no momento, continuaremos a ver a ART cada vez mais.
Comentários