Android Runtime - Android Runtime
Desenvolvedor (s) | |
---|---|
Repositório | android |
Escrito em | C , C ++ |
Sistema operacional | Android |
Modelo | Ambiente de execução |
Licença | Licença Apache 2.0 |
Local na rede Internet |
fonte |
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
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
- Desenvolvimento de software Android - vários conceitos e utilitários de desenvolvimento de software usados para a criação de aplicativos Android
- Histórico da versão do Android - um histórico e descrições dos lançamentos do Android, listados principalmente por seus níveis oficiais de API
- Comparação de software de virtualização de aplicativo - várias máquinas virtuais portáteis e de linguagem de script
- Máquina virtual - uma emulação de um sistema de computador específico, com diferentes graus de funcionalidade implementada
Referências
links externos
- Website oficial
- Android Basics 101: Understanding ART, the Android Runtime on YouTube , XDA Developers , 12 de fevereiro de 2014
- ART: Android's Runtime Evolved on YouTube, Google I / O 2014, de Anwar Ghuloum, Brian Carlstrom e Ian Rogers
- Um compilador JIT para Dalvik VM do Android no YouTube, Google I / O 2010, por Ben Cheng e Bill Buzbee
- Delivering Highly Optimized Android Runtime (ART) e Web Runtime na Intel Architecture , Intel , 4 de agosto de 2015, por Haitao Feng e Jonathan Ding
- Android 7.1 para desenvolvedores: compilação JIT / AOT guiada por perfil , Android Developers, descreve as alterações de ART no Android 7.1