android - Android 中的 .dex 文件是什么?

标签 android dex

我有一些关于dex文件的问题

  • 什么是 Android 中的 dex 文件?
  • dex 如何在 Android 上运行?
  • 在调试 Android 应用时如何使用它们?
  • 它们是否类似于 java 类文件?

我需要具体信息,请对此提供帮助,欢迎提供任何真实示例!

最佳答案

关于 .dex 文件:

Dalvik 虚拟机(Android 系统下的主力)最显着的特点之一是它不使用 Java 字节码。相反,引入了一种称为 DEX 的本土格式,甚至字节码指令都与 Java 字节码指令不同。

Compiled Android application code file.

Android 程序被编译成 .dex(Dalvik 可执行文件)文件,这些文件又被压缩到设备上的单个 .apk 文件中。 .dex 文件可以通过自动翻译用 Java 编程语言编写的已编译应用程序来创建。

Dex 文件格式:

 1. File Header
 2. String Table
 3. Class List
 4. Field Table
 5. Method Table
 6. Class Definition Table
 7. Field List
 8. Method List
 9. Code Header
10. Local Variable List

Android 有关于 Dalvik 可执行格式 的文档(.dex 文件)。您可以在官方文档中找到更多信息:Dex File Format

.dex 文件类似于 java 类文件,但它们在旧 Android 版本的 Dalkvik 虚拟机 (DVM) 下运行,并在设备上安装时使用 ART 编译为 native 代码在较新的 Android 版本上。

您可以使用android-sdk中提供的dexdump工具反编译 .dex。

还有一些逆向工程技术可以从 .dex 生成 jar 文件java 类文件 > 文件。

关于android - Android 中的 .dex 文件是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7750448/

相关文章:

android - 如何编译android goldfish 3.4内核并在模拟器上运行

java - Android:无法合并 dex - 多个 dex 文件定义 Lorg/apache/commons/lang3

java - 有没有办法从 .dex 文件中获取所有类的列表?

android - 使用 android fb SDK 3.0 在 Facebook 中注销

android - Unresolved reference - Activity 无法识别 android studio v4 中的合成导入

java - 自定义 AlertDialog 无法在 onCreate() 中初始化

android - Eclipse 中的 "Android Private Libraries"文件夹是什么?

java - Android 操作未显示在操作栏中

apk - dex异常 : not support version

java - 使用smali库的问题