转自:http://baike.baidu.com/view/7784265.htm?fr=aladdin
目录
1定义编辑
ODEX是
安卓上的
应用程序
apk中提取出来的可运行文件,即将APK中的classes.dex文件通过dex优化过程将其优化生成一个.odex文件单独存放,原APK中的classes.dex文件会保留。
2作用编辑
所谓O
dex,是由
android
软件中的classes.dex生成的,Odex化即是把那个文件预先提取出来作用是能加快软件加载速度和开机速度。不过O
dex也有缺点,那就是有时候加刷东西会出现问题。
简单说,原本系统恢复出厂设置后第一次开机需要先提取classes.dex出来,而O
dex化就是现在你提前把它提取出来了。系统启动或者程序运行加快的原因也就在此。并且将dex变为odex还可以节省空间,因为提取后可以把apk内的dex删除。如果不odex,那么系统还是会自动提取dex,这时不仅apk内有dex,/data/dalvik-cache目录下也有dex,虽然apk内的dex经过压缩了,但是两份dex的总体积已经大于一份odex的体积了。
3效果编辑
一般来说官方rom都是o
dex化的rom(含Odex文件),而定制rom大部分都是deodex化的(无odex文件)。两者应该各有优点吧,貌似现在也没有统一的说法。官方rom大部分每个
apk对应一个.o
dex文件,而deodex化的rom里面只有一个apk,把.odex转换成classes.dex放到apk包里面了。所以 o
dex rom的.
apk+.odex=deodex化rom的1个.apk (简单地来说,其实就上一个合并的过程)
4优点编辑
1.刷完机首次进入系统的时间会缩短一些。文件的运行速度应该也有所提升。
2.APK文件不能单独安装,并且如果反编译APK文件,一般也只能得到资源文件。可以说是起到一定的保护作用,避免被肆意修改和使用。这样做可以使其厂商保证一定的反盗版,因为没有
dex文件的
apk是无法正常安装的。
3.会增加一些可安装应用的空间,虽然不是很多。
4.某些机身内存太小的手机优化的时候可以删除dex文件来达到制作大内存包的目的,但是这种大内存包会使手机软件启动速度变慢。适合不追求速度,需要更多内存装软件的用户。
5缺点编辑
1.不方便修改ROM以及文件本身。
2.增加ROM包的体积,虽然不是很多。