2026年11月1日 · 今日 0 帖 · 会员 6.1万 · 主题 17.4万
登录 · 注册 · 游客,欢迎随便逛逛
返回版块
1000
Lv9有为九子能等级图标
勋章勋章勋章勋章勋章
帖子
9.3万
回复
2,089
积分
60.3万
注册
2006-12-06
[安卓交流]

【高手必读】odex分离解析

[复制链接]
查看 389 回复 3
楼主 发表于 | 只看该作者
9 人收藏

【什么是dalvik-cache?】 当Android启动时,DalvikVM监视所有的程序(APK文件)和框架,并且为他们创建一个依存关系树。DalvikVM通过这个依存关系树来为每个程序优化代码并存储在Dalvik缓存中。这样,所有程序在运行时都会使用优化过的代码。这就是当你刷一个新的ROM时,有时候第一次启动时间非常非常长的原因。当一个程序(或者框架库)发生变更,DalvikVM将会重新优化代码并且再次将其存在缓存中。在cache/dalvik-cache是存放system上的程序生成的dex文件,而data/dalvik-cache则是存放data/app生成的dex文件。 —————————————— 【ODEX作用】 所谓Odex,是由android软件中的classes.dex生成的,Odex化即是把那个文件预先提取出来作用是能加快软件加载速度和开机速度。不过Odex也有缺点,那就是有时候加刷东西会出现问题。 看懂了吗?用我的理解,简单说,原本系统每次执行APK都需要先提取一部分出来,而Odex化就是现在你提前把它提取出来了。系统启动或者程序运行加快的原因也就在此。而由于提取了Odex出来,会占用一部分存储空间,所以做Odex化的时候需要考虑空间方面的问题。 ——————————————//【Odex的效果】 Odex化后系统启动和程序运行速度大大提高,稳定性不变。因此推荐做Odex化。 一般来说官方rom都是odex化的rom(含Odex文件),而定制rom大部分都是deodex化的(无odex文件)。两者应该各有优点吧,貌似现在也没有统一的说法。官方rom大部分每个apk对应一个.odex文件,而deodex化的rom里面只有一个apk,把.odex转换成classes.dex放到apk包里面了。所以 odex rom的**.apk **.odex=**的未odex化rom的1个.apk (简单地来说,其实就上一个合并的过程) —————————————— 【odex的优点】 1.刷完机首次进入系统的时间会缩短一些。文件的运行速度应该也有所提升。 2.APK文件不能单独安装,并且如果反编译APK文件,一般也只能得到资源文件。可以说是起到一定的保护作用,避免被肆意修改和使用。这样做可以使其厂商保证一定的反盗版,因为没有没有dex文件的apk是无法正常安装的。 3.会增加一些可安装应用的空间,虽然不是很多。 —————————————— 【odex的缺点】 1.不方便修改ROM以及文件本身。 2.增加ROM包的体积,虽然不是很多。 3.当你升级某个被Odex的应用后,这个应用将会出现故障,最常见的就是FC。

登录回复
114559
Lv1韶华一笑间等级图标
帖子
6
回复
1,226
积分
0
注册
2012-07-05
1 楼

【Hacker〉、顶帖组!

114607
Lv1韶华一笑间等级图标
勋章勋章
帖子
0
回复
7,133
积分
6,711
注册
2012-07-06
2 楼

》江西◇吉安◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇◇

75472
Lv6胸怀六国志等级图标等级图标等级图标
勋章勋章
帖子
1
回复
5,109
积分
25万
注册
2011-10-01
3 楼

惜缘】顶顶贴组

登录后可以回复这个帖子。旧账号可使用原密码登录。

登录 注册新号
← 返回版块