Android Runtime (ART) og Dalvik

Android runtime (ART) er den administrerede runtime, der bruges af applikationer og nogle systemtjenester på Android. ART og dets forgænger Dalvik blev oprindeligt oprettetspecifikt til Android-projektet. ART som runtime udfører Dalvik-eksekverbart format og bytecode specifikation.

ART og Dalvik er kompatible driftstider, der kører ekstra bytekode, så appsudviklet til Dalvik skal fungere, når du kører med ART. Men nogleteknikker, der arbejder på Dalvik, arbejder ikke på kunst. For information omde vigtigste problemer, se Verifyingapp adfærd på Android runtime (ART).

KUNSTFUNKTIONER

her er nogle af de vigtigste funktioner implementeret af ART.

AOT-kompilering

ART introducerer AOT-kompilering på forhånd, hvilket kan forbedre appperformance. ART har også strammere installationstidsbekræftelse end Dalvik.

på installationstidspunktet samler ART apps ved hjælp af værktøjet on-devicedeks2oat. Dette værktøj accepterer eksterne filer som input og generatesa kompileret app eksekverbar for målenheden. Værktøjet skal kunnekompilere alle gyldige filer uden problemer. Men nogle post-processingtools producere ugyldige filer, der kan tolereres af Dalvik, men kan ikke becompiled af ART. For mere information, se Adresseringgarbage samling spørgsmål.

forbedret garbage collection

Garbage collection (GC) er meget ressourceintensiv, hvilket kan forringe en apps ydeevne,hvilket resulterer i hakket display, dårlig UI-lydhørhed og andre problemer. Kunst forbedrer skraldindsamling på flere måder:

  • for det meste samtidig design med en enkelt GC-pause
  • samtidig kopiering for at reducere baggrundshukommelsesbrug og fragmentering
  • længden af GC-pause er uafhængig af bunkestørrelsen
  • samler med lavere samlet GC-tid til det specielle tilfælde med oprydning af nyligt tildelte, kortvarige objekter
  • forbedret ergonomi for affaldssamling, hvilket gør samtidige affaldssamlinger mere effektive, og rettidig, hvilket gør GC_FOR_ALLOC begivenheder ekstremt sjældne i typiske brugssager

udviklings-og Fejlfindingsforbedringer

Art tilbyder en række funktioner til at forbedre app udvikling og debugging.

støtte til sampling profiler

historisk set har udviklere brugt Sporingsværktøjet (designet til tracingapplication udførelse) som en profiler. Mens sporvisning giver nyttige oplysninger, dens resultater på Dalvik er blevet skæv af Per-metode-opkald overhead, og brug af værktøjet mærkbart påvirker køretid ydeevne.

ART tilføjer støtte til en dedikeret sampling profiler, der ikke har dissebegrænsninger. Dette giver et mere præcist billede af appudførelse udenbetydelig afmatning. Prøveudtagningsstøtte blev tilføjet til sporvisning forDalvik i KitKat-udgivelsen.

støtte til flere debugging funktioner

ART understøtter en række nye debugging muligheder, især i monitor – andgarbage collection-relaterede funktionalitet. For eksempel kan du:

  • se, hvilke låse der holdes i stakspor, og spring derefter til tråden, der holder en lås.
  • spørg, hvor mange live-forekomster der er af en given klasse, bede om at se forekomsterne og se, hvilke referencer der holder et objekt live.
  • Filtrer begivenheder (som breakpoint) for en bestemt forekomst.
  • se den værdi, der returneres af en metode, når den afsluttes (ved hjælp af “metode-Afslut” – begivenheder).
  • Indstil felturpunkt for at suspendere udførelsen af et program, når et specifikt felt åbnes og/eller ændres.

forbedret diagnostisk detalje i undtagelser og nedbrud rapporter

ART giver dig så meget kontekst og detaljer som muligt, når runtime undtagelserforekomme. ART giver udvidet undtagelse detalje for java.lang.ClassCastException,java.lang.ClassNotFoundExceptionog java.lang.NullPointerException.(Senere versioner af Dalvik forudsat udvidet undtagelse detalje for java.lang.ArrayIndexOutOfBoundsExceptionog java.lang.ArrayStoreException, som nu omfatter størrelsen af array og out-of-bounds offset, og ARTdoes dette så godt.)

for eksempel viser java.lang.NullPointerExceptionnu oplysninger om, hvad appen forsøgte at gøre med null-markøren,f.eks. Her er nogle typiske eksempler:

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 giver også forbedret kontekst information i app native crash rapporter, ved at inkludere både Java og native stack oplysninger.

Rapportering Af Problemer

Skriv et svar

Din e-mailadresse vil ikke blive publiceret.

Previous post del bonusen
Next post Baseband