Casa > Q > Quais São Os Detalhes Técnicos Do Tempo De Execução Do Android Art Introduzido No Android 4.4?

Quais são os detalhes técnicos do tempo de execução do Android ART introduzido no Android 4.4?

UPDATE

Então eu estava certo. De qualquer forma, aqui's o vídeo oficial que explica em profundidade sobre o ART Runtime:

>br>ORIGINAL ANSWER

Eu tenho't examinei completamente o ramo plataforma/arte (lá's um monte de código) mas aqui's meu entendimento do que é o ART e como ele funciona:

ART (ou Android RunTime) é um novo runtime experimental que está definido para suceder ao Dalvik no futuro próximo. Ele contém um novo compilador e VM, escrito em C++ nativo ao invés do Dalvik C e tem dois objetivos principais:

  1. Compilar código para dois backends, um chamado Quick [1], que é baseado no JIT e outro chamado Portable [2], que é baseado no LLVM.
  2. Offer improved Garbage Collection (GC)

>br> A nova VM [3] pode traduzir o bytecode Java para código nativo (JIT) ao executar uma carga rápida e executar código nativo diretamente (AOT) ao executar uma carga portável.

A carga nativa é armazenada em um formato OAT (por dex2oat [4], que é uma aplicação de linha de comando baseada na libart), que está contida dentro de um objeto dinâmico ELF (um arquivo .so). Google também criou um compilador re-targatable muito avançado que produz uma representação intermediária baseada em SSA e depois vai para os backends mencionados acima [5].

Quando você instala uma aplicação (APK), o dex2oat converte o bytecode Dalvik (arquivo .odex) para código nativo e o armazena em um arquivo .oat. Então cada aplicativo tem um arquivo .oat correspondente (ao contrário de .odex quando no Dalvik).

ART está atualmente em fase experimental, então é't recomendado mudar para ele do Dalvik agora mesmo, mas pessoalmente, o único aplicativo que não funciona para mim é o Quora, o resto dos aplicativos instalados no meu telefone (Whatsapp, Twitter, Facebook, XDA-Developers, etc) funcionam bem. Também notei uma diminuição no consumo de memória (por aplicativo também), especialmente no momento do boot:

main-qimg-289e56d5a9b8e49dd9b75a6e2c3b7695.webp

>br> Se você're um desenvolvedor ROM, você pode modificar a variável PRODUCT_RUNTIMES no core_minimal.mk ou core_base.mk para controlar quais tempos de execução estão disponíveis para o usuário.

>[1] compiler/dex/quick - plataforma/arte - Git no Google
[2] compiler/dex/portable - plataforma/arte - Git no Google
[3] runtime - plataforma/arte - Git no Google
[4] dex2oat - plataforma/arte - Git no Google
[5] compiler/sea_ir - plataforma/arte - Git no Google

De Evante Kritikos

Como mudar o meu número Boost Mobile gratuitamente :: Que aplicações me podem ajudar a fazer amigos de Toronto?