【发布时间】:2015-01-24 10:20:19
【问题描述】:
我最近问自己为什么在 android 中我们必须先签名然后然后 zipalign apk。我搜索了一些背景信息,这些过程在技术上是如何工作的。我还是有点不高兴,因为这些描述并没有真正从技术上解释为什么这个序列是必要的。
但让我们从头开始:
我知道在 apk-build-process 中必须遵循以下顺序
- 很多先前的步骤...
- 创建 apk 文件
- 签署 apk 文件(修改 apk)
- zipaligning apk 文件(修改 apk)
我在这里找到了一些信息:
zipalign
所以很明显 zipalign 会将内部对齐到 4 字节边界,以便所有内容都可以使用 mmap 加载。 似乎签名过程会破坏这种对齐方式。因此,签名后必须在流程结束时调用 zipaligning。
但是为什么可以在不破坏 apk 签名的情况下重新对齐 apk 内容!?
apk 被修改,修改后的签名不应该是有效的 apk,我想......
也许有人比我在这里找到的技术背景信息更多:
Signing your application
谢谢,如果有人有一些有用的、技术上更详细的信息。
卢克
【问题讨论】:
-
我投票决定将此问题作为离题结束,因为它与包后处理有关,而不是与编程有关。跨度>
-
我不确定,但我相信签名是基于 APK 的逻辑内容,而不是它们在 ZIP 存档中的物理位置。
标签: android sign android-build zipalign