这两种方式是否相同且正确?
方法1:
.apk
和.odex
.apk
文件方法2:
.apk
和.odex
答案 0 :(得分:4)
首先,您需要了解.apk和.odex文件的工作原理。
.Odex文件:
Odex
文件是经过提取和优化的DEX
文件(classes.dex) from APK or JAR files
ODEX文件依赖于BOOTCLASSPATH中生成时加载的每个文件
odex文件仅在与这些确切的BOOTCLASSPATH文件一起使用时才有效
Android应用程序包含扩展名为.apk
的包。这些应用程序包或APK包含某些.odex files
,其假定的功能是节省空间
这些“odex”文件实际上是在启动之前优化的应用程序部分的集合
它还使黑客攻击这些应用程序变得困难,因为编码的一部分在执行之前已经被提取到另一个位置。
工作原理: -
Android OS使用基于Java的虚拟机来运行应用程序,称为Dalvik虚拟机。 A deodexed, or .dex
文件包含此虚拟机(referred to as Dalvik-cache)
用于程序的缓存,并存储在APK.
.odex
文件中,另一方面,它是优化的同一.dex
文件的版本,存储在APK
旁边而不是内部
Android默认将此技术应用于所有系统应用程序。
现在,当基于Android的系统启动时,Davlik VM的davlik缓存是使用这些.odex文件构建的,允许操作系统提前学习将加载哪些应用程序,从而加快启动过程。
通过deodexing
这些APK,开发人员实际上将.odex
文件放回各自的APK
包中。由于所有代码现在都包含在APK
本身中,因此可以修改任何应用程序包而不会与操作系统的执行环境冲突。
您可以找到一些信息Here和
Here is one StackOverFlow question may helpful to you。