【问题标题】:Does a debug release of an Android app have a higher chance at being killed?Android 应用程序的调试版本是否更有可能被杀死?
【发布时间】:2015-05-10 19:05:39
【问题描述】:

Android 文档说:

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

这是指进程运行时的“硬盘空间”中的内存使用量还是“ram”中的内存使用量?

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

【问题讨论】:

    标签: android zipalign


    【解决方案1】:

    它可以帮助减少内存占用。

    未压缩的资源可以直接从 APK 文件进行内存映射,这允许它们占用“干净”页面而不是“脏”页面,并且仅在需要时才加载每个页面。 “干净”页面的优点是它们可以被驱逐并从源重新加载,而“脏”页面则不能。 (详情请见this answer。)

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

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

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

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-02-01
      • 2018-07-10
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-05-10
      相关资源
      最近更新 更多