我可以在对其进行索引后对其进行签名吗?

时间:2012-09-14 08:20:46

标签: android apk sign

这两种方式是否相同且正确?

方法1:

  1. 将APK转换为.apk.odex
  2. 签署步骤1中生成的.apk文件
  3. 方法2:

    1. 签署APK
    2. 将APK转换为.apk.odex

1 个答案:

答案 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