Inhoudsopgave:
Clark schrijft:
Wat betekent odex en deodex eigenlijk? Ik zie de termen die in bijna elke aangepaste ROM-thread worden genoemd en kan geen antwoord vinden dat ik kan begrijpen. Ik hoop dat Android Central kan helpen.
Geweldige vraag, Clark. En ik denk dat we kunnen antwoorden in termen die de meeste mensen zullen begrijpen. Zoals je hebt opgemerkt, zie je de termen odex en deodexed in veel forumberichten over aangepaste ROM's of diverse hacks voor zowel telefoons als tablets. Het kost veel werk van ontwikkelaars om gedodexed ROM's te maken van "stock" ROM's, zoals die aangeboden door zowel OEM's als Google.
Om te beginnen moeten we weten wat een odex-bestand is. Het is een onderdeel van een applicatie (het.apk-bestand) die vooraf is gebouwd om de Dalvik Virtual Machine sneller te laten laden met minder middelen. Als u in de / system / app / map op uw Android-telefoon of -tablet kijkt, zult u zien dat zowat elke applicatie zowel een.apk-bestand als een.odex-bestand heeft. Deze bestanden werken samen via de Dalvik VM om de apps op onze apparaten te laten werken zoals ze zouden moeten. Laten we het na de pauze afbreken.
De Dalvik VM
De Dalvik VM is een groot deel van een Android-systeem. Het is het onderdeel waarmee applicaties van derden die in Java zijn geschreven, op uw telefoon of tablet kunnen worden uitgevoerd. Het systeem zelf start de DVM en wanneer u op drukt om een app te starten, werkt deze. Het neemt de gegevens in de.apk-bestanden en gebruikt een Just-in-time (JIT) compiler, het bouwt de informatie in een programma en voert het vervolgens uit. Als delen van de code al zijn geoptimaliseerd en ingebouwd in een bestand dat de DVM kan uitvoeren, wordt het proces sneller en worden er minder bronnen gebruikt. Dat is wat een odex-bestand is.
Odex-bestanden
De odex-bestanden die u in uw systeemmap ziet, zijn gebouwd door de mensen die de toepassing zelf hebben geschreven en gebouwd. Android-apps worden geschreven in Java en vervolgens omgezet in bytecode. Vervolgens worden ze omgezet van de standaard Java Virtual Machine-compatibele.class-bestanden naar een speciaal type bestand dat de Dalvik VM kan lezen. Dit worden.dex-bestanden genoemd. Wanneer deze.dex-bestanden buiten de rest van de code worden geplaatst (die zich in het.apk-bestand bevindt), blijft er een stand-alone.odex-bestand over.
Er zijn voldoende goede redenen om alleenstaande.odex-bestanden te hebben. Ze maken opstarttijden sneller (vooral de eerste keer opstarten), door de Dalvik-cache te bouwen terwijl het systeem wordt opgestart. Ze besparen ook wat ruimte door waar mogelijk te verwijzen naar het Android-framework en de applicatie-ontwikkelaar in staat te stellen zijn of haar programma's te optimaliseren. Maar het hebben van seperate.odex-bestanden is niet erg hackervriendelijk.
Deodexing
Deodexing-bestanden betekent het stand-alone.odex-bestand en het.apk-bestand nemen en deze opnieuw opbouwen zodat al deze vooraf gebouwde toepassingsinformatie zich in het.apk-bestand bevindt in plaats van in het eigen bestand. De vooraf gebouwde gegevens voor de Dalvik VM bevinden zich nu in een klassen.dex-bestand in het.apk-bestand, zoals in de bovenstaande afbeelding. Dat maakt de.apk-bestanden een beetje groter en ze kunnen niet vooraf worden geladen wanneer het systeem wordt opgestart. Maar ze kunnen reverse-engineered worden door hackers en themers.
Met alle code en gegevens voor het programma op één plek, kunt u tools gebruiken om de app te "ontkoppelen" en te bewerken zoals u wilt. Dit is hoe thema's en aanpassingen zoals batterijpercentage mods worden gemaakt voor "stock" ROM's. Nadat een ontwikkelaar zijn of haar wijzigingen heeft aangebracht, wordt het.apk-bestand opnieuw opgebouwd en kunnen de wijzigingen worden uitgevoerd. Dit heeft geen invloed op andere delen van het systeem, omdat de code of gegevens niet met andere apps worden gedeeld.
Welke moet u kiezen?
Dat is echt aan jou, en wat je behoeften zullen zijn, maar ik stel voor om waar mogelijk een deodex-versie te flashen. Ja, odex-ROM's starten sneller op, maar je merkt het pas bij de allereerste keer opstarten wanneer alle systeem-apps vooraf in de cache zijn opgeslagen door de Dalvik VM. Je kunt ook heel wat ruimte besparen door odex-bestanden te gebruiken, maar deze ruimte zit allemaal in de systeempartitie en geeft je geen ruimte voor meer apps als je telefoon of tablet een afzonderlijke applicatiepartitie gebruikt. Met de moderne telefoons van vandaag en hun multi-coreprocessors en enorme hoeveelheden RAM, zult u geen snellere laadtijden van applicaties opmerken.
Als u dingen wilt doen zoals de statusbalk of het thema TouchWiz of Sense wijzigen, hebt u een deodex-ROM nodig. Je hebt ook een deodex-ROM nodig om enkele echt coole systeemaanpassingen uit te voeren, zoals het wijzigen van het instellingenmenu of bewerkingen in het framework. Kortom, als je je bootloader al hebt ontgrendeld en geroot, en je bent klaar voor een aangepast ROM, is het waarschijnlijk de beste keuze om een deodexed-versie te kiezen. Je zult versteld staan van de dingen die deze gekke ontwikkelaars kunnen verzinnen, en je zult er zeker een paar tegenkomen die je zelf wilt proberen.