Android Runtime (ART) and Dalvik

Android runtime (ART) é o runtime gerenciado usado por aplicações e alguns serviços de sistema em Android. ART e seu antecessor Dalvik foram originalmente criados especificamente para o projeto Android. ART as the runtime executes the DalvikExecutable format and Dex bytecode specification.

ART e Dalvik são períodos de execução compatíveis em execução Dex bytecode, por isso os aplicativos desenvolvidos para Dalvik devem trabalhar quando em execução com arte. No entanto, algumas técnicas que trabalham em Dalvik não funcionam na arte. Para obter informações sobre as questões mais importantes, consulte o comportamento do Verificadorapp no tempo de execução do Android (ART).

características de arte

Aqui estão algumas das principais características implementadas pela arte.

Compilação antecipada (AOT)

ART introduz compilação antecipada (AOT), o que pode melhorar o desempenho. ART também tem verificação de tempo de instalação mais apertado do que Dalvik.

no momento da instalação, o ART compila aplicativos usando a ferramenta on-devicedex2oat. Este utilitário aceita ficheiros DEX como entrada e executável app compilado pela generatesa para o dispositivo alvo. O utilitário deve ser capaz de completar todos os arquivos DEX válidos sem dificuldade. No entanto, alguns Ferramentas pós-processamento produzem arquivos inválidos que podem ser tolerados por Dalvik, mas não podem ser complementados pela arte. Para mais informações, consulte os problemas de recolha de embalagens.

recolha de lixo melhorada

recolha de lixo (GC) é muito intensiva em recursos, o que pode prejudicar o desempenho de um aplicativo,resultando em display de picadas, má capacidade de resposta UI, e outros problemas. A arte melhora a coleta de garbag de várias maneiras:

  • Principalmente com projetos simultâneos com um único GC pausa
  • Simultâneas copiar para reduzir o fundo de uso de memória e fragmentação
  • O comprimento do GC pausa é independente do tamanho da pilha
  • Coletor com total inferior GC tempo para o caso especial de limpeza recentemente atribuída, de curta duração objetos
  • melhorar a coleta de lixo ergonomia, tornando simultâneas de coleta de lixo mais oportuna, o que faz GC_FOR_ALLOC eventos extremamente raros na típico de casos de uso

Desenvolvimento e depuração de melhorias

ARTE oferece um número de recursos para melhorar o desenvolvimento de aplicativos e depuração.

Suporte para o profiler de amostragem

historicamente, os desenvolvedores têm usado o Traceviewtool (projetado para a execução de aplicação de rastreamento) como um profiler. Enquanto Traceview fornece informações úteis, seus resultados sobre Dalvik foram distorcidos pela sobrecarga de chamada por método, e a utilização da ferramenta afeta visivelmente o desempenho do tempo de execução.

ART adiciona suporte para um analista de amostragem dedicado que não tem estas limitações. Isto dá uma visão mais precisa da execução da aplicação sem uma desaceleração significativa. O Suporte de amostragem foi adicionado ao Traceview forDalvik no lançamento do KitKat.

Suporte para mais recursos de depuração

ART suporta uma série de novas opções de depuração, particularmente na funcionalidade relacionada com a coleção monitor – andgarbage. Por exemplo, você pode:

  • veja que fechaduras são mantidos em traços de pilha, em seguida, saltar para o fio que segura uma fechadura.
  • pergunte quantas instâncias vivas existem de uma determinada classe, peça para ver as instâncias, e veja que referências estão mantendo um objeto vivo.
  • filter events (like breakpoint) for a specific instance.
  • See the value returned by a method when it Saídas (using “method-exit” events).
  • Set field watchpoint to suspend the execution of a program when a specific field is accessed and / or modified.

aperfeiçoamento dos detalhes diagnósticos em exceções e relatórios de acidentes

ART dá-lhe o máximo de contexto e detalhe possível quando o tempo de execução exceptionsocur. ART provides expanded exception detail for java.lang.ClassCastException,java.lang.ClassNotFoundException, and java.lang.NullPointerException.(Versões posteriores de Dalvik forneceram detalhes de exceção expandidos para java.lang.ArrayIndexOutOfBoundsException e java.lang.ArrayStoreException,que agora incluem o tamanho do array e o off-of-bounds offset, e Artdes this as well.)

por exemplo, java.lang.NullPointerExceptionagora mostra informações sobre o que o aplicativo estava tentando fazer com o ponteiro nulo,como o campo para o qual o aplicativo estava tentando escrever, ou o método para o qual ele estava tentando ligar. Aqui estão alguns exemplos típicos:

java.lang.NullPointerException: Attempt to write to field 'intandroid.accessibilityservice.AccessibilityServiceInfo.flags' on a null objectreference
java.lang.NullPointerException: Attempt to invoke virtual method'java.lang.String java.lang.Object.toString()' on a null object reference

ART também fornece informação de contexto melhorada em relatórios de crash native do aplicativo, incluindo tanto Java e informações nativas da pilha.

Problemas De Notificação

Deixe uma resposta

O seu endereço de email não será publicado.

Previous post Partilhar O Bônus
Next post Baseband