I am a bit confused by the effect of deodexing (or even by terminology).

Based on answers to "What is the difference between odexed and deodexed roms?":

A "deodexed" ROM is one where the .odex files have been more or less merged back into the .apk

This one seems to imply that "deodexed" ROM is an odexed (thus precompiled/optimized) ROM where the .apk package contains the .odex stuff instead of it being in a separate file.

However, the same answer has a seemingly opposite quote:

ROMs are typically released in deodexed form because they can be themed and modified fairly easily, whereas theming/modifying an odexed ROM is basically impossible (at best things would crash like crazy). Some people also choose to release their ROMs in odexed versions for people who would prefer the performance gains.

This second quote seems to imply that the deodexed ROM does NOT have the performance gains of the odexed ROM (based on the last sentence) - I am guessing because it completely removes the .odex info for the sake of portability/theming; whereas the first quote seems to say that deodexed ROM is just as optimized as odexed, but differently packaged.

Which one of these meanings is correct? What am I missing?


  • Fission Vanilla: "ROM has root and has been deodexed, and zip alligned"

1 Answer 1


Deodexed ROMs do not have the .odex files integrated into the .apk's, they are removed. What eldareathis meant in his answer to the other question is that the reliance of the .apk's on the .odex files is removed; some information is integrated back into the .apk, but not the actual .odex file itself. This page has some technical details.

Deodexed ROMs may be slightly slower because of this; however I believe that as the Dalvik cache is built up from using the ROM, the performance gap is minimized.

  • thanks! Would you be able to elaborate on the "performance gap is minimized" piece? Does that mean that the gap is eliminated completely for any .apk after the first use (and mimized applies to "not every .apk has a cache built at once), or does it mean that for a given .apk, odexed version would still be faster than the deodexed even after the cacge is built?
    – DVK
    Apr 13, 2011 at 1:33
  • @DVK In general I think the .odex would still be faster, but having cached .dex files eliminates the need to translate all of the .apk at each startup. I think that overhead is probably much more significant than the optimizations, in most cases. Apr 13, 2011 at 1:46
  • 2
    @DVK: I see how that was unclear in my previous answer, so I went back and tried to clarify a bit. Thanks for pointing that out. Regarding this question, everything Matthew has said in his answer is absolutely correct. Apr 13, 2011 at 2:26

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .