用Zipalign优化android客户端


什么是Zipalign?
     Zipalign是一个档案整理工具,它首次被介绍是在Android 1.6版本的SDK(Software Development Kit)软件开发工具包中。它优化Android应用程序包(APK)到整合包,以使Android操作系统与应用程序之间的交互作用更有效率,然后应用 程序和整体系统的运行速度更快,发挥更大的潜能。它使Zipaligned的应用程序执行时间达到最低限度,其最终结果导致当设备运行APK应用程序时占 更少的RAM(Random Access Memory)随机访问内存。



UnZipalign(未整理)的APK应用程序包有什么劣势呢?
     这是很容易理解的,对于未整理的应用程序包的情况,资源读取将会缓慢,程序运行内存(RAM)的使用将会处在一个较高的范围。它也取决于当前有多少 未整理的应用程序。例如,如果有着较少的应用程序,然后有一个未整理的主界面程序,在启动时间上,你能观察到更慢的应用程序,这是最理想的情况。对于一个 糟糕的情况,如有着许多的未整理的应用程序,将会导致系统反复的启动和结束进程,系统运行将会滞后,电池的使用时间将会大幅度降低。

有什么要注意呢?

     Zipalign操作必须且仅在标记APK文件附有个人加密钥之后。如果在标记之前进行Zipalign操作,标记过程将会干扰整理。

 

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

  • 使用ADT:
    • 如果你使用导出向导的话,Eclipse中的ADT插件(从Ver. 0.9.3开始)就能自动对齐Release程序包。使用向导,右击工程属性,选择“Android Tools” > “Export Signed Application Package…”。当然,你还可以通过AndroidManifest.xml编辑器的第一页做到。
    • 使用Ant:
      • Ant编译脚本(从Android 1.6开始)可以对齐程序包。老平台的版本不能通过Ant编译脚本进行对齐,必须手动对齐。
      • 从Android 1.6开始,Debug模式下编译时,Ant自动对齐和签名程序包。
      • Release模式下,如果有足够的信息签名程序包的话,Ant才会执行对齐操作,因为对齐处理发生在签名之后。为了能够签名程序包,进而执行对齐操作,Ant必须知道keystore的位置以及build.properties中key的名字。相应的属性名为key.store和key.alias。如果这些属性为空,签名工具会在编译过程中提示输入store/key的密码,然后脚本会执行签名及apk文件的对齐。如果这些属性都没有,Release程序包不会进行签名,自然也就不会进行对齐了。 
      • 手动:
        • 为了能够手动对齐程序包,Android 1.6及以后的SDK的tools/文件夹下都有zipalign工具。你可以使用它来对齐任何版本下的程序包。你必须在签名apk文件后进行,使用以下命令:zipalign -v 4 当前名称.apk 重命名后的名称.apk
        • 验证对齐:
          • 以下的命令用于检查程序包是否进行了对齐:zipalign -c -v 4 当前名称.apk

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

 

posted @ 2013-03-05 10:21  屁颠  阅读(385)  评论(0编辑  收藏  举报