Runtime är en miljö där program skrivna på ett visst språk körs. Android Runtime (ART) är Java-liknande runtime som kör Dalvik körbar (Dex) bytecode (från apk
filer) i en virtuell maskin. Liksom andra Runtime miljöer konst kan köra koden i tre olika lägen:
- Tolkning
- Just-In-Time (JIT) sammanställning
- före tid (AOT) sammanställning
för att förbättra prestanda översätter JIT-och AOT-kompilatorer DEX bytekod (under respektive före körning) till modersmål. JIT compiler var en del av DVM, readded till konst i Android 7. Sedan dess stöder AOT compiler också profilstyrd bakgrundssamling. App Profiler skapas under JIT kompilerade avrättningar.
medan tolk är en del av konstbibliotek, dex2oat
verktyg används som JIT och AOT kompilator. Dokumentation stater:
vid installationstiden kompilerar ART appar med dex2oat-verktyget på enheten. Detta verktyg accepterar DEX-filer som indata och genererar en kompilerad app körbar för målenheten.
och här:
JIT och AOT använder samma kompilator med en liknande uppsättning optimeringar
på din Marshmallow ROM AOT-kompilering fungerar inte i avsaknad av dex2oat
vilket kan påverka appens prestanda negativt. Även den inbyggda tjänsten installd
och PackageManager
Java-tjänsten är beroende av dex2oat
under appinstallation eller profiluppdatering av tidigare installerade appar. Så de kan bryta på grund av saknad fil.
för att sammanfatta, installd
eller dex2oat
kraschar är allvarliga buggar i din ROM som måste åtgärdas. Ta bort dex2oat
binär är inte en lösning utan en lösning som är mycket sannolikt att misslyckas.
relaterade:
- vad behövs för att köra ELF-binärer som sammanställts från android APK-filer?