Android is not unknown now to anyone and it is gaining popularity day-by-day. It is the most preferred platform as compared to other mobile operating other systems. Being open-source, Android has attracted many of the people towards it. Also, there are external developers who keeping in mind users choice design ROM’s.
XDA Developers, the best place to get a custom ROM for your Android device. It is one of the largest and most useful sources to learn Android, but there one more fact that is not unknown to many, the forum has all the information within it. Often on people come around some of the specific terms and keywords which tickles them and they want to clarify what all does it mean and what is its work. Referring to same, we have often seen users quarrying about odexed and deodexed, if you are one such seeker, who want to know what actually are odexed and deodexed then you have been directed to the right place.
What are Odexed and Deodexed in Android Custom ROM’s?
If you have ever installed a custom ROM onto your Android device then you must have come across “odexed” and “deodexed”, as nearly all the developers choose to deodex their ROM. To know what actually what is odexed, you will first have to understand what are odex files and what are their requirements in an Android ROM.
As Android is based on Linux, it uses application packages or APK’s as these are responsible for telling the system what app to load and execute. One must now that Android works on partitions, out of which those apps that are contained in the /system partition are system apps (which cannot be changed or modified without having root access) on the other hand those contained within the /data partition are user apps and can be freely modified. The /system partition is the first one to be loaded when and operating system boots up, therefore the inside it are given priority. These are only the apps that deals with odex and deodex.
Android applications are developed in two ways, the fact that each app is comprised of an APK and a cache part that tells the Android Dalvik Virtual Machine (VM) what are components in an app.
- The cache for each APK is contained separately in a .odex file, which loads into the virtual machine at the time of boot, thus speeding up boot times, this is Odexed.
- The cache for each APK is contained within the APK itself as a classes.dex file, making the boot times slower as Dalvik VM is built up, this is Deodexed.
To clear you, when an Android firmware is odexed, the .odex files for each/system APK (that are stored outside of the APK’s themselves) and are written into the Dalvik Virtual Machine when the OS boots up. As these .odex files contain preliminary load information about every system app, the OS knows what to expect when it’s booting up and consequently loads all the apps faster. For the users, it means that boot times are significantly speeded up and you can use your device frequently.
In a deodexed custom ROM there is no cache information within the Dalvik Virtual Machine during the booting time, therefore when the system status up, it only knows which apps to load as the /system partition APK’s are accessed. This will result in a much longer boot time and since each APK’s will be processed one by one and you will be able to use your device lately after you have switched it ON.
What’s better about Deodex?
Deodexed ROM’s are only the “first ever boot after clearing Dalvik cache” is slower and all the similar ones will be the same as any odexed ROM. During the first boot, all the cache information is written to the virtual machine and therefore, it will behave as any other firmware, until you clear the Dalvik cache.
Developers do so because of the modification possibilities, especially theming. As a deodexed ROM is and all it applications code is contained within one single APK, the developer the APKs values to apply any custom look and feel to the app itself, without breaking any functionality. This in turn opens up possibilities for changing different parameters of the app without affecting how others will operate. Since a deodexed package has no external dependencies, it provides more freedom to modify what they wish. Moreover, with a odexed ROM, theming is absolutely impossible because the .odex part of the application will always be in a mess.
Hope we efficiently explained you meaning and difference between odexed and deodexed. Let us know if you have any other facts and figures, we are here for you always.