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


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


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


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


·手动:


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


·验证对齐:


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


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

当然,如果嫌麻烦的话,可以直接参考以下做法:
ROM优化之-zipalign

Android 1.6 SDK中包含了一个用于优化APK的新工具zipalign。它提高了优化后的Applications与Android系统的交互效率(俗话:“要致富先修路”,Android小组重新为Applications与Android系统之间搭建了一条高速公路),从而可以使整个系统的运行速度有了较大的提升。Android小组强烈建议开发者在发布新Apps之前使用zipalign优化工具,而且对于已经发布但不受限于系统版本的Apps,建议用优化后的APK替换现有的版本zipalign优化的最根本目的是帮助操作系统更高效率的根据请求索引资源,将resource-handling code统一将Data structure alignment(数据结构对齐标准SA)限定为4-byte boundaries。如果第一次接触有关Data structurealignment的内容,强烈建议搜索更多与其相关的内容来充分理解这样做的最终目的,这也是理解zipalign工作原理的关键。如果不采取对齐的标准,处理器无法准确和快速的在内存地址中定位相关资源。
目前的系统中使用fallbackmechanism机制处理那些没有应用DSA标准的应用程序,这的确大大的方便了普通开发者无需关注繁琐的内存操作问题。但是相反,对于这样的应用程序将给普通用户带来一定的麻烦,不但影响程序的运行的效率,而且使系统的整体执行效率下降和占用大量不必要的内存资源,甚至消耗一定的电池资源(battery life)。

这项工作很简单,不算很繁琐
把需要zipalign优化的安卓(apk)应用程序复制到附件解压目录下。然后把apk文件拖动到extract批处理上,然后会自动处理完成,然后按任意键退出。生成后文件格式为.apk1,改成apk,然后安装到手机可以

以3Dgallery.apk为例,具体操作如下:
1.下载附件zipalign优化程序.zip,将里边的文件夹“安卓应用程序zipalign优化程序”解压到桌面或者其他位置
2.将你要优化的apk源文件复制到该文件夹中
{@)QH(HJ%H4][~`W_5%2V2G.jpg
2012-5-6 20:59:14 上传
下载附件 (13.24 KB)

3.把apk文件拖动到extract批处理上,然后会自动处理完成,然后按任意键退出
E8@YPBRRXY5DF$(}6FW6{O8.jpg
2012-5-6 21:00:58 上传
下载附件 (78.47 KB)

4.这时文件夹中会生成一个以apk1为后缀名的文件
S)FO66OCG$S~45WT}8CBAVR.jpg
2012-5-6 21:02:31 上传
下载附件 (11.17 KB)

5.将后缀名apk1改为apk即可。
建议结合清风明月帖子,odex文件处理一起使用
http://bbs.hiapk.com/thread-3735157-1-1.html 会使你小8速度和ram控制得到一定的提升。
zipalign优化程序.zip 下载:

安卓应用程序zipalign优化程序.zip
"zipalign" 不是内部或外部命令,也不是可运行的程序。这个错误表示系统无法识别或找到名为"zipalign"的命令或可执行文件。 在Android开发中,zipalign是一个工具,用于优化APK文件的布局和性能。执行zipalign命令可以将APK文件的资源文件和数据进行对齐,以加快应用程序的加载速度和运行效率。这个工具通常作为Android SDK的一部分提供。 如果你在命令行窗口或终端上运行zipalign命令时出现上述错误,可能的原因是你的系统环境变量没有配置正确的Android SDK路径。为了解决这个问题,你可以按以下步骤进行操作: 1. 确保你已经正确安装了Android SDK。你可以从Android开发者官网下载并安装最新版本的Android Studio,然后按照向导完成安装。 2. 打开你的系统环境变量设置。在Windows系统中,你可以右键点击"计算机"或"此电脑"图标,选择"属性",再选择"高级系统设置"。在弹出的窗口中,点击"环境变量"按钮。 3. 在环境变量窗口中,找到"系统变量"区域,并选择名为"Path"的变量。点击"编辑"按钮。 4. 在弹出的编辑窗口中,点击"新建"按钮,然后输入Android SDK的安装路径。默认情况下,Android SDK的安装路径为"C:\Users\用户名\AppData\Local\Android\Sdk"(用户名为你的Windows用户名)。 5. 确保你输入的路径是正确的,并点击"确定"按钮,保存你的更改。 6. 关闭所有命令行窗口或终端,重新打开一个新的窗口,然后再次尝试运行zipalign命令。 如果你按照上述步骤设置了正确的Android SDK路径,但仍然遇到相同的错误,你可能需要检查Android SDK的安装是否正确,并确保zipalign文件实际存在于正确的目录中。如果问题仍然存在,你可以尝试卸载和重新安装Android SDK来解决问题。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值