当前位置: 手机中国论坛 > 华为论坛 > 华为手机论坛 > 帖子正文

关于apk文件odex化的分析并共享大家一键odex合并与分解工具

2012-10-05 23:31:39 61804 评论(219)
首先解释一下什么是Odex?

Odex全称Opendex,Odex是安卓上的应用程序apk中提取出来的可运行文件,是通过apk安装包的中的dex优化过的,再把apk包里的dex文件删除。这样做可以加快软件的启动速度,预先提取,减少对RAM的占用,因为没有odex的话,系统要从apk包中提取dex再运行。
所谓Odex,是由android软件中的classes.dex生成的,Odex化即是把那个文件预先提取出来作用是能加快软件加载速度和开机速度。不过Odex也有缺点,那就是有时候加刷东西会出现问题。简单说,原本系统每次执行APK都需要先提取一部分出来,而Odex化就是现在你提前把它提取出来了。系统启动或者程序运行加快的原因也就在此。而由于提取了Odex出来,会占用一部分存储空间,所以做Odex化的时候需要考虑空间方面的问题。
一般来说官方rom都是odex化的rom(含Odex文件),而定制rom大部分都是deodex化的(无odex文件)。两者应该各有优点吧,貌似现 在也没有统一的说法。官方rom大部分每个apk对应一个.odex文件,而deodex化的rom里面只有一个apk,把.odex转换成 classes.dex放到apk包里面了。所以 odex rom的.apk+.odex=deodex化rom的1个.apk (简单地来说,其实就上一个合并的过程)


再来说一下Odex的优点:
1.刷完机首次进入系统的时间会缩短一些。文件的运行速度应该也有所提升。
2.APK文件不能单独安装,并且如果反编译APK文件,一般也只能得到资源文件。可以说是起到一定的保护作用,避免被肆意修改和使用。这样做可以使其厂商保证一定的反盗版,因为没有没有dex文件的apk是无法正常安装的。
3.会增加一些可安装应用的空间,虽然不是很


再说Odex的缺点:
1.不方便修改ROM以及文件本身。
2.增加ROM包的体积,虽然不是很多。
3.当你升级某个被Odex的应用后,这个应用将会出现故障,最常见的就是FC。
而现在的定制rom之所以基本上都是deodex化(无odex文件)的是因为:
(1). 可以适当减小文件的体积,起到节省rom空间的作用;
(2).主要方便rom定制者对rom的个性化定制和移植;apk相对容易反编译和修改,而odex先要解包成smali然后才能生成classes.dex,如果要再生成odex,还要用dexopt-wrapper,比较麻烦。


为什么把分离出odex会加快运行速度:
Android启动时,DalvikVM监视所有的程序(APK文件)和框架,并且为他们创建一个依存关系树。DalvikVM通过这个依存关系树来为每个程序优化代码并存储在Dalvik缓存中。这样,所有程序在运行时都会使用优化过的代码。这就是当你刷一个新的ROM时,有时候第一次启动时间非常非常长的原因。当一个程序(或者框架库)发生变更,DalvikVM将会重新优化代码并且再次将其存在缓存中。在cache/dalvik-cache是存放system上的程序生成的dex文件,而data/dalvik-cache则是存放data/app生成的dex文件。

合并odex
把odex文件放到romdirapp目录下,运行批处理“odextools.bat

拆分Dex
将apk文件中滴classes.dex放到dex目录下,运行批处理“odextools.bat

注意:需要JAVA环境,也就是安装JDK,并配置环境变量(教程很多,我就不在详细告知了)

第一次运行要监测JAVA环境需要1~3分钟,出现Windows没有软盘提示点取消。



【图片1】关于apk文件odex化的分析并共享大家一键odex合并与分解工具

注意:该工具仅限华为C8812使用!!!
本帖有隐藏内容,需要回复楼主之后才能查看哦~

谢谢楼主,楼主威武! 登录 | 注册

最新评论(219)
︶ㄣ記憶無淚しo LV.1 发表于:2012-10-19 08:52:15 来自:PC端
这个东西我看看能不能修改。
回复
bb6531 LV.2 发表于:2012-10-26 14:35:47 来自:PC端
但愿中。。。。
回复
Otzi LV.1 发表于:2012-11-08 12:51:54 来自:PC端
好东西,来学习学习
回复
□⊙ LV.1 发表于:2012-11-12 21:10:29 来自:PC端 5#
下载看看 ,谢谢分享
回复
Zy-Fomzh LV.1 发表于:2012-11-15 10:12:25 来自:PC端 6#
【图片1】关于apk文件odex化的分析并共享大家一键odex合并与分解工具
回复
85525252 LV.1 发表于:2012-11-16 08:25:50 来自:PC端 7#
1111111111111111
回复
风雨雪山 LV.1 发表于:2012-11-20 16:19:29 来自:PC端 8#
2001008
回复
奋斗洋 LV.1 发表于:2012-11-28 11:50:49 来自:PC端 9#
fgffdsaffdsfdsfdsfdasfdsafddsafdf
回复
11717959 LV.1 发表于:2012-11-28 23:29:45 来自:PC端 10#
感谢分享。辛苦了了。楼主加油。。。
回复
a5121160 LV.1 发表于:2012-12-01 22:18:44 来自:PC端 11#
什么东东 看看再说
回复
陈代明 LV.1 发表于:2012-12-05 01:37:19 来自:PC端 12#
?哈哈黄世仁哈哈哈
回复
zgsjks LV.1 发表于:2012-12-08 11:31:57 来自:PC端 13#
.................
回复
dfdf4156 LV.1 发表于:2012-12-14 13:20:25 来自:PC端 14#
u8500可以用吗
回复
QQ小帅哥 LV.1 发表于:2012-12-18 12:51:01 来自:PC端 15#
dsdas 才可能收到
回复
tonydna LV.1 发表于:2012-12-21 19:50:51 来自:PC端 16#
虽然不用,但还是支持了!!...
回复
Copyright﹦翠翠 LV.1 发表于:2012-12-23 14:52:19 来自:PC端 17#
官方梵蒂冈和法国恢复贵航股份
回复
乘影峰 LV.1 发表于:2012-12-25 18:39:30 来自:PC端 18#
【图片2】关于apk文件odex化的分析并共享大家一键odex合并与分解工具 学习了
回复
813484004 LV.1 发表于:2012-12-25 20:05:14 来自:PC端 19#
【图片3】关于apk文件odex化的分析并共享大家一键odex合并与分解工具
【图片4】关于apk文件odex化的分析并共享大家一键odex合并与分解工具
我好想试试,自己弄了半天都没搞定
回复
雨中跳动的火 LV.1 发表于:2012-12-26 18:22:58 来自:PC端 20#
【图片5】关于apk文件odex化的分析并共享大家一键odex合并与分解工具
回复
qq450545215 LV.1 发表于:2012-12-28 13:18:25 来自:PC端 21#
我知道了!!!!
回复
-Albert LV.1 发表于:2012-12-28 22:34:41 来自:PC端 22#
感谢分享。辛苦了了。楼主加油。。。
回复
Q_875585566 LV.2 发表于:2012-12-29 14:23:44 来自:PC端 23#
不要迷恋哥,哥只是个传说!
回复
laoyexie LV.1 发表于:2012-12-30 10:20:46 来自:PC端 24#
试试修改其他rom行不,谢谢分享
回复
qq19129512 LV.1 发表于:2012-12-31 20:52:13 来自:PC端 25#
用用~~~~~~~~~~~
回复

您需要注册登录后,才能回帖哦! 登录 | 注册