`
Beyon_javaeye
  • 浏览: 64935 次
  • 性别: Icon_minigender_1
  • 来自: 长沙
社区版块
存档分类
最新评论

Zipalign:一个简单的优化

阅读更多
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:
  o Ant编译脚本(从Android 1.6开始)可以对齐程序包。老平台的版本不能通过Ant编译脚本进行对齐,必须手动对齐。
  o 从Android 1.6开始,Debug模式下编译时,Ant自动对齐和签名程序包。
  o Release模式下,如果有足够的信息签名程序包的话,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你的应用程序,并确保将最新对齐后的版本提供给用户。此外,别忘了还有你的新应用程序也需要这么做!
分享到:
评论

相关推荐

    Android Zipalign工具优化Android APK应用

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

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

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

    【中兴V880 ROM】超强大黄蜂增强版再次全新体验~

    【说明:supercharger是一个控制系统运行并适时关闭多余进程释放内存的脚本可以有效加速系统响应速度且不增加多余耗电】 10.加入索尼BRAVIA ENGINE引擎 11.加入广告屏蔽hosts高达七万条 12.修复了原rom时钟黑快...

    《Android应用开发揭秘》源码

     2.3 创建第一个Android项目——HeUoAndroid  2.3.1 创建HelloAndroid项目  2.3.2 运行HelloAndroid及模拟器的使用  2.3.3 调试HelloAndroid  2.4 小结  第二部分 基础篇  第3章 Android程序设计基础  3.1 ...

    RAR_for_Android_Premium_v5.80.apk

    Android版RAR RARLAB的RAR是一款多功能,原始,免费,简单,轻松,快速的压缩程序,存档器,助手,提取器,管理器,甚至是基本的文件浏览器。 RAR可以创建RAR和ZIP,并解...优化的图形/ zipalign; 禁用分析。

    《Android应用开发揭秘》附带光盘代码.

     2.3 创建第一个Android项目——HeUoAndroid  2.3.1 创建HelloAndroid项目  2.3.2 运行HelloAndroid及模拟器的使用  2.3.3 调试HelloAndroid  2.4 小结  第二部分 基础篇  第3章 Android程序设计基础  3.1 ...

    Android应用开发揭秘pdf高清版

    2.3 创建第一个Android项目——HeUoAndroid 2.3.1 创建HelloAndroid项目 2.3.2 运行HelloAndroid及模拟器的使用 2.3.3 调试HelloAndroid 2.4 小结 第二部分 基础篇 第3章 Android程序设计基础 3.1 Android程序框架 ...

    Android APK+Dex文件反编译及回编译工具 v.1.7.2 正式版

    《APK+Dex文件反编译及回编译...更新,APK优化工具Zipalign (2012.6.25版) 4.优化,Odex合并到APK或JAR功能(可选择系统版本) 5.增强,支持(JB)Android v4.1.1 编译 6.增强,与手机助手的兼容性 7.其他,一些调整

    APK+Dex文件反编译及回编译工具(APKDB)v1.8.1正式版 支持繁体

    更新,APK优化工具Zipalign (22.3版)  *.更新,adb工具支持Android4.4  *.修复,修复批量编译  *.修复,回编译保留旧文件失败问题(与系统时间格式相关)  *.修复,Odex合并问题  *.修复,Apk优化失败问题  *....

Global site tag (gtag.js) - Google Analytics