Android zipalign优化.exe 对已经签名的APK进行优化问题

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

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

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

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

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

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

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

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


版权声明:本文为博主原创文章遵循 版权协议,转载请附上原文出处链接和本声明

我要回帖

更多关于 zipalign优化 的文章

 

随机推荐