Innehållsförteckning:
Clark skriver,
Vad pokker betyder egentligen odex och deodex? Jag ser termerna som nämns i nästan varje anpassad ROM-tråd och kan inte hitta ett svar som jag kan förstå. Jag hoppas att Android Central kan hjälpa till.
Fantastisk fråga, Clark. Och en jag tror att vi kan svara på termer som de flesta kommer att förstå. Som du har noterat ser du termerna odex och deodexed i många forum-inlägg om anpassade rom-skivor eller olika hacks för telefoner och surfplattor båda. Det kräver mycket arbete för utvecklare att skapa deodexade ROM-skivor från "lager"-ROM: er, liksom de som erbjuds från både OEM och Google.
För att börja måste vi veta vad en odex-fil är. Det är en del av en applikation (.apk-filen) som har förbyggts för att få Dalvik Virtual Machine att ladda den snabbare med mindre resurser. Om du tittar i / system / app / mappen på din Android-telefon eller surfplatta ser du att nästan varje applikation har både en.apk-fil och en.odex-fil. Dessa filer fungerar tillsammans genom Dalvik VM för att få apparna att fungera som de ska på våra enheter. Låt oss bryta ner allt efter pausen.
Dalvik VM
Dalvik VM är en stor del av ett Android-system. Det är den komponent som tillåter applikationer från tredje part skrivna i Java att köras på din telefon eller surfplatta. Själva systemet startar DVM: n, och när du trycker på för att starta en app går det att fungera. Det tar data inuti.apk-filerna och använder en Just-in-time (JIT) kompilator, den bygger informationen till ett program och kör sedan den. Att ha delar av koden redan optimerad och inbyggd i en fil som DVM kan köra gör processen snabbare och använder mindre resurser. Det är vad en odex-fil är.
Odex-filer
Odex-filerna du ser i din systemmapp är byggda av de personer som skrev och byggde själva applikationen. Android-appar skrivs i Java och konverteras sedan till bytkod. Sedan konverteras de från standard Java Virtual Machine-kompatibla.klassfiler till en speciell filtyp som Dalvik VM kan läsa. Dessa kallas.dex-filer. När dessa.dex-filer placeras utanför resten av koden (som finns i.apk-filen) sitter du kvar med en fristående.odex-fil.
Det finns gott om goda skäl att ha fristående.odex-filer. De gör uppstartstider snabbare (särskilt den första uppstarten) genom att bygga Dalvik-cachen när systemet startas. De sparar också lite utrymme genom att peka på Android-ramverket när det är möjligt och låter applikationsutvecklaren optimera sina program. Men att ha seperate.odex-filer är inte särskilt hackervänligt.
Deodexing
Deodexing-filer innebär att ta den fristående.odex-filen och.apk-filen och bygga om dem så att all denna förbyggda applikationsinformation finns i.apk-filen istället för sin egen fil. De förbyggda data för Dalvik VM finns nu i en klasser.dex-fil i.apk-filen, som på bilden ovan. Det gör.apk-filerna lite större och de kan inte laddas i förväg när systemet startas. Men de kan vara omvänd konstruerade av hackare och tema.
Med all kod och data för programmet på ett ställe kan du använda verktyg för att "bygga upp" appen och redigera den du vill. Så här görs teman och tweaks som batteriprocentmods för "lager"-ROM. När en utvecklare har gjort sina ändringar bygger de sedan upp.apk-filen och ändringarna kan köras. Detta påverkar inte någon annan del av systemet eftersom ingen av koden eller data delas med andra appar.
Vilket ska du välja?
Det är verkligen upp till dig, och vad dina behov kommer att bli, men jag föreslår att du blinkar en deodex-version när det är möjligt. Ja, odex-ROM-skivor startar snabbare, men du märker det faktiskt bara på den allra första uppstarten när alla systemappar är förcacherade av Dalvik VM. Du kan också spara lite utrymme genom att använda odex-filer, men det här utrymmet finns i systempartitionen och ger dig inte utrymme för fler appar om din telefon eller surfplatta använder en separat applikationspartition. Med dagens moderna telefoner och deras flerkärniga processorer och enorma RAM-banker märker du inte ens snabbare laddningstid för applikationer.
Om du vill göra saker som att ändra statusfältet eller temat TouchWiz eller Sense, behöver du en deodex-ROM. Du behöver också en deodex-ROM för att göra några av de riktigt coola djupa systeminställningarna som att ändra inställningsmenyn eller redigera till ramverket. Kort sagt, om du redan har låst upp din bootloader och rotat, och du är redo för en anpassad ROM, är förmodligen det bästa valet att välja en deodexed version. Du kommer att bli förvånad över de saker som dessa galna utvecklare kan komma på, och du kommer säkert att stöta på några som du vill prova själv.