ODEX[1][2][3]是Android操作系统中的一种技术,它通过对APK应用程序中的classes.dex文件进行优化处理,生成一个新的odex文件并独立存储。原始APK文件中的classes.dex文件既可以保留,也可以删除。这一过程能够提高软件的启动速度,减少对RAM的占用,因为在没有odex的情况下,系统需要从APK包中提取dex才能运行。
定义
ODEX是从Android软件中的classes.dex文件生成的,其目的是为了加速软件的加载速度和开机速度。然而,ODEX也有一些缺点,如在添加新功能 时可能会出现问题。简单地说,ODEX化是在系统恢复出厂设置后第一次开机之前,预先提取classes.dex文件。这使得系统的启动或程序的运行速度更快。此外,将dex转换为odex还能节省空间,因为提取后可以从APK中删除dex。如果不进行ODEX化,则系统仍会自动提取dex,此时不仅APK中有dex,/data/dalvik-cache目录下也会有dex。尽管APK中的dex经过了压缩,但两个dex的整体大小超过了单个odex的大小。 效果
ODEX化后,系统启动和程序运行的速度显著提高,同时保持了稳定性的不变。因此,建议进行ODEX化。通常情况下,官方ROM包含ODEX文件,而自定义ROM则大多不含ODEX文件。这两种类型的ROM各自都有其优劣之处,目前还没有统一的看法。官方ROM通常是每个APK对应一个.odex文件,而自定义ROM则是将.odex转换为classes.dex并放入APK包中。因此,odeex ROM的.apk + .odex = deodex化ROM的一个.apk(简单来说,这是一个合并的过程)。