- 浏览: 214770 次
- 性别:
- 来自: 上海
文章分类
- 全部博客 (196)
- android (153)
- sqlite (1)
- java (3)
- os (4)
- tools (4)
- ResolveInfo 转 packageinf 取信息 (1)
- multimedia (2)
- fastboot (1)
- create user in samba (0)
- android qcn (0)
- windows (0)
- net (2)
- linux (1)
- git (0)
- proguard (0)
- android cpu (1)
- android gts (1)
- MySql (1)
- c/c++ (0)
- network (1)
- python (3)
- AI (1)
- Ultroedit (1)
- HarmonyOS NEXT (0)
什么是ODEX?
Android应用程序中有一个叫做classes.dex的文件,这是Java源码经过ADT的编译后会转换出来的。
它是Android系统中可以在Dalvik虚拟机上直接运行的文件格式,而odex则是由classes.dex生成的。
ODEX优化有什么用?
ODEX的用途是分离程序资源和可执行文件、以及做预编译处理,达到加快软件加载速度和开机速度的目的。
一般来说,厂商的原厂系统都会为自己的ROM做ODEX优化处理以提高性能。
而第三方民间ROM(除魔趣之外)几乎都没有做,实在搞不懂这是什么道理- -!
棒棒糖与ART带来的疑问?
很多人会有疑问,Android 5.0开始,默认已经使用ART,弃用Dalvik了。
应用程序会在安装时被编译成OAT文件,(ART上运行的格式)ODEX还有什么用呢?
这里我们引用Google权威的回答:
Dex file compilation uses a tool called dex2oat and takes more time than dexopt. The increase in time varies, but 2-3x increases in compile time are not unusual. For example, apps that typically take a second to install using dexopt might take 2-3 seconds.
DEX转换成OAT的这个过程是5.0以上系统用户在安装程序或是刷入ROM、增量更新后首次启动时必然执行的。
按照Google的说法,相比做过ODEX优化,未做过优化的DEX转换成OAT要花费更长的时间,比如2-3倍。
比如安装一个odex优化过的程序假设需要1秒钟,未做过优化的程序就需要2~3秒。
由此可见,虽然dalvik被弃用了,但ODEX优化在Android 5.0系统以上依旧起着作用。
ODEX优化事实上是由一个叫做WITH_DEXPREOPT的参数控制的,开启该参数后,会对APK、JAR以及内核镜像进行优化。
其中,针对APK和JAR的最直观的优化体现就是,程序的dex被转换成odex。
Android应用程序中有一个叫做classes.dex的文件,这是Java源码经过ADT的编译后会转换出来的。
它是Android系统中可以在Dalvik虚拟机上直接运行的文件格式,而odex则是由classes.dex生成的。
ODEX优化有什么用?
ODEX的用途是分离程序资源和可执行文件、以及做预编译处理,达到加快软件加载速度和开机速度的目的。
一般来说,厂商的原厂系统都会为自己的ROM做ODEX优化处理以提高性能。
而第三方民间ROM(除魔趣之外)几乎都没有做,实在搞不懂这是什么道理- -!
棒棒糖与ART带来的疑问?
很多人会有疑问,Android 5.0开始,默认已经使用ART,弃用Dalvik了。
应用程序会在安装时被编译成OAT文件,(ART上运行的格式)ODEX还有什么用呢?
这里我们引用Google权威的回答:
Dex file compilation uses a tool called dex2oat and takes more time than dexopt. The increase in time varies, but 2-3x increases in compile time are not unusual. For example, apps that typically take a second to install using dexopt might take 2-3 seconds.
DEX转换成OAT的这个过程是5.0以上系统用户在安装程序或是刷入ROM、增量更新后首次启动时必然执行的。
按照Google的说法,相比做过ODEX优化,未做过优化的DEX转换成OAT要花费更长的时间,比如2-3倍。
比如安装一个odex优化过的程序假设需要1秒钟,未做过优化的程序就需要2~3秒。
由此可见,虽然dalvik被弃用了,但ODEX优化在Android 5.0系统以上依旧起着作用。
ODEX优化事实上是由一个叫做WITH_DEXPREOPT的参数控制的,开启该参数后,会对APK、JAR以及内核镜像进行优化。
其中,针对APK和JAR的最直观的优化体现就是,程序的dex被转换成odex。
发表评论
-
Android SnappyDB
2018-05-15 11:23 962https://blog.csdn.net/qq_214305 ... -
使用UncaughtExceptionHandler保存全局异常(转)
2018-05-07 15:04 640From: https://blog.csdn.net/dre ... -
android udp
2018-04-10 19:47 601Android之Socket的基于UDP传输 接收方创建步骤: ... -
android DownloadManager
2018-04-10 12:52 594From: https://www.jianshu.com/p ... -
Snackbar 可以交互的Toast
2018-04-08 21:44 763Snackbar 是 Android design sup ... -
android 操作串口
2018-03-19 18:20 657http://blog.csdn.net/akunainian ... -
proguard对 android-support-v4.jar 的配置
2018-03-16 15:32 722-libraryjars libs/android-sup ... -
apk 多个dex
2018-03-16 10:05 1004android studio 配置应用生成多个dex ... -
ddmlib 解决android n file explorer 为空问题
2018-03-16 09:27 935百度云:http://pan.baidu.com/s/1sl4 ... -
android 代码混淆
2018-03-15 08:38 1052打开混淆开关 Android.mk ... -
menu item 显示icon
2018-03-07 09:32 683@Override public boolean onMenu ... -
ubuntu 脚本切换root用户,并执行其它脚本
2018-03-05 09:58 0#!/bin/bash expect -c" ... -
DrawerLayout 滑动侧边栏
2018-03-01 10:42 0// TODO -
jack-server 多用户编译问题
2018-02-27 10:44 14033),需要同时修改 $HOME/.jack-server/co ... -
更新eclipse 遇到两个问题 Oxygen.2 Release (4.7.2)
2018-02-26 14:28 12291. the file dx.jar was not load ... -
监听系统开关变化
2018-02-05 14:02 814// 转屏开关 /** * Content obse ... -
android 8.0 模块编译命令
2018-02-02 14:42 1172Invoke ". build/envsetup.s ... -
svn checkout 忽略某个文件夹
2018-01-26 11:14 1367android源码更新时, frameworks\compil ... -
eclipse jni
2018-01-19 16:10 494试过,可以运行 http://blog.csdn.net/sb ... -
opencv for android
2018-01-19 14:37 438http://blog.csdn.net/sbsujjbcy/ ...
相关推荐
【dex转smali文件】 framework.dex为要转换的文件 , out为输出目录 运行命令:java.exe -jar ...将boot.oat解包多个dex文件 ,生成到 dex 和 odex 在当前目录下。 运行命令:java.exe -jar oat2dex.jar boot boot.oat
"android 反编译 逆向 vdex2dex odex2dex"这个主题涉及到的是如何通过特定工具和技术来查看和理解Android应用程序的内部工作原理。在本文中,我们将深入探讨这些概念,以及它们在Android应用逆向工程中的应用。 ...
GDA不仅只是反编译器,同时也是一款轻便且功能强大的综合性逆向分析利器,其不依赖java且支持apk、dex、odex、oat、jar、aar、class文件的反编译, 支持python,java脚本自动化分析。GDA提供了字符串、方法、类和...
在Android系统中,Dalvik虚拟机执行的是.dex(Dalvik Executable)格式的代码,而随着Android系统的演进,从Android 5.0 Lollipop开始引入了ART(Android RunTime),它采用.oat(OAT,Optimized Android bytecode)...
在Android操作系统中,dex(Dalvik Executable)和odex(Optimized Dalvik Executable)文件格式是核心组件,它们负责存储应用程序的字节码,使得应用能够在Android设备上运行。这里我们将深入探讨这两个文件格式的...
从 Android ART .oat/.odex 文件中提取 .dex 文件 这个怎么运作? DEX 文件嵌入在 Android ART .oat/.odex 文件中。 oat2dexes寻找 DEX 魔法“dex\n035\0”。 如何使用? $ file file.odex file.odex: ELF 32-bit...
感谢”一键odex批量合并工具odextools“、oat2dex 及相关的作者的工作,我在他们的基础上对批处理脚本做了修改。 二、修改的地方 (1)把原来的odex 变换成 dex 的核心,从 baksmali.jar 换成了 oat2dex.jar (2...
然而,当你尝试在Android 8.0之后的系统上用常规的`dex2oat`命令将Odex文件转换回Dex文件时,可能会遇到问题,因为Vdex文件的缺失会导致转换失败。Vdex文件包含了运行时验证的元数据,它是从Odex文件中剥离出来的,...
Dex2Oat是将.dex文件转换为.oat(Optimized Android Executable)文件的过程,而oat2Odex则是进一步将.oat文件优化为.odex文件。这个过程通常在安装应用时自动完成,但也可以通过手动触发优化,例如通过终端命令行...
它们都有自己的缺点,比如java反编译依赖dex2jar的转换。对于复杂的、模糊的或打包的apk,存在翻译失败的问题。smali2java使用apktool对dex中需要翻译的smali代码进行反编译,增加了难度和错误率,降低了手工分析的...
支持安卓5.x odex合并,当前为最新版本
它们都有自己的缺点,比如java反编译依赖dex2jar的转换。对于复杂的、模糊的或打包的apk,存在翻译失败的问题。smali2java使用apktool对dex中需要翻译的smali代码进行反编译,增加了难度和错误率,降低了手工分析的...
首先,你需要从`system.img`或者源码编译中获取重要的`odex`文件,例如`core.odex`, `ext.odex`, `framework.odex`, `android.policy.odex`, `services.odex`。你可以将它们复制到工作目录,或者通过设置`...
3. **运行dex2oat**:通过终端或命令行工具,指定APK的路径、目标设备的架构以及输出的ODEX路径,运行dex2oat命令。 4. **放置ODEX文件**:将生成的ODEX文件移动到系统对应的odex目录下。 5. **权限调整**:根据...
2. ** oat 文件**:在ART环境中,`odex`通常以`.oat`(Optimized Android Runtime)文件的形式存在,它是对`.dex`进行优化后的产物,包括了机器码和运行时数据结构。 3. **为什么制作odex**:制作`odex`的主要目的...
软件无需安装java环境和android环境就可以使用,支持分析apk,dex,odex,oat类型文件, 工具不依赖于任何第三方工具库(adb除外), 所有功能采用C++编写而成,作者独立完成了该工具所有代码的编写,其中包含反编译...
在Android系统中,Odex(Optimized Dalvik Executable)文件是Dalvik虚拟机执行的优化代码形式,它是从APK文件中的 Dex(Dalvik Executable)文件通过dex2oat工具生成的。Odex文件的主要目的是提升应用程序的启动...
软件无需安装java环境和android环境就可以使用,支持分析apk,dex,odex,oat类型文件, 工具不依赖于任何第三方工具库(adb除外), 所有功能采用C++编写而成,作者独立完成了该工具所有代码的编写,其中包含反编译...
GDA是新的Dalvik字节码反编译器,以C ++实现,具有以下优点:分析速度更快,内存和磁盘消耗更低,并且反编译APK,DEX,ODEX,OAT文件的能力更强(自3.79开始支持JAR,CLASS和AAR文件) 。 GDA完全独立,并且无需...