用winrar打开apk文件时(s/w打开压缩文件).我在apk中收到了一堆文件.其中classes.dex是一个.我的问题是这个文件的作用是什么,如果我们修改/删除相同的文件会影响apk吗?
Sah*_* Mj 58
要制作APK文件,首先编译Android程序,然后将其所有部分打包到一个文件中.这包含所有程序的代码(这些是.dex files),资源,资产,证书和清单文件.
程序通常是编写Java和编译的bytecode.然后在安装到设备之前Java Virtual Machine-compatible .class files将它们转换为Dalvik-compatible .dex(Dalvik可执行文件)文件.紧凑的Dalvik可执行文件格式适用于受内存和处理器速度限制的系统.
由于.dex文件包含APK资源,因此对这些文件的任何编辑都将直接影响APK.
.dex文件 编译的Android应用程序代码文件.
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
这个文件的作用是什么?
Android 中的作用classes.dex类似于普通 Java 中的 JAR 文件。它是一个包含字节码的文件。在Android情况下,字节码是Dalvik字节码,它与Java字节码不同。
如果我们修改/删除同一个文件会影响apk吗?
如果您修改classes.dex,则您正在修改程序行为,这在重新打包后可能会也可能不会起作用。如果您删除classes.dex,那么您的应用程序就没有代码,您不应该指望它能够工作。
| 归档时间: |
|
| 查看次数: |
51647 次 |
| 最近记录: |