Android mobile operating system has gained a lot of developer network over the years and many newbies find themselves comfortable with a lot of helping hands. If you’re interested in Android custom development and tinkering, you must have visited various developer forums and blogs where you seek knowledge over so many things or to simply try the advanced stuff on your smartphone. However, many of you might have stumbled on technical terms in the forums which makes you feel lost in the tech-world.
If you’re interested in themes and custom ROMs, you might have heard about the terms “Odexed” and “Deodexed” in many forums. You might wonder what’s the difference between an odexed ROM and a deodexed ROM, the pros & cons etc… These two terms might look too technical and scary but they are so simple if you understand them. Today we will see the differences between Odexed vs Deodexed and explore their advantages and disadvantages.
Let’s Start with Odexed ROM
Odex stands for “Optimized Dalvik Executable File” and is used to optimize the speed of apps in Android system. Stock Android operating system usually comes Odexed, which means you’ll find files with .odex extension within the system app folders. For instance, if you navigate to the /system/app folder on your Android device, you’ll find files like Calendar.apk and Calendar.odex. Both of these files are the two halves of one whole when executed in your device.
So, What’s Odex file?
Odex file serves the purpose of organizing the Android system by storing the app related information like start up parameters, app usage etc… Since the Odex files are stored outside the original APK files, Android dalvik virtual machine can compile it without taking the pain of decompiling the APK file. Odex files are directly loaded into dalvik cache making the load times faster during the boot. This is the reason why it’s recommended to wipe the dalvik cache while flashing a new ROM.
If you’re looking forward to theme an app or ROM, then odexed ROM is not what you’re looking for. Odex files makes it difficult for the developer to theme or hack the app as a portion of the app code has been extracted to some other location in the form of .odex files. So, let’s see what Deodexed ROM means.
Here comes the Deodexed ROM
As you would expect, deodexed ROM is the opposite of odexed ROM and it would combine both APK and ODEX files into a single entity. Deodexing is basically repackaging the APK along with the odex file such that the information contained in the odex file is placed inside the APK in the form of classes.dex file. So, with deodexed ROM, you’ll have all the content of an app in a single APK which makes it easier to theme or modify.
However, the boot load times will be degraded as the dalvik machine can’t preload the program library beforehand. Deodexed files makes it easier to manage by the user as one needs to remove a single file to completely delete the app. In case of odex files, sometimes you’ll face errors due to presence of leftover odex file in the system folder.
So, Which one to Pick?
If you’re still confused on which kind of ROM to pick, we will further simplify the terms to you. Let’s see the advantages and disadvantages of odex and deodex files when compared to each other.
If we’re talking about the odex files, here are its advantages when compared to the deodex files.
- In case of odex files, apps start a lot faster since the preloading information is separately available to load directly to the Dalvik virtual machine. Where as in deodexed files, the boot times are significantly longer as the DVM has to decompile APKs at boot time to get the necessary information.
- The odexed APKs occupy less space when compared to the deodexed APKs, so they occupy less room in the system folder.
Now it’s time to see the importance of deodexed files in Android system.
- Deodexed files contain the entire code of an app in a single package which makes it easier to theme/modify the app to our needs. In case of odexed files, this is not possible and you’ll have to stick with the stock looks on your device.
- Deleting systems apps or data is much easier in deodexed ROMs as all you need to do is to delete a single file. However, .odex files must be deleted separately (if not deleted already) to avoid errors after deleting an app/ app data.
So, now that we have seen regarding both the odexed and deodexed files, it’s time to decide which one is the most suitable format for you. The Android OS that comes preinstalled from the OEM usually comes odexed. The simple logic behind that is the faster booting time which makes the user feel awesome when they power ON their device and see a blazing fast boot time. Moreover, OEMs want to restrict the users from tampering the system apps so that the stability of the device is not compromised.
Now let’s see the other side of the coin. Deodex ROMs have a longer boot times when compared to odexed ROM, but the notable fact is that only the “first boot after dalvik cache wipe” takes longer and the subsequent boot times will be similar in both the cases. During the first boot, the preload information will be loaded into the Dalvik machine and thereafter there is no noticeable difference between Odex and Deodex ROMs.
Moreover, Deodexed ROMs give you the flexibility to theme the apps and make custom ROMs with awesome features. However, please be warned that the modified APKs might sometimes cause instability in the system but that’s not the issue if they’re modified correctly. So, deodexed ROMs are the most preferable type among the developers solely for the freedom of modification which is not possible if you stick with the odexed ROM just for one quick boot.
After going through a brief description of these two terms, what’s your say? Odexed or Deodexed?