`
meohao
  • 浏览: 96279 次
  • 性别: Icon_minigender_1
  • 来自: 成都
社区版块
存档分类
最新评论

写在20110906:编译系统、odex

 
阅读更多
编译源代码的时候会要执行下面的命令:
1.source build/envsetup.sh
envsetup.sh这个编译脚本就位于/build/envsetup.sh中
2.choosecombo根据这个脚本中会让用户选择user/eng模式。
    要了解Android编译选项eng、user和userdebug的区别,需先了解下LOCAL_MODULE_TAGS这个配置项,在之前的博客中有提到过,该配置项处于Android.mk文件中,一般配置形式为LOCAL_MODULE_TAGS := user eng optional test那么LOCAL_MODULE_TAGS设置为不同的值有什么作用呢?
user:只有在user版本时该模块才被编译进去;  
eng:只有在eng版本时该模块才被编译进去;   
test:只有在test版本时该模块才被编译进去; ——用得很少  
optional:在所有版本中该模块都被编译进去。
当然其中的值也可以设置多选,那么eng、user、userdebug它们的区别在哪里呢?
选择不同的模式,编译到系统中的内容会有所区别,一般user模式下,一个应用模块会被打包成apk和odex;在eng模式下,只会生成一个apk文件。那么odex文件很明显是被优化过的文件,但有时候优化之后也会产生一些异常,通常可以在配置文件envsetup.sh中set_stuff_for_environment()函数中添加export DISABLE_DEXPREOPT=true来避免

function set_stuff_for_environment()
{
    settitle
    setpaths
    set_sequence_number

   # Don't try to do preoptimization until it works better on OSX.
    export DISABLE_DEXPREOPT=true
 
    export ANDROID_BUILD_TOP=$(gettop)
}

  odex是同名apk经系统优化后的dex文件,原生ROM中apk和odex文件是配对的,对应的apk文件中没有了dex(比正常可安装的apk小)。
这样的好处:
    1.加快程序的装载与运行
    2.防止系统程序的简单复制,针对不同的ROM,odex文件是变化的,不可混用的,否则程序就不能政策运行。与odex配对的apk文件又因为缺少dex无法单独安装和使用。
    3.节省data分区资源(这个我的理解是原始apk解压需要占用data分区资源,odex可直接执行)

分享到:
评论

相关推荐

    baksmali-2.1.0.jar 反编译odex

    在Android系统中,Dalvik虚拟机执行的字节码文件通常是.dex格式,而优化后的.dex文件则被称为.odex文件。这种文件格式优化了代码执行效率,但同时也使得直接阅读和理解代码变得更加困难。这时,我们就需要用到反编译...

    反编译odex测试文件

    在Android系统中,`odex`(Optimized Dalvik Executable)文件是Dalvik虚拟机执行的优化后的字节码,它是对`.dex`(Dalvik Executable)文件的进一步处理结果。`odex`文件通常包含应用程序的类定义、方法体和其他...

    odex反编译及回编译工具及命令

    在Android系统中,`.odex`(Optimized Dalvik Executable)文件是Dalvik虚拟机执行的优化后的字节码,它包含了应用的类、方法和数据。`.odex`文件通常位于系统的`/data/dalvik-cache`目录下,用于提高应用程序的运行...

    android 反编译 逆向 vdex2dex odex2dex

    Odex文件包含了预编译的机器码,使其能在设备上更快地执行。 3. **Vdex文件**:自Android 6.0(Marshmallow)引入,VDex(Virtual DEX)是为了加速首次应用启动时的预编译过程。它存储了应用的主要DEX文件的快速...

    odex制作软件

    在Android系统中,`odex`(Optimized Dalvik Executable)文件是Dalvik虚拟机执行的优化后的字节码,它对APK中的`.dex`文件进行了编译和优化,目的是提高应用程序的运行速度和启动效率。`odex`文件的制作是一个涉及...

    apk分离odex

    Dalvik虚拟机在设备上首次运行APK时会即时编译(JIT)代码,而ART则在安装时就进行了预先编译(AOT),生成了ODEX文件,这样在运行时可以更快地执行。 **1. ODEX文件结构:** ODEX文件包含了优化过的Dalvik字节码,...

    odex分离器

    在Android系统中,`odex`(Optimized Dalvik Executable)文件是Dalvik虚拟机执行的优化代码格式。它们是Dalvik字节码(`.dex`文件)经过编译和优化后的产物,用于提高应用程序的运行速度。`odex`文件通常存储在设备...

    check_odex.tar.gz_android

    在Android系统中,ODEX(Optimized Dalvik Executable)文件是Dalvik虚拟机执行的优化后的字节码,它是Dalvik VM为了提高应用程序运行效率而进行的一种预编译处理。`check_odex.tar.gz`这个压缩包显然是为了帮助用户...

    合并apk和odex文件的工具和签名工具

    这种工具会将APK中的DEX文件(包含Dalvik字节码)与设备上的ODEX文件合并,使得应用程序在运行时可以直接使用已优化的代码,无需再进行即时编译。这个过程可以减少启动时间,并可能提高整体性能。但需要注意的是,这...

    vdexExtractor 最好用的vdex odex 反编译工具

    【vdexExtractor:Android系统中的vdex与odex反编译利器】 在Android系统中,为了提高应用程序的启动速度和运行效率,系统引入了vdex(Virtual Device Execution)和odex(Optimized Dex)文件。这些文件是Dalvik...

    android手机端odex化

    在Android系统中,"odex"(Optimized Dalvik Executable)是Dalvik虚拟机执行的优化过的字节码文件,它将Dalvik字节码(.dex)进行了预编译,以提高应用程序的启动速度和运行效率。"android手机端odex化"指的是将...

    Android 5.0 odex合并apk

    在Android系统中,Odex(Optimized Dalvik Executable)文件是Dalvik虚拟机执行的优化过的字节码,它将DEX(Dalvik Executable)文件预先编译为机器码,以便提高应用的启动速度和运行效率。Android 5.0(Lollipop)...

    ODEX工具odexing

    然而,为了提升性能,Android系统会在首次运行应用程序时将D EX文件编译为本地机器代码,存储为ODEX文件,后续运行时可以直接加载,减少了运行时的解析开销。 **ODEX 文件结构** ODEX文件是Dalvik虚拟机优化后的二...

    反编译工具,一套从odex到java代码的完整反编译工具。

    本篇文章将深入探讨一套用于从odex文件到Java代码的反编译工具,帮助你了解这一过程以及相关技术。 首先,我们来解释一下"odex"文件。在Android系统中,Dalvik虚拟机执行的字节码通常以.dex格式存储。为了提高应用...

    odex合并与拆分工具.rar

    在Android系统中,`.odex`(Optimized Dalvik Executable)文件是Dalvik虚拟机执行的优化代码,它是从`.dex`(Dalvik Executable)文件经过优化处理后的产物,通常包含有编译后的字节码和一些元数据。`.odex`文件的...

    APK_ODEX优化

    1. **预编译**:通过ART(Android RunTime)环境,可以在安装时预编译DEX为ODEX,使得应用在首次启动时无需再进行JIT(Just-In-Time)编译。 2. **多DEX处理**:当应用DEX文件超过64K方法限制时,需要拆分为多个DEX...

    安卓系统定制 ODEX合并

    在这个版本中进行ODEX合并,需要对安卓系统的编译和打包流程有深入的理解。通常,这个过程包括以下步骤: 1. **获取APK源代码**:首先,你需要拥有应用的源代码或者APK文件,因为ODEX文件是从DEX文件中生成的,而...

    ODEX工具包

    然而,当APK被安装到设备上时,系统会对其进行编译和优化,生成一个名为"ODEX"(Optimized Dalvik Executable)的文件。这个过程叫做“dex优化”,目的是为了提高应用运行时的效率。"ODEX工具包"就是为了帮助开发者...

    如何合并apk和odex文件

    在Android系统中,APK和ODEX文件是两个关键组件,它们关系到应用程序的安装和运行。APK文件是Android应用程序的打包格式,包含了代码、资源、清单文件等所有必要的元素,用户通常通过Google Play或其他应用商店下载...

    合并odex工具

    在Android系统中,`odex`(Optimized Dalvik Executable)文件是Dalvik虚拟机执行的优化后的字节码,它将`.dex`(Dalvik Executable)文件中的类和方法进行了预编译,以提高应用的启动速度和运行效率。`odex`文件...

Global site tag (gtag.js) - Google Analytics