`

简单优化:Zipalign

 
阅读更多

Android SDK中包含一个“zipalign”的工具,它能够对打包的应用程序进行优化。在你的应用程序上运行zipalign,使得在运行时Android与应用程序间的交互更加有效率。因此,这种方式能够让应用程序和整个系统运行得更快。我们强烈推荐在新的和已经发布的程序上使用zipalign工具来得到优化后的版本——即使你的程序是在老版本的Android平台下开发的。这篇文章将描述zipalign如何有助于性能改善以及如何使用它来优化你的app。

在Android中,每个应用程序中储存的数据文件都会被多个进程访问:安装程序会读取应用程序的manifest文件来处理与之相关的权限问题;Home应用程序会读取资源文件来获取应用程序的名和图标;系统服务会因为很多种原因读取资源(例如,显示应用程序的Notification);此外,就是应用程序自身用到资源文件。

在Android中,当资源文件通过内存映射对齐到4字节边界时,访问资源文件的代码才是有效率的。但是,如果资源本身没有进行对齐处理(未使用zipalign工具),它就必须回到老路上,显式地读取它们——这个过程将会比较缓慢且会花费额外的内存。

对于应用程序开发者来说,这种显式读取方式是相当便利的。它允许使用一些不同的开发方法,包括正常流程中不包含对齐的资源,因此,这种读取方式具有很大的便利性(本段的原始意思请参考原文)。

遗憾的是,对于用户来说,这个情况恰恰是相反的——从未对齐的apk中读取资源比较慢且花费较多内存。最好的情况是,Home程序和未对齐的程序启动得比对齐后的慢(这也是唯一可见的效果)。最坏的情况是,安装一些未对齐资源的应用程序会增加内存压力,并因此造成系统反复地启动和杀死进程。最终,用户放弃使用如此慢又耗电的设备。

幸运的是,对应用程序中的资源作对齐操作很简单:

·使用ADT:

o如果你使用导出向导的话,Eclipse中的ADT插件(从Ver. 0.9.3开始)就能自动对齐Release程序包。使用向导,右击工程属性,选择“Android Tools”>“Export Signed Application Package…”。当然,你还可以通过AndroidManifest.xml编辑器的第一页做到。

·使用Ant:

oAnt编译脚本(从Android 1.6开始)可以对齐程序包。老平台的版本不能通过Ant编译脚本进行对齐,必须手动对齐。

o从Android 1.6开始,Debug模式下编译时,Ant自动对齐和签名程序包。

oRelease模式下,如果有足够的信息签名程序包的话,Ant才会执行对齐操作,因为对齐处理发生在签名之后。为了能够签名程序包,进而执行对齐操作,Ant必须知道keystore的位置以及build.properties中key的名字。相应的属性名为key.store和key.alias。如果这些属性为空,签名工具会在编译过程中提示输入store/key的密码,然后脚本会执行签名及apk文件的对齐。如果这些属性都没有,Release程序包不会进行签名,自然也就不会进行对齐了。

·手动:

o为了能够手动对齐程序包,Android 1.6及以后的SDK的tools/文件夹下都有zipalign工具。你可以使用它来对齐任何版本下的程序包。你必须在签名apk文件后进行,使用以下命令:zipalign -v 4 source.apk destination.apk

·验证对齐:

o以下的命令用于检查程序包是否进行了对齐:zipalign -c -v 4 application.apk

我们极力推荐手动zipalign你的应用程序,并确保将最新对齐后的版本提供给用户。此外,别忘了还有你的新应用程序也需要这么做!

转自:http://www.cnblogs.com/xirihanlin/archive/2010/04/12/1710164.html

分享到:
评论

相关推荐

    Android布局优化和zipalign

    ### Android布局优化与Zipalign详解 #### 一、Android布局优化概述 在Android开发中,良好的用户界面设计至关重要。为了实现高效且美观的界面布局,开发者需要了解并掌握各种布局方式及其优缺点。本篇文章将重点...

    Android Zipalign工具优化Android APK应用

    本文主要介绍Android Zipalign工具优化Android APK应用,这里整理了相关资料及简单优化实例,有需要的小伙伴可以参考下

    apksigner.jar apktool-2.5.0.jar baksmali-2.2.2.jar zipalign

    4. **zipalign**:这是一款Android优化工具,它调整APK内部文件的位置,以确保所有非压缩数据都对齐到特定的内存边界。这提高了加载效率,减少了设备内存的使用,并有助于提升应用的整体性能。在发布APK之前,必须先...

    Android备忘

    - **Zipalign和图片优化:** 减少APK文件大小,加快加载速度。 10. **性能测试与NDK:** - **性能测试:** 使用工具(如Android Profiler)来监控和分析应用性能。 - **NDK:** 允许开发者使用C/C++编写高性能...

    auto-sign(android签名工具)

    4. **优化和ZIPalign**:可选步骤,通过zipalign工具进行内存对齐,提高应用性能。 ### auto-sign工具的使用 `auto-sign`工具自动化了上述过程,它提供了命令行界面,只需要提供Keystore文件、相关密码以及APK文件...

    build-tools_r28.0.1-linux.zip

    例如,`aapt`(Android Asset Packaging Tool)用于处理应用资源,`dx`和`d8`则用于将Java字节码转换为Dalvik字节码,而`zipalign`则是优化APK文件的工具,确保所有数据对齐到4字节边界,以提高设备性能。...

    app签名工具

    3. **ZIPalign优化**:签名后的APK需进行ZIPalign优化,以提高运行效率。 三、360签名工具介绍 360签名工具是一款支持Linux和MAC系统的批量签名工具,简化了签名过程,尤其适用于需要为多个APK文件签名的开发者。...

    批处理打包

    4. **优化APK**:使用`zipalign`工具进行APK对齐,这有助于提高设备的运行效率。例如: ``` zipalign -v 4 app-release-unsigned.apk app-release-aligned.apk ``` 5. **释放APK**:最后的APK文件(app-release-...

    android apk重签名,shell脚本自动化

    在Shell脚本中实现这个过程,我们需要几个关键工具:`keytool`(用于生成密钥对)、`jarsigner`(用于签名APK)和`zipalign`(用于优化APK)。这些工具通常随Android SDK一起提供。 以下是一个简单的Shell脚本示例...

    Android 打包签名 从生成keystore到完成签名.zip

    4. **优化APK(ZIPalign)** 签名后,为了提高应用的性能和内存使用效率,还需要进行ZIPalign操作。使用`zipalign`工具进行对齐: ``` zipalign -v 4 my-app.apk my-aligned-app.apk ``` `4`代表对齐的字节数,...

    resign.rar 工具

    3. **ZIPalign优化**:签名后的APK需要进行ZIPalign优化,以提高应用的加载速度和内存使用效率。 4. **发布**:最后,签名并优化过的APK可以上传到Google Play或其他分发渠道。 然而,有时候开发者可能需要重新签名...

    apk签名工具.tool

    2. 对APK进行ZIPalign优化:这一步是为了提高APK的内存访问效率,通过调整文件在ZIP档案中的位置,确保所有数据都对齐到4字节边界。 3. 签名APK:使用私钥对优化后的APK进行签名。这个过程会产生一个包含签名信息的...

    AndroidSDKTools26.1.1.rar

    6. **Zipalign优化**:最后,使用Zipalign工具对生成的APK进行优化,这一步可以减少APK的大小并提高启动速度,为用户提供更好的体验。 值得注意的是,尽管Android SDK Tools 26.1.1在Unity 2018和2019中的使用较为...

    android 签名工具

    3. 对于使用ProGuard进行代码混淆的APK,还需要使用`zipalign`工具进行对齐优化: ``` zipalign -v 4 your_app.apk your_aligned_app.apk ``` 4. 最后,使用签名后的APK进行发布。 在"ophone论坛 Ophone手机 ...

    安卓厨房安装与使用.docx

    **zipalign**:对apk文件进行资源对齐,优化内存使用。 7. **更改Wipe状态**:选择刷机时是否执行数据清除。 8. **更改ROM名称**:自定义ROM的显示名称。 9. **检查更新脚本**:检查刷机脚本有无错误。 10. **...

    超简单实用的apk反编译+回编译工具-安卓开发必备

    4. **生成最终APK**:完成签名和优化后,使用`zipalign`工具对APK进行对齐操作,以提高运行效率。最后,使用`apksigner`或`jarsigner`对APK进行V2或V3签名。 5. **安装测试**:签名优化后的APK即可在设备上安装并...

    build tools 25.0.3 免费下载

    3. **zipalign**:对APK进行优化,确保所有数据都对齐到4字节边界,提高性能。 4. **apkbuilder**:构建APK文件,签名并优化资源。 5. **ProGuard**:代码混淆工具,可以减小APK大小并增加代码安全性。 6. **gradle...

    apktool工具

    APKTool不直接支持签名,但提供了打包后使用`jarsigner`和`zipalign`工具的指导,这些是Android签名和优化APK的必备步骤。 总之,APKTool是Android开发和安全分析领域不可或缺的工具,它极大地简化了对APK文件的...

    Android APK+Dex文件反编译及回编译工具v2.0.2

    更新,Zipalign优化工具 (23.0.3版) *.更新,合并Odex文件 *.更新,XML编辑器(提升速度,修复bug) *.更新,显示APK自身图标(Apkshellext v2.0.1.5780.2290) *.更新,刷机精灵APK安装器 *.新增,自定义默认签名,可用...

Global site tag (gtag.js) - Google Analytics