zipaligin的使用介绍
近来一直在做APK反编译和重编译的工作,针对一些apk需要放入一些相应的文件,(当然这里不涉及非法盈利,都是有合约的),在对一些包打包以后,发现可以通过一个叫做zipalign的工具进行优化,对于这个工具的介绍在谷歌官网有介绍:http://developer.android.com/tools/help/zipalign.html,
对其中我将一部分按照自己的理解翻译出来,如果翻译和理解不到位,还请指正。
zipalign:是一个用于内容对齐的工具,用来优化android apk文件。它的目的是保证所有未被压缩的文件都有特定的对齐。具体的说来,就是他会让所有未压缩的数据,比如raw中的图片都有按照4bite对齐。这样就会让所有的部分都可以直接使用 MMAP 来直接访问,即使MMAP包含了对于二进制数据的对齐限制。它的好处在运行应用的时候,减少了大量的RAM消耗。(因此可以提高apk运行的速度和效率)
你应该在把这个文件发给用户之前,使用这个zipalign来进行对齐。你也可以使用android build tools来处理。当你在使用android adt插件的时候,导出向导会自动的帮你zipalign 你使用私钥签名以后的apk文件。同样你也可以使用ant脚本来完成zipalign apk文件,只要你在项目中配置了ant ant.properties 在其中标明 alias,脚本会首先给应用签名。
警告:
zipalign必须要在使用私钥签名以后再使用,否则的话,则会导致签名过程会取消对齐效果。同样的不要在完成对齐以后改动文件内容,比如删除某些内容,这些操作可能破坏已经修改的内容以及对齐项,任何已经加到对齐项中的文件都不会被对齐。
zipalign通过修改在文件开头部分增加一些额外的域,存在于这个额外域的数据可能会被zipalign过程修改。
用法:
校验是否已经优化处理:
zipalign -c -v <alignment> existing.apk
使用实例:
zipalign -c -v 4 result.apk
进行优化处理:
zipalign [-f] [-v] <alignment> infile.apk outfile.apk
使用实例:
zipalign -v 4 1.apk result.apk
其中
zipalign 在大家adt\sdk\tools中就有,无需下载,
zipaligin的使用介绍的更多相关文章
- CSS3 background-image背景图片相关介绍
这里将会介绍如何通过background-image设置背景图片,以及背景图片的平铺.拉伸.偏移.设置大小等操作. 1. 背景图片样式分类 CSS中设置元素背景图片及其背景图片样式的属性主要以下几个: ...
- MySQL高级知识- MySQL的架构介绍
[TOC] 1.MySQL 简介 概述 MySQL是一个关系型数据库管理系统,由瑞典MySQL AB公司开发,目前属于Oracle公司. MySQL是一种关联数据库管理系统,将数据保存在不同的表中,而 ...
- Windows Server 2012 NIC Teaming介绍及注意事项
Windows Server 2012 NIC Teaming介绍及注意事项 转载自:http://www.it165.net/os/html/201303/4799.html Windows Ser ...
- Linux下服务器端开发流程及相关工具介绍(C++)
去年刚毕业来公司后,做为新人,发现很多东西都没有文档,各种工具和地址都是口口相传的,而且很多时候都是不知道有哪些工具可以使用,所以当时就想把自己接触到的这些东西记录下来,为后来者提供参考,相当于一个路 ...
- JavaScript var关键字、变量的状态、异常处理、命名规范等介绍
本篇主要介绍var关键字.变量的undefined和null状态.异常处理.命名规范. 目录 1. var 关键字:介绍var关键字的使用. 2. 变量的状态:介绍变量的未定义.已定义未赋值.已定义已 ...
- HTML DOM 介绍
本篇主要介绍DOM内容.DOM 节点.节点属性以及获取HTML元素的方法. 目录 1. 介绍 DOM:介绍DOM,以及对DOM分类和功能的说明. 2. DOM 节点:介绍DOM节点分类和节点层次. 3 ...
- HTML 事件(一) 事件的介绍
本篇主要介绍HTML中的事件知识:事件相关术语.DOM事件规范.事件对象. 其他事件文章 1. HTML 事件(一) 事件的介绍 2. HTML 事件(二) 事件的注册与注销 3. HTML 事件(三 ...
- HTML5 介绍
本篇主要介绍HTML5规范的内容和页面上的架构变动. 目录 1. HTML5介绍 1.1 介绍 1.2 内容 1.3 浏览器支持情况 2. 创建HTML5页面 2.1 <!DOCTYPE> ...
- ExtJS 4.2 介绍
本篇介绍ExtJS相关知识,是以ExtJS4.2.1版本为基础进行说明,包括:ExtJS的特点.MVC模式.4.2.1GPL版本资源的下载和说明以及4种主题的演示. 目录 1. 介绍 1.1 说明 1 ...
随机推荐
- 【[TJOI2014]上升子序列】
这本质上是一个\(dp\) 如果没有"两个上升子序列相同,那么只需要计算一次"这一个性质,那么就很好做了,我们用\(dp[i]\)表示以\(i\)结尾的上升子序列个数,那么就有\( ...
- 在.Net项目中使用Redis作为缓存服务
转自:http://www.cnblogs.com/hohoa/p/5771255.html 最近由于项目需要,在系统缓存服务部分上了redis,终于有机会在实际开发中玩一下,之前都是自己随便看看写写 ...
- C#与C++通过socket传送结构体
C#服务端: using System; using System.Net.Sockets; using System.Net; using System.IO; using System.Diagn ...
- mac终端terminal快捷键
mac终端terminal快捷键: Command + K 清屏 Command + T 新建标签 Command +W 关闭当前标签页 Command + S 保存终端输出 Command + ...
- Non-Nullable Types vs C#: Fixing the Billion Dollar Mistake (转载)
One of the top suggestions (currently #15 on uservoice) for improving C# is the addition of non-null ...
- 用js写水仙花数
...js //输入一个三位数,水仙花数就是个位的三次方+十为的三次方+百位的三次方之和等于本身 console.log('请输入一个三位数:'); let a = readline.questi ...
- Process.waitFor()导致主线程堵塞问题
今日开发的时候使用jdk自带的运行时变量 RunTime.getRunTime() 去执行bash命令.因为该bash操作耗时比较长,所以使用了Process.waitFor()去等待子线程运行结束. ...
- 大数据框架-YARN
YARN(Yet Another Resource Negotiator): 是一种新的 Hadoop 资源管理器 [ResourceManager:纯粹的调度器,基于应用程序对资源的需求进行调度的, ...
- 使用OpenVPN连通管理多个阿里云VPC网络
这篇文章比较长,将从需求.思路.原理.架构.实施步骤.细节分析.高可用等几个方面来讲述OpenVPN的使用,如果看到很熟悉的内容或者不感兴趣的部分,请您跳过. 需求 公司网络环境更换,导致原来连接阿里 ...
- 解决最新版 mac os sierra usb网卡不能使用的问题
解决最新版 mac os sierra usb网卡不能使用的问题 解决最新版 mac os sierra usb网卡不能使用 无法使用未签名第三驱动的问题 我的情况是 mac os sierra 使用 ...