- android - 多次调用 OnPrimaryClipChangedListener
- android - 无法更新 RecyclerView 中的 TextView 字段
- android.database.CursorIndexOutOfBoundsException : Index 0 requested, 光标大小为 0
- android - 使用 AppCompat 时,我们是否需要明确指定其 UI 组件(Spinner、EditText)颜色
这两种方式是否相等且正确?
方法一:
.apk
和 .odex
.apk
文件方法二:
.apk
和 .odex
最佳答案
首先您需要了解 .apk 和 .odex 文件的工作原理。
.Odex文件:Odex
文件是从 APK 或 JAR 文件中提取和优化的 DEX
文件 (classes.dex)
。
ODEX 文件依赖于生成时加载的 BOOTCLASSPATH 中的每个文件。
odex 文件仅在与这些确切的 BOOTCLASSPATH 文件一起使用时才有效。
Android 应用程序以扩展名 .apk
的形式打包。这些应用程序包或 APK 包含某些 .odex 文件
,其假定功能是节省空间。
这些“odex”文件实际上是在启动前优化的应用程序部分的集合。
这也使得破解这些应用程序变得困难,因为部分编码在执行之前已经被提取到另一个位置。
工作原理:-
Android 操作系统使用基于 Java 的虚拟机来运行应用程序,称为 Dalvik 虚拟机。 一个dedexed,或者.dex
文件包含了这个虚拟机(简称Dalvik-cache)
为一个程序使用的缓存,它存储在里面APK.
另一方面,.odex
文件是存储在 APK 旁边的同一个
而不是在里面。.dex
文件的优化版本
Android 默认将此技术应用于所有系统应用程序。
现在,当基于 Android 的系统启动时,Davlik VM 的 davlik 缓存是使用这些 .odex 文件构建的,允许操作系统提前了解将加载哪些应用程序,从而加快启动过程。
通过deodexing
这些APK,开发人员实际上将.odex
文件放回到它们各自的APK
包中。由于所有代码现在都包含在 APK
本身中,因此可以在不与操作系统的执行环境发生冲突的情况下修改任何应用程序包。
可以查到一些资料Here和
Here is one StackOverFlow question may helpful to you .
关于android - 我可以在对 APK 进行 odex 处理后对其进行签名吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12420620/
我正在尝试对 Android 操作系统进行更改,因此我下载了 AOSP,进行了一些更改并构建了它。 现在我想替换我的设备(Nexus 5、4.4.4)上的 framework.jar 和 framew
我的 apk 是 13MB,安装时占用的空间是 25MB。然而,在进行一些更改(添加库、创建模块和更好地组织应用程序)之后,apk 大小增加到 14MB,而 odex 文件现在为 56MB。有什么方法
我很想知道odex文件和dex文件的区别。我在网上搜索但没有找到足够的信息。这是我的问题 odex 文件的用途是什么? 如何为我的应用程序创建 odex 文件? 如果我创建 odex,所有 API 级
是否可以通过编程方式验证系统生成的 odex 文件的完整性/校验和? 我想知道如何检测已获得 root 权限的 Android 手机上的攻击者是否为应用程序安装了他自己版本的 odex 文件。 最佳答
在安装了一些android 应用程序后,我发现它会在智能手机中变为odex 文件(而不是apk)。它是如何发生的?谁能教教我,我很感兴趣。 最佳答案 The blog article大部分是正确的,但
这个问题是我的 earlier question 的后续问题. 这是来自该问题的相同示例。 import android.os.SystemClock; /** * Command that sen
这两种方式是否相等且正确? 方法一: Odex APK 到 .apk 和 .odex 签署第 1 步中生成的 .apk 文件 方法二: 签署 APK Odex APK 到 .apk 和 .odex 最
当我构建 CM7 的系统应用程序(例如 ADWLauncher)时,我切换到 ADWLauncher 的文件夹并运行“mm”命令,然后我得到 .apk 和 .odex 文件,我怎样才能得到带有 dex
我为 Android 4.1.2 编写了两个简单的 java 程序。 1)控制台程序: public class console_hello_world { console_hello_wor
我是一名优秀的程序员,十分优秀!