手机之家论坛_中国最大最专业的手机论坛

OPPO品牌专区
收藏本版 (6) |订阅

OPPO品牌专区 今日: 0|主题: 1594

发新帖
楼主
财富榜
  1. imobile币:36997Kevin.Ma. 昵称:Kevin.Ma.
  2. imobile币:27219pepboy 昵称:pepboy
  3. imobile币:26204fudashuai 昵称:fudashuai
  4. imobile币:21895cooldock3 昵称:cooldock3
  5. imobile币:21403cao_jf 昵称:cao_jf
  6. imobile币:21292会飞的猪儿 昵称:会飞的猪儿
  7. imobile币:16262奔跑的蜗牛 昵称:奔跑的蜗牛
  8. imobile币:15822wxd_2006 昵称:wxd_2006
  9. imobile币:14761weierbaobei 昵称:weierbaobei
  10. imobile币:14400封妖人工湖 昵称:封妖人工湖
积分榜
  1. 积分:1019817郎 昵称:7郎
  2. 积分:75271zfsfj 昵称:zfsfj
  3. 积分:74403pepboy 昵称:pepboy
  4. 积分:73813paulgao 昵称:paulgao
  5. 积分:72007霹雳天龙 昵称:霹雳天龙
  6. 积分:71410out2000 昵称:out2000
  7. 积分:70261quanli1986 昵称:quanli1986
  8. 积分:66076无情剑客1 昵称:无情剑客1
  9. 积分:64488huoshijun 昵称:huoshijun
  10. 积分:64123goldhuman 昵称:goldhuman

一键odex合并与分解

[复制链接]
神州龙之魂 发布于: 2012-9-20 19:07 3289 次浏览 5 位用户参与讨论
跳转到指定楼层

马上注册,结交更多好友,享用更多功能,让你轻松玩转手机之家!

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
<p></p><div><table width="98%" class="t_table" style="background-color: #00BFFF"><tbody><tr><td><div style="text-align: center;"><b style="font-family: 楷体; "><font size="6" color="#ff0000">一键odex合并与分解</font></b></div><div style="background-color: rgb(255, 255, 255); "><font face="楷体" size="5" color="#9932cc"><b>什么是Odex?</b></font></div><div style="background-color: rgb(255, 255, 255); "><font face="楷体" size="5" color="#9932cc"><b>&nbsp; &nbsp; Odex全称Opendex,Odex是安卓上的应用程序apk中提取出来的可运行文件,是通过apk安装包的中的dex优化过的,再把apk包里的dex文件删除。这样做可以加快软件的启动速度,预先提取,减少对RAM的占用,因为没有odex的话,系统要从apk包中提取dex再运行。</b></font></div><div style="background-color: rgb(255, 255, 255); "><font face="楷体" size="5" color="#9932cc"><b>&nbsp; &nbsp; &nbsp;所谓Odex,是由android软件中的classes.dex生成的,Odex化即是把那个文件预先提取出来作用是能加快软件加载速度和开机速度。不过Odex也有缺点,那就是有时候加刷东西会出现问题。</b></font></div><div style="background-color: rgb(255, 255, 255); "><font face="楷体" size="5" color="#9932cc"><b>看懂了吗?用我的理解,简单说,原本系统每次执行APK都需要先提取一部分出来,而Odex化就是现在你提前把它提取出来了。系统启动或者程序运行加快的原因也就在此。而由于提取了Odex出来,会占用一部分存储空间,所以做Odex化的时候需要考虑空间方面的问题。</b></font></div><div style="background-color: rgb(255, 255, 255); "><font face="楷体" size="5" color="#9932cc"><b>&nbsp; &nbsp; &nbsp; &nbsp;一般来说官方rom都是odex化的rom(含Odex文件),而定制rom大部分都是deodex化的(无odex文件)。两者应该各有优点吧,貌似现在也没有统一的说法。官方rom大部分每个apk对应一个.odex文件,而deodex化的rom里面只有一个apk,把.odex转换成classes.dex放到apk包里面了。所以 odex &nbsp;rom的.apk+.odex=deodex化rom的1个.apk &nbsp;(简单地来说,其实就上一个合并的过程)</b></font></div><div style="background-color: rgb(255, 255, 255); "><font face="楷体" size="5" color="#9932cc"><b><br></b></font></div><div style="background-color: rgb(255, 255, 255); "><font face="楷体" size="5" color="#9932cc"><b>再来说一下Odex的优点:【我看火星的自用包里都有ODEX,其他的,没细看!】</b></font></div><div style="background-color: rgb(255, 255, 255); "><font face="楷体" size="5" color="#9932cc"><b>1.刷完机首次进入系统的时间会缩短一些。文件的运行速度应该也有所提升。</b></font></div><div style="background-color: rgb(255, 255, 255); "><font face="楷体" size="5" color="#9932cc"><b>2.APK文件不能单独安装,并且如果反编译APK文件,一般也只能得到资源文件。可以说是起到一定的保护作用,避免被肆意修改和使用。这样做可以使其厂商保证一定的反盗版,因为没有没有dex文件的apk是无法正常安装的。</b></font></div><div style="background-color: rgb(255, 255, 255); "><font face="楷体" size="5" color="#9932cc"><b>3.会增加一些可安装应用的空间,虽然不是很多。</b></font></div><div style="background-color: rgb(255, 255, 255); "><font face="楷体" size="5" color="#9932cc"><b><br></b></font></div><div style="background-color: rgb(255, 255, 255); "><font face="楷体" size="5" color="#9932cc"><b>再说Odex的缺点</b></font></div><div style="background-color: rgb(255, 255, 255); "><font face="楷体" size="5" color="#9932cc"><b>:</b></font></div><div style="background-color: rgb(255, 255, 255); "><font face="楷体" size="5" color="#9932cc"><b>1.不方便修改ROM以及文件本身。</b></font></div><div style="background-color: rgb(255, 255, 255); "><font face="楷体" size="5" color="#9932cc"><b>2.增加ROM包的体积,虽然不是很多。</b></font></div><div style="background-color: rgb(255, 255, 255); "><font face="楷体" size="5" color="#9932cc"><b>3.当你升级某个被Odex的应用后,这个应用将会出现故障,最常见的就是FC。</b></font></div><div style="background-color: rgb(255, 255, 255); "><font face="楷体" size="5" color="#9932cc"><b>而现在的定制rom之所以基本上都是deodex化(无odex文件)的是因为:</b></font></div><div style="background-color: rgb(255, 255, 255); "><font face="楷体" size="5" color="#9932cc"><b>1. 可以适当减小文件的体积,起到节省rom空间的作用;</b></font></div><div style="background-color: rgb(255, 255, 255); "><font face="楷体" size="5" color="#9932cc"><b>2.主要方便rom定制者对rom的个性化定制和移植;apk相对容易反编译和修改,而odex先要解包成smali然后才能生成classes.dex,如果要再生成odex,还要用dexopt-wrapper,比较麻烦。</b></font></div><div style="background-color: rgb(255, 255, 255); "><font face="楷体" size="5" color="#9932cc"><b><br></b></font></div><div style="background-color: rgb(255, 255, 255); "><font face="楷体" size="5" color="#9932cc"><b>为什么把分离出odex会加快运行速度:</b></font></div><div style="background-color: rgb(255, 255, 255); "><font face="楷体" size="5" color="#9932cc"><b>&nbsp; &nbsp; 当Android启动时,DalvikVM监视所有的程序(APK文件)和框架,并且为他们创建一个依存关系树。DalvikVM通过这个依存关系树来为每个程序优化代码并存储在Dalvik缓存中。这样,所有程序在运行时都会使用优化过的代码。这就是当你刷一个新的ROM时,有时候第一次启动时间非常非常长的原因。当一个程序(或者框架库)发生变更,DalvikVM将会重新优化代码并且再次将其存在缓存中。在cache/dalvik-cache是存放system上的程序生成的dex文件,而data/dalvik-cache则是存放data/app生成的dex文件。</b></font></div><div style="background-color: rgb(255, 255, 255); "><font face="楷体" size="5" color="#9932cc"><b><br></b></font></div><div style="background-color: rgb(255, 255, 255); "><font face="楷体" size="5" color="#9932cc"><b>合并odex</b></font></div><div style="background-color: rgb(255, 255, 255); "><font face="楷体" size="5" color="#9932cc"><b>把odex文件放到romdir\app目录下,运行批处理odextools.bat,剩下滴是中国人应该就会</b></font></div><div style="background-color: rgb(255, 255, 255); "><font face="楷体" size="5" color="#9932cc"><b><br></b></font></div><div style="background-color: rgb(255, 255, 255); "><font face="楷体" size="5" color="#9932cc"><b>拆分Dex</b></font></div><div style="background-color: rgb(255, 255, 255); "><font face="楷体" size="5" color="#9932cc"><b>将apk文件中滴classes.dex放到dex目录下,运行批处理odextools.bat,剩下滴是中国人应该就会</b></font></div><div style="background-color: rgb(255, 255, 255); "><font face="楷体" size="5" color="#9932cc"><b><br></b></font></div><div style="background-color: rgb(255, 255, 255); "><font face="楷体" size="5" color="#9932cc"><b><br></b></font></div><div style="background-color: rgb(255, 255, 255); "><font face="楷体" size="5" color="#9932cc"><b>P.S.需要JAVA环境,第一次运行要监测JAVA环境需要1~3分钟,出现Windows没有软盘提示点取消</b></font></div><font face="楷体" size="5" color="#9932cc"><b><br></b></font></td></tr></tbody></table><div><font face="楷体" size="5" color="#9932cc"><b><br></b></font></div></div><div><br></div><p></p><p></p>

评分

参与人数 1积分 +2 +2 收起 理由
★鱼哥★ + 2 + 2 感谢精彩分享!

查看全部评分

已有5人评论

签到天数: 738 天

[LV.9]以坛为家II

★鱼哥★ 发表于 2012-9-20 23:19:55
强帖留名了!

签到天数: 801 天

[LV.10]以坛为家III

D.L. 发表于 2012-9-21 08:40:46
★鱼哥★ 发表于 2012-9-20 23:19
强帖留名了!

昨天吃饱了不?求现场PP~~~

签到天数: 1 天

[LV.1]初来乍到

ue052 发表于 2012-10-2 11:28:38
感谢楼主分享

签到天数: 738 天

[LV.9]以坛为家II

★鱼哥★ 发表于 2012-10-2 15:20:04
感谢分享一下

签到天数: 360 天

[LV.8]以坛为家I

FightingAzAz 发表于 2012-12-30 09:15:12
本帖最后由 FightingAzAz 于 2012-12-30 09:22 编辑

感谢分享!求下载地址……
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

官方微信
官方微信
官方微博
官方微博