0

Android 文档说:

最后,如果应用程序在发布模式下进行签名,您必须将 .apk 与 zipalign 工具对齐。当应用程序在设备上运行时,对齐最终的 .apk 会减少内存使用量。

这是否意味着进程运行时的“硬盘空间”中的内存使用或“ram”中的内存使用?

见:http: //developer.android.com/sdk/installing/studio-build.html#detailed-build

4

1 回答 1

3

它可以帮助减少 RAM 占用。

未压缩的资源可以直接从 APK 文件进行内存映射,这允许它们占用“干净”页面而不是“脏”页面,并且仅在需要时加载每个页面。“干净”页面的优点是它们可以被驱逐并从源重新加载,而“脏”页面则不能。(有关更多详细信息,请参阅此答案。)

压缩后的资产在使用前必须先解压,所以一般在第一次访问时会完全解压,占用“脏”页。

对齐对于预期在内存中对齐的某些类型的文件很有用。在早期的 Android 开发过程中,PNG 文件是直接映射的,但 PNG 库一次读取 32 位数据。模拟器被配置为在未对齐的 32 位访问时发出总线错误信号,因此应用程序崩溃了。为避免此问题,创建了 zipalign 以调整存档以确保文件内容具有 32 位对齐,并且资产管理器已更新为仅对对齐文件使用直接映射。

zipalign 对磁盘空间没有实际影响。对于 APK 中的每个未压缩资产,它会使文件大 0-3 个字节。

回到主题中的问题:根据应用程序的资产及其使用方式,运行 zipalign 可能会降低应用程序被杀死的机会。但是,没有理由不能在调试版本上运行 zipalign。它只是为 zip 文件结构添加了一些填充。

于 2015-05-10T19:20:25.457 回答