Android Runtime (ART) ja Dalvik

Android runtime (ART) on Androidin sovellusten ja joidenkin järjestelmäpalvelujen käyttämä hallittu runtime. ART ja sen edeltäjä Dalvik luotiin alun perin nimenomaan Android-projektia varten. ART koska runtime suorittaa dalvikexecutable muodossa ja Dex bytecode erittely.

ART ja dalvik ovat yhteensopivia ajettavia Dex bytecode-koodeja, joten dalvikille kehitettyjen appsdeveloped-sovellusten pitäisi toimia, kun ajetaan Artin kanssa. Dalvikilla toimivat sometekniikat eivät kuitenkaan toimi taiteen parissa. Lisätietoja themost tärkeitä kysymyksiä, katso Verifyingapp käyttäytyminen Android runtime (ART).

ART Features

Tässä muutamia taiteen toteuttamia pääpiirteitä.

Ahead-of-time (AOT)-kooste

ART esittelee ahead-of-time (AOT) – koosteen, joka voi parantaa soveltuvuutta. Artissa on myös tiukempi asennusajan todentaminen kuin Dalvikissa.

install time, ART kokoaa sovelluksia on-devicedex2oat-työkalulla. Tämä apuohjelma hyväksyy DEX tiedostoja syötteenä ja generatesa käännetty sovellus suoritettavan kohdelaitteelle. Apuohjelman pitäisi pystyä kääntämään kaikki voimassa olevat DEX-tiedostot vaikeuksitta. Jotkut jälkikäsittelytyökalut tuottavat kuitenkin virheellisiä tiedostoja, joita Dalvik voi sietää, mutta joita ART ei pysty kääntämään. Lisätietoja, Katso osoite Garbage Collection kysymyksiä.

parempi roskien keruu

roskien keruu (GC) on erittäin resurssiköyhää, mikä voi heikentää sovelluksen suorituskykyä,mikä johtaa huteraan näyttöön, huonoon käyttöliittymän reagointikykyyn ja muihin ongelmiin. Taide parantaa roskien keräilyä monin tavoin:

  • useimmiten samanaikainen suunnittelu, jossa on yksi GC-tauko
  • samanaikainen kopiointi taustamuistin käytön ja pirstoutumisen vähentämiseksi
  • GC-tauon pituus ei riipu kasan koosta
  • kerääjä, jonka KOKONAISGC-aika on pienempi äskettäin jaettujen, lyhytikäisten esineiden siivoamisen erikoistapauksessa
  • parempi roskien keräysergonomia, jolloin samanaikaiset roskien keruut ajankohtaista, minkä vuoksi GC_FOR_ALLOC tapahtumat ovat erittäin harvinaisia tyypillisissä käyttötapauksissa

kehitys-ja Virheenkorjausparannukset

Art tarjoaa useita ominaisuudet Parantaa app development ja virheenkorjaus.

support for sampling profiler

historiallisesti kehittäjät ovat käyttäneet Traceviewtoolia (suunniteltu tracingapplication-toteutukseen) profiloijana. Traceview antaa hyödyllistä tietoa, mutta sen tulokset dalvikista ovat vääristyneet menetelmäkohtaisen puhelun yläpuolella, ja työkalun käyttö vaikuttaa huomattavasti suoritusajan suorituskykyyn.

ART lisää tuen omalle näytteenottoprofilorille, jolla ei ole näitä rajauksia. Tämä antaa tarkemman kuvan sovelluksen toteutuksesta ilman merkittävää hidastumista. Traceview fordalvikiin lisättiin näytteenottotuki KitKat-julkaisussa.

tuki useammille virheenkorjausominaisuuksille

ART tukee useita uusia virheenkorjausvaihtoehtoja, erityisesti monitor – andgarbage-kokoelmaan liittyvissä toiminnoissa. Voit esimerkiksi:

  • Katso, mitä lukkoja pidetään pinossa jälkiä, sitten hypätä lanka, joka pitää Lukko.
  • kysy kuinka monta elävää esiintymää on tietyssä luokassa, pyydä nähdä esiintymät ja mitkä viittaukset pitävät objektin elossa.
  • suodata tapahtumia (kuten breakpoint) tietylle esiintymälle.
  • Katso menetelmällä palautettu arvo, kun se poistuu (käyttäen ”method-exit” – tapahtumia).
  • Aseta kentän tarkkailupiste keskeyttämään ohjelman suoritus, kun tiettyä kenttää käytetään ja/tai muutetaan.

parannetut diagnostiset yksityiskohdat poikkeuksissa ja kaatumisraporteissa

ART antaa sinulle mahdollisimman paljon asiayhteyttä ja yksityiskohtia, kun ajonaikaisia poikkeuksia esiintyy. ART tarjoaa laajennetut poikkeusyksityiskohdat java.lang.ClassCastException,java.lang.ClassNotFoundExceptionja java.lang.NullPointerException.(Myöhemmät versiot dalvikista sisälsivät laajennetut poikkeusyksityiskohdat java.lang.ArrayIndexOutOfBoundsExceptionja java.lang.ArrayStoreException, jotka nyt sisältävät joukon koon ja out-of-bounds offsetin, ja ARTdoes tästäkin.)

esimerkiksi java.lang.NullPointerExceptionnäyttää nyt tietoa siitä, mitä sovellus yritti tehdä null-osoittimella,kuten mihin kenttään sovellus yritti kirjoittaa tai millä menetelmällä se yritti soittaa. Tässä muutamia tyypillisiä esimerkkejä:

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 tarjoaa myös parannettua asiayhteystietoa app native crash reports, sisällyttämällä sekä Java ja native stack tiedot.

Raportointiongelmat

Vastaa

Sähköpostiosoitettasi ei julkaista.

Previous post Share the Bonus
Next post kantataajuus