Odex/Deodex/Dalvik
Odex
Az Android fájlrendszerben az alkalmazások tömörítettek,csomagoltak,ezeknek a "csomagoknak"a kiterjesztése az .apk.Ezek az apk-k tartalmazzák az odex file-okat is,melyekenek elsődleges feladata az,hogy helyet takarítsanak meg.Ezek a file-ok tulajdonképpen a rendszer bebootolásának optimalizálását elősegíteni hivatott részei az alkalmazásoknak.Gyorsabbá teszik a bootolási folyamatot azáltal,hogy az alkalmazások bizonyos részleteit az odexekből előre betölti a rendszer.Másrészt viszont az alkalmazások elindulását lassítani is képes az,hogy egyes részei máshol vannak.
Deodex
A deodex tulajdonképpen egy bizonyos módszerrel újracsomagolja ezeket az apk-kat és visszaalakítja az odexeket classes.dex-file-okká.Ezzel az alkalmazás-csomag minden egyes része egyetlen helyre kerül és elkerülhető annak a veszélye,hogy egy módosított alkalmazás összeakadjon az otthagyott odex-szel.
Összegezve:a deodexelt romok(vagy apk-k) összes alkalmazás-csomagja egy helyre kerül,lehetővé téve ezzel azt,hogy ezek könnyen módosíthatók lehessenek pl.a témázások során.A főzött romok és a fejlesztők által módosított apk-k tehát mindig deodexeltek,azért,hogy egységesek maradjanak,ne legyenek olyan részleteik,amelyeket a rendszer máshol tárol.
Hogyan működik?
Az Android op.rendszer ún. Java alapú Virtual Machine-t használ az alkalmazások futtatására.Ezt Dalvik Virtual Machine-nek hívják.A deodexelt(.dex)file tulajdonképpen azt a cache állományt tartalmazza,amelyet a Dalvik VM használ(=Dalvik cache)és ez benne van az apk-ban.Ezzel szemben az odex ennek a dex file-nak az optimalizált változata,amelyeket az apk-ból leválasztottak.Az Android a rendszeralkalmazásoknál alapból ezt a megoldást használja.
Tehát bootoláskor a Dalvik VM a Dalvik cache-t ezekből az odexekből építi fe.Ez lehetővé teszi,hogy az oprendszer már előre "megtanulhassa",hogy mely alkalmazások fognak betöltődni,ezzel csökkenthető a bootolási idő.
A deodex során a fejlesztő visszarakja ezeket az odex fájlokat a megfelelő apk-kba.Ez teszi lehetővé azt,hogy ezen apk-k bármelyike módosítható legyen anélkül,hogy a rendszer működési környezete károsodna.
Előnyök és hátrányok
A deodex előnye a módosithatóság.Ezért használják széles körben a főzött romokban és a témákban.A fejlesztők nemcsak azért deodexelik először a romjaikat,hogy a system- alkalmazásokat módosíthassák,hanem azért is,hogy lehetővé tegyék a témázhatóságát.
Miután az odexek gyorsan felépítik a Dalvik cache-t,eltávolításuk növeli a bootolás idejét.Ez persze csak a legelső boot-kor igaz,miután az alkalmazások a használatuk során létrehozzák a Dalvik cache-t.Persze ha valami miatt töröljük a Dalvik cache-t,a bootidő újra hosszú lesz az első újrainduláskor...
Az átlagos felhasználó számára nagyon fontos a témázhatóság.Az Android témák is apk-k által valósulnak meg,tehát ha ezeket akarjuk módosítani,mindig deodexelt romra van szükségünk.