zipalign

  • 对齐
    • 常用工具:zipalign
    • 为何要对齐 = 对齐的目的:优化性能
      • 对齐之前:CPU访问apk内部的未压缩的资源文件,需要额外复制到RAM中,再去访问
        • 增加了内存使用量
      • 对齐后:直接用mmap去访问apk内部的资源文件
        • 无需消耗额外RAM,降低了内存使用量,提高了性能和效率

对齐的时机

  • 如果您使用的是apksigner,只能在为APK文件签名之前执行zipalign
    • 如果您在使用apksigner为APK签名之后对APK做出了进一步更改,签名便会失效
  • 如果您使用的是jarsigner,只能在为APK文件签名之后执行zipalign

语法:

  • 对齐
    zipalign -p -f -v 4 infile.apk outfile.apk
    
  • 验证是否对齐
    zipalign -c -v 4 existing.apk
    

zipalign语法

 zipalign -h
Zip alignment utility
Copyright (C) 2009 The Android Open Source Project

Usage: zipalign [-f] [-p] [-v] [-z] <align> infile.zip outfile.zip
       zipalign -c [-p] [-v] <align> infile.zip

  <align>: alignment in bytes, e.g. '4' provides 32-bit alignment
  -c: check alignment only (does not modify file)
  -f: overwrite existing outfile.zip
  -p: memory page alignment for stored shared object files
  -v: verbose output
  -z: recompress using Zopfli

results matching ""

    No results matching ""