首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >ZipAlign验证

ZipAlign验证
EN

Stack Overflow用户
提问于 2013-10-23 13:48:21
回答 1查看 5K关注 0票数 9

在Android中,ZipAlign用于在4个字节的边界上对齐资源,以加速资源加载:

Android中的资源处理代码可以通过内存映射在4字节的边界上有效地访问资源。但是对于没有对齐的资源(即当and对齐还没有在apk上运行时),它必须返回显式读取它们--这会更慢,并且会消耗额外的内存。

运行该工具后,可以使用该命令验证对齐。

代码语言:javascript
复制
zipalign -c -v 4 application.apk

这将生成一个报告,并告诉是否存在错误。在我的例子中,这个报告没有表示对齐错误,但是第一个数字(我假设它是资源在最终APK中的位置)似乎表明一些资源没有在4个字节边界上对齐。

以下是本报告的开头:

代码语言:javascript
复制
    Verifying alignment of APP-signed-aligned.apk (4)...
      50 META-INF/MANIFEST.MF (OK - compressed)
   24245 META-INF/KEYS.SF (OK - compressed)
   49830 META-INF/KEYS.DSA (OK - compressed)
   50683 AndroidManifest.xml (OK - compressed)
   53096 assets/Assets/DB_Normal.db (OK)
  595425 assets/Assets/Common/DM/Structures.xml (OK - compressed)

我错过了什么?第一个数字是资源的位置吗?例如,Structures.xml似乎位于595425,它不是4个字节的倍数。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2013-10-23 17:47:16

对于压缩数据来说,对齐并不重要。

这样做是为了能够记忆-映射未压缩的块并直接访问它们。如果您的PNG解码器试图以32位整数的形式访问数据,并且您有一个仿真器来模拟最坏情况下的ARM CPU行为,并在进行未对齐的32位访问时抛出SIGBUS,那么如果图像数据不对齐,就不能随意地访问它。

zlib充气代码不关心数据是否对齐,因此zipalign不麻烦对齐压缩的数据。

票数 7
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/19543520

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档