什么是Zipalign?什么是Zipaligned?
本帖最后由 ihei5.com 于 2012-5-25 10:14 编辑关于Android平台的Zipalign或Zipaligned:
什么是Zipalign?
Zipalign是一个档案整理工具,它首次被介绍是在Android 1.6版本的SDK(Software Development Kit)软件开发工具包中。它优化Android应用程序包(APK)到整合包, 以使Android操作系统与应用程序之间的交互作用更有效率,然后应用程序和整体系统的运行速度更快,发挥更大的潜能。它使Zipaligned的应用程序执行时间达到最低限度,其最终结果导致当设备运行APK应用程序时占更少的RAM(Random Access Memory)随机访问内存
Zipalign如何准备的执行(工作)呢?
在Android的操作环境中,存储在每个应用程序包的数据文件通过多个进程访问,例如,程序安装工具将读取数据列表确定相关的权限;因为包括显示通知等在内的多种原因,系统服务器可以读取这些资源;主界面应用程序要读取资源以便获取应用程序的名称与图标等。因为Android是基于一个真正的多任务操作基础架构,这些文件是不断地读取。最后但也是最重要的,应用程序本身读取体现的数据
因为Android操作系统基于Linux架构,存储单元布置(Memory Mapping)在有效的处理过程中起着一个关键的作用。从本质上而讲,为Android操作系统资源的处理代码最佳的整理是4字节界层。这个意思是说,如果APK应用程序包是存储单元布置到4字节界层,依据相应的整理,操作系统将不需要通读整个应用程序包以获取所需要的数据表,而每一个系统处理都将提前知道到哪里去寻找它所需要的资源,因此执行效率更快(运行更平滑,速度更快)
总结而讲,Zipalign一个APK应用程序的结果即是让所有的未压缩的数据以整合包的形式被整理到4字节界层,让所有的数据可以直接从存储器映象读取。而因为正访问的代码没有通读到整个应用程序包使得执行消耗的程序运行内存(RAM)降低。最终,操作系统整体上的速度会更快
UnZipalign(未整理)的APK应用程序包有什么劣势呢?
这是很容易理解的,对于未整理的应用程序包的情况,资源读取将会缓慢,程序运行内存(RAM)的使用将会处在一个较高的范围。它也取决于当前有多少未整理的应用程序。例如,如果有着较少的应用程序,然后有一个未整理的主界面程序,在启动时间上,你能观察到更慢的应用程序,这是最理想的情况。 对于一个糟糕的情况,如有着许多的未整理的应用程序,将会导致系统反复的启动和结束进程,系统运行将会滞后,电池的使用时间将会大幅度降低
我们应该怎么做呢?
当前,Zipalign档案整理工具已变成Android SDK(Software Development Kit)软件开发工具包的一部分。它可以在电脑上已安装好的Android SDK “tools” 或“platform-tools” 目录或文件夹中被查看
对于使用Zipalign档案整理工具,可以简单地输入并执行Command命令——
zipalign [-f] [-v] <alignment> infile.apk outfile.apk
其中,infile.apk是源文件,outfile.apk是输出文件
更多的,我们也可以确认APK应用程序的整理,输入并执行Command命令——
zipalign -c -v <alignment> existing.apk
其中,existing.apk能被任何你需要的应用程序包获得确认。
另外<alignment>命令需要是一个整数值,不然,命令会返回无效的错误提示。而这个值,虽然可以是任何的整数,但必须始终是4,因为这将提供32位元的整理层,任何其他的值,它们都是有效的,但不起任何作用
对于这些Command命令的标识——
-f—重写存在的outfile.zip
-v—提供详细的输出
-c—确认一个给定的文件的整理
有什么要注意呢?
Zipalign操作必须且仅在标记APK文件附有个人加密钥之后。如果在标记之前进行Zipalign操作,标记过程将会干扰整理
这仅仅是一些在Android平台供参考的相关Zipalign或Zipaligned认识,如果大家有更深层的相关知识,如果可以的话,可以共享,让感兴趣的用户一起获取更深层次的探讨 好高深啊
看起来很牛逼的样子,, 太长了。。
页:
[1]