Android Runtime - Android Runtime

Android Runtime
Desenvolvedor (s) Google
Repositório android .googlesource .com / platform / art /
Escrito em C , C ++
Sistema operacional Android
Modelo Ambiente de execução
Licença Licença Apache 2.0
Local na rede Internet fonte .android .com / devices / tech / dalvik / art .html Edite isso no Wikidata

O Android Runtime ( ART ) é um ambiente de tempo de execução do aplicativo usado pelo sistema operacional Android . Substituindo Dalvik , a máquina virtual de processo originalmente usada pelo Android, o ART realiza a tradução do bytecode do aplicativo em instruções nativas que são posteriormente executadas pelo ambiente de tempo de execução do dispositivo.

Visão geral

Uma comparação das arquiteturas Dalvik e ART

O Android 2.2 "Froyo" trouxe a compilação just-in-time (JIT) baseada em rastreamento para a Dalvik, otimizando a execução de aplicativos ao criar perfis de aplicativos continuamente cada vez que eles são executados e compilando dinamicamente segmentos curtos frequentemente executados de seu bytecode em código de máquina nativo . Enquanto Dalvik interpreta o resto do bytecode do aplicativo, a execução nativa desses curtos segmentos de bytecode, chamados de "traces", fornece melhorias significativas de desempenho.

Ao contrário do Dalvik, o ART introduz o uso de compilação antecipada (AOT) , compilando aplicativos inteiros em código de máquina nativo após a instalação. Ao eliminar a interpretação da Dalvik e a compilação JIT baseada em rastreamento, o ART melhora a eficiência geral de execução e reduz o consumo de energia, o que resulta em maior autonomia da bateria em dispositivos móveis . Ao mesmo tempo, o ART oferece execução mais rápida de aplicativos, mecanismos aprimorados de alocação de memória e coleta de lixo (GC), novos recursos de depuração de aplicativos e criação de perfil de alto nível mais precisa.

Para manter a compatibilidade com versões anteriores , o ART usa o mesmo bytecode de entrada do Dalvik, fornecido por meio de arquivos .dex padrão como parte dos arquivos APK , enquanto os arquivos .odex são substituídos por executáveis ELF ( Executable and Linkable Format ). Depois que um aplicativo é compilado usando o utilitário dex2oat no dispositivo da ART , ele é executado exclusivamente a partir do executável ELF compilado; como resultado, o ART elimina vários overheads de execução de aplicativos associados à interpretação da Dalvik e à compilação JIT baseada em rastreamento. Uma desvantagem do ART é que é necessário tempo adicional para a compilação quando um aplicativo é instalado e os aplicativos ocupam um pouco mais de armazenamento secundário (geralmente memória flash ) para armazenar o código compilado.

O Android 4.4 "KitKat" trouxe uma prévia da tecnologia do ART, incluindo-o como um ambiente de tempo de execução alternativo e mantendo Dalvik como a máquina virtual padrão. Na versão subsequente do Android, Android 5.0 "Lollipop" , Dalvik foi totalmente substituído pelo ART.

O Android 7.0 "Nougat" mudou seu Java Runtime Environment do Apache Harmony descontinuado para o OpenJDK , introduzindo um compilador JIT com perfil de código para ART, que permite melhorar constantemente o desempenho de aplicativos Android enquanto são executados. O compilador JIT complementa o compilador avançado do ART e ajuda a melhorar o desempenho do tempo de execução e economizar espaço de armazenamento compilando apenas algumas partes dos aplicativos.

Veja também

Referências

links externos