Android SDK中包含一个“zipalign”的工具,它可以对打包的应用程序进行优化。在你的应用程序上运行zipalign,使得在运行时Android与应用程序间的交互更加有效率。所以,这种方式可以让应用程序和整个系统运行得更快。咱们强烈推荐在新的和已经发布的程序上使用zipalign工具来获得优化后的版本——即便你的程序是在老版本的Android平台下开发的。这篇文章将描述zipalign如何有助于性能改善以及如何使用它来优化你的app。html
在Android中,每一个应用程序中储存的数据文件都会被多个进程访问:安装程序会读取应用程序的manifest文件来处理与之相关的权限问题;Home应用程序会读取资源文件来获取应用程序的名和图标;系统服务会由于不少种缘由读取资源(例如,显示应用程序的Notification);此外,就是应用程序自身用到资源文件。app
在Android中,当资源文件经过内存映射对齐到4字节边界时,访问资源文件的代码才是有效率的。可是,若是资源自己没有进行对齐处理(未使用zipalign工具),它就必须回到老路上,显式地读取它们——这个过程将会比较缓慢且会花费额外的内存。编辑器
对于应用程序开发者来讲,这种显式读取方式是至关便利的。它容许使用一些不一样的开发方法,包括正常流程中不包含对齐的资源,所以,这种读取方式具备很大的便利性(本段的原始意思请参考原文)。工具
遗憾的是,对于用户来讲,这个状况偏偏是相反的——从未对齐的apk中读取资源比较慢且花费较多内存。最好的状况是,Home程序和未对齐的程序启动得比对齐后的慢(这也是惟一可见的效果)。最坏的状况是,安装一些未对齐资源的应用程序会增长内存压力,并所以形成系统反复地启动和杀死进程。最终,用户放弃使用如此慢又耗电的设备。post
幸运的是,对应用程序中的资源做对齐操做很简单:性能
咱们极力推荐手动zipalign你的应用程序,并确保将最新对齐后的版本提供给用户。此外,别忘了还有你的新应用程序也须要这么作!优化