关于android:apk文件中classes.dex文件的作用

您所在的位置:网站首页 clesses 关于android:apk文件中classes.dex文件的作用

关于android:apk文件中classes.dex文件的作用

2024-07-04 07:07| 来源: 网络整理| 查看: 265

使用Winrar打开apk文件时(用w打开压缩文件)。 我在apk中打包了一堆文件。 其中classes.dex是其中之一。 我的问题是此文件的作用是什么,如果我们修改/删除同一文件,它将影响apk吗?

要制作APK文件,首先会编译Android程序,然后将其所有部分打包到一个文件中。它包含该程序的所有代码(这些是.dex files),资源,资产,证书和清单文件。

程序通常用Java编写并编译为bytecode。然后将它们从Java Virtual Machine-compatible .class files转换为Dalvik-compatible .dex(Dalvik可执行文件)文件,然后再安装到设备上。紧凑的Dalvik Executable格式旨在适用于受内存和处理器速度限制的系统。

classes.dex:Dalvik虚拟机可以理解的以dex文件格式编译的类

As the .dex files holds the APK resources, any edit on these files will directly effect the APK.

相关讨论 好答案。 您是否偶然知道为什么在有多个.class文件的情况下只有一个classes.dex? 这是否归因于通过dexing进行的优化或其仅仅是某种打包文件,例如.jar文件? dex文件不包含我相信的资源。 它们在classes.dex创建之后合并。 为什么我有多个此文件? classes2.dex,classs3.dex等。

.dex文件 编译的Android应用程序代码文件。

从Android API指南

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

是的,如果您删除这些文件,它将影响APK。

classes.dex本质上是所有应用程序逻辑。给定应用程序的代码用Java编写,然后编译为类文件,然后将这些类文件交叉编译(经过很多优化)为dalvik VM格式。请注意,可能还存在一些.so文件,它们也是应用程序代码,但是这些文件是在使用NDK时生成的。 您无法删除此文件。但是,您可以通过首先运行该实用程序https://github.com/JesusFreke/smali来更改它,该实用程序将从此编译的dex生成smali代码,该代码与Java有点相似并且可以理解。您也可以使用工具ApkOneClick或ApkMultiTool从smali文件中获取Java源代码,但是这些工具可能并不完美,需要进一步修复。更改代码后,您应该再次构建classes.dex并将它们放入现有的zip / apk文件中。请注意,那么现有的证书文件(META-INF)将不再有效,您将需要删除此文件夹并注销apk软件包才能在电话或仿真器上安装它。

有关更多信息,您也可以检查此问题。Android中的.dex文件是什么?

这也是关于使用现有工具反汇编dex文件的很棒的教程http://blog.vogella.com/2011/02/14/disassemble-android-dex

What is the role of this file?

classes.dex在Android中的作用类似于纯Java中的JAR文件。这是一个包含字节码的文件。在Android情况下,字节码是Dalvik字节码,与Java字节码不同。

If we modify/delete the same file will it effect the apk?

如果您修改classes.dex,则您正在修改程序的行为,在重新打包后,该行为可能会或可能不会起作用。如果删除classes.dex,则您的应用程序没有代码,您不应期望它能正常工作。

apk中的.dex文件是压缩文件,由应用程序代码中的所有java类组成。它与jar文件不同。 jar文件是隔离的.class文件的集合。如果解压缩.jar,我们将分别获得所有类。另一方面,.dex文件是由应用程序代码中的所有.class文件组成的单个文件。

代码编译流程: 多个.java文件->多个.classes文件->单个.dex文件

.dex文件是由DVM ... Dalvik虚拟机(这是Android的运行时)执行的可执行文件。

.dex将永远不会包含资源。资源在.apk的/ res文件夹中单独维护



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3