- - Vad är ART & Hur skiljer det sig från Dalvik Virtual Machine på Android?

Vad är ART & Hur skiljer det sig från Dalvik Virtual Machine på Android?

I teknologiens värld, nya terminologier ochförkortningar är inget nytt, och ibland, med varje ny utgåva av till och med befintlig programvara, kan du se en ny term som sammanfaller som alla verkar använda och förstå. Problemet för nybörjare och till och med många avslappnade användare är emellertid att de varken helt förstår vad den nya konnotationen betyder, och inte heller lätt kan ta reda på det på egen hand från officiella källor, främst på grund av det faktum att utvecklare inte är t för angelägen om att förklara många sådana terminologier och deras tekniska detaljer. I bästa fall kommer du att pekas på en officiell länk som ger en förklaring, men i så tekniska termer att det är ganska mycket värdelöst för en icke-tekniker.

Vi på AddictiveTips har alltid varit stolta överdumma ner tekniska koncept och tillhandahålla svar i termer som är behagliga för den tillfälliga användaren och teknikbörjan När Google beslutade att introducera ART med Android 4.4 KitKat såg vi detta som en möjlighet att introducera våra läsare till den nya runtime-miljön och hjälpa alla att förstå vad allt detta handlar om, och hur skiljer det sig från den virtuella Dalvik-maskinen som ART byggs för att ersätta.

What-is-ART_vs-Dalvik-Android-runtime-miljöer

Vad är en Runtime-miljö?

Innan vi kommer att besvara den faktiska frågan,vi måste förstå vad en runtime-miljö faktiskt är. För att sätta enklast uttryck består runtime av mjukvaruinstruktioner som körs när ditt program körs, även om de inte i huvudsak är en del av koden för den programvarubasen i synnerhet. Dessa instruktioner översätter i grund och botten programvarans egen kod till den kod som datorn kan köra. Därför kräver alla datorspråk en slags runtime-miljö som korrekt kan köra den kod som är skriven på det språket.

Android använder sig av en virtuell maskin som sinruntime-miljö för att köra APK-filerna som utgör en Android-applikation. Fördelen med att använda en virtuell maskin är tvåfaldig - för det första är appkoden isolerad från kärnoperativsystemet, vilket säkerställer att om något skulle gå fel, det finns i en isolerad miljö och inte påverkar det primära operativsystemet. Och för det andra möjliggör det korskompatibilitet, vilket innebär att även om en app är kompilerad på en annan plattform (t.ex. en PC, som vanligtvis är fallet med att utveckla mobila appar), kan de fortfarande köras på mobilplattformen med den virtuella maskinen .

För Android, den virtuella maskinbaserade runtimemiljö som hittills används är känd som Dalvik Virtual Machine, som jag är säker på att alla som någonsin har grävt in detaljerna i operativsystemet är mer än bekanta med.

Varför använda en virtuell maskin alls?

Det är faktiskt det som vi berörde precis ovanför. Virtuella maskiner är långsamma, det förnekar inget, men de har faktiskt ett par fördelar som gör dem till ett gynnat val.

  • Virtuella maskiner levererar en isolerad miljöför kodutförande. Därför, även om en app innehåller en skadlig kodkod som kan skada kärnans operativsystem, kommer den inte att påverka systemfilerna direkt, och därför kommer kärnoperativsystemet att förhindras från att skadas. Den stora fördelen är mer stabilitet och tillförlitlighet för operativsystemet.
  • App-APK: erna som levereras via Play Store(eller någon annan källa, för den delen) är okompilerade instruktioner som utvecklare litar på att den virtuella maskinen ska sammanställa före körning och köras på enheten. Detta ger mer kompatibilitet; om utvecklaren skulle tillhandahålla redan kompilerad kod och den kompilerades för en Snapdragon-baserad processor kanske den till exempel inte fungerar korrekt på ett Tegra-chip. Därför hanterar denna kompilering på enheten problemet.

Så, vad är Dalvik, och vad är fel med det?

Det är frågan att ställa, eller hur? Dalvik har varit där sedan Android startade 2007, och det har inte förändrats mycket sedan dess, bortsett från Just-In-Time (JIT) sammanställningsstrategi som introducerades i Android 2.2 Froyo, som i princip kompilerar appar direkt när de är lanseras, eller när användaren tillhandahåller nödvändiga instruktioner. Det är användbart såväl som en förbättring jämfört med den tidigare konventionella tolkningsmetoden som kompilerade och körde kod rad för rad när den sprang, men nackdelen är en enorm omkostnad när appen lanseras för första gången.

Detta beror på att systemet måste dra ihopalla nödvändiga filer, kompilera appen och ladda den till RAM. Så länge den sammanställda appen förblir inom RAM-minnet fortsätter den att svara snyggt, men när du laddar in fler appar och RAM-minnet tar slut, lossas den första och följaktligen startar hela processen vid efterföljande lansering. Tillvägagångssättet är vettigt på papper och har faktiskt fungerat bra tills nu för plattformen. Emellertid lider äldre enheter med begränsat RAM-minne mest, eftersom lastnings- / lossningscykeln fortsätter oftare, och därför känns systemet långsamt när det gäller total respons. Det är där den nya virtuella maskinen, ART, kommer in.

Vad är ART & Hur förbättrar det saker?

ART eller Android RunTime (ganska halt namn, ja,vi vet) är en ny experimentell virtuell maskin som Google har introducerat med Android 4.4 KitKat som ett utvecklingsalternativ (där Dalvik fortfarande är den som är inställd som standard för nu). Den primära skillnaden mellan ART och Dalvik är den sammanställningstrategi som båda dessa använder - ART använder ett nytt Ahead-Of-Time-koncept (AOT) i motsats till Dalviks JIT, som i princip kompilerar appar innan de ens lanseras. Vad detta innebär är att första gången installationer tar längre tid och appar kommer att ta mer plats på intern lagring, men samtidigt eftersom appen kommer att kompileras så snart den installeras kommer lanseringstiderna att bli mycket snabbare. På samma sätt, eftersom kompilationsdelen tas om hand bara en gång vid installationen, är processorns beskattning lägre, vilket resulterar i bättre batteritid och total prestanda.

Dalvik Vs. ART - Jämförelse

Låt oss bara göra en snabb jämförelse av båda de virtuella maskinerna innan vi går vidare.

Dalvik

KONST

Använder Just-In-Time (JIT) -strategi, vilket resulterar i lägre lagringsutrymmesförbrukning men längre appbelastningstiderAnvänder AOT-of-Time (AOT) -strategi, som sammanställer appar när de är installerade, vilket resulterar i snabbare belastningstider och lägre processoranvändning
Cache byggs upp över tid, så starttiderna är snabbareCache byggs vid första uppstarten, varför det tar betydligt längre tid att starta om enheten
Fungerar bättre för lägre interna lagringsenheter eftersom utrymmet är mindreKonsumerar mycket mer internt lagringsutrymme eftersom det lagrar kompilerade appar utöver APK: erna
Är stabil och tidtestad - valfri VM för apputvecklareÄr mycket experimentellt och nytt - inte mycket stöd från apputvecklare än

Du säger att ART är experimentellt ...

Ja, och just nu är det bara tillgängligt påenheter med Snapdragon-chipset och kör Android 4.4 KitKat. Du har möjlighet att byta från Dalvik till ART från de dolda utvecklaralternativen, om du vill, men du bör få veta att vissa av dina appar kanske inte fungerar korrekt. Om det redan finns en app-cache som redan är byggd under Dalvik, kan den första omstarten efter att ha bytit ta upp till en halvtimme.

Google har främst gjort ART tillgängligt medKitKat för utvecklare att leka med och skapa grunden för en permanent växel i framtiden. Och detta innebär inte på något sätt att ART är redo att användas idag. Det kommer att vara i framtiden, men för tillfället är det experimentellt och inte passande för daglig användning av slutanvändaren.

När det gäller fördelarna med ART är det blandaderapporter. För de flesta granskare består testanordningarna av fyrkärniga processorer med över 2 spelningar RAM, vilket är en mer än tillräcklig installation för att verkligen observera hastighetsvinsterna från ART. Fortfarande rapporterar slumpmässiga användare en uppgång på upp till 50% i hastighet och mer än 30% i batteriets livslängd. Ytterligare andra hävdar att det inte är mer än en placeboeffekt.

I all rättvisa kan ingenting sägas innan detblir tillgänglig för massor och förlorar den experimentella taggen. Därför sparar vi debatten för senare. Det som sägs med säkerhet är att ART är framtiden. Google kommer att gå med i förväg sammanställning för att verkligen matcha iOS, det är den största motsvarigheten, och ART kommer att bana väg. Oavsett hur dumt namnet kan verka eller hur ofullständigt det är just nu, fortsätter vi att se ART mer och mer.

kommentarer