您的位置:首页 > 移动开发 > Android开发

Android apk优化 zipalign

2017-07-14 16:35 555 查看

google原文介绍:https://developer.android.com/studio/command-line/zipalign.html

Zipalign是一个Android应用程序(APK)文件的归档对齐工具,目的是确保所有未压缩的数据以相对于文件开头的特定对齐开始,它会导致APK内的所有未压缩数据(如图像或原始文件)在4字节边界上对齐。zipalign使用了4字节的边界对齐方式来影射内存,通过空间换时间的方式提高执行效率。

大致原理:按着有利于系统处理的排列方式,对我们apk中的资源文件进行排列,提高资源的查找速度,从而去提高应用的运行效率。

Google在官方文档中也说了:

This tool should always be used to align your APK file before distributing it to end-users. The Android build tools can handle this for you. Android Studio automatically aligns your APK.

应该始终使用此工具来将您的APK文件对齐,然后再分发给最终用户。 Android构建工具可以为您解决这个问题。Android Studio会自动对齐您的APK。

同时也提到了需要注意的,否则对齐之后会产生没有签名的后果:

Caution: You must use zipalign at one of two specific points in the app-building process, depending on which app-signing tool you use:

If you use apksigner, zipalign must only be performed before the APK file has been signed. If you sign your APK using apksigner and make further changes to the APK, its signature is invalidated.

If you use jarsigner, zipalign must only be performed after the APK file has been signed.

大致意思是:

1.如果你使用的是apksigner进行签名,只能在APK文件签名之前执行zipalign。

2.如果你使用jarsigner,则只能在APK文件签名后执行zipalign。

Usage:

zipalign使用:



-c :检查.apk文件是否zipalign优化过

-f :覆盖已经存在的文件

-p :页面对其存储对象文件

-v :输出优化后的详细信息 xx.apk

-z :将使用Zopfli

zipalign -v 4 input.apk output.apk


apksigner使用:

apksigner sign --ks keystone.jks --ks-key-alias alias --ks-pass pass:111111 --out output.apk input.apk


keystone.jks,alias,pass 用你自己的签名文件秘钥替代
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  android 优化 zipalign