zipalign内存对齐优化

zipalign:android中SDK下tools文件夹

用来对资源文件的内存进行对齐优化

手工命令:

  优化:zipalign -v 4 source.apk destination.apk

4: 应该是4字节对齐            在android中,资源文件通过内存映射对齐到4字节边界时,访问资源文件的代码才是有效率的

验证是否已经优化对齐: zipalign -c -v 4 app.apk

ADT:

  使用向导,右击工程属性,选择“Android Tools” > “Export Signed Application Package…”。

但是,此方法经过验证,貌似不太有用,手工验证是否对齐时,发现失败

时间: 2024-10-15 22:21:37

zipalign内存对齐优化的相关文章

[Android Memory] Android Zipalign zip对齐优化app程序

转载地址:http://www.cnblogs.com/xirihanlin/archive/2010/04/12/1710164.html 参考文章:http://www.cnblogs.com/lee0oo0/archive/2013/06/13/3133833.html Android SDK中包含一个“zipalign”的工具,它能够对打包的应用程序进行优化.在你的应用程序上运行zipalign,使得在运行时Android与应用程序间的交互更加有效率.因此,这种方式能够让应用程序和整个系

Delphi中的内存对齐 与 Packed关键字

以delphi为例:TTest = recordc1: char;i1: Integer;c2: char;c3: Char;end;这个结构如果用sizeof取其占用的内存大小,是多少呢,是1+4+1+1=7么,不是,是4*3 = 12; 这是因为32位编译的时候,默认结构会自动内存对齐(32bit = 4byte). 如果要想让这个结构占用7个字节的话,必须加上packed关键字.如下:TTest = packed recordc1: char;i1: Integer;c2: char;c3

(转)内存对齐问题

结构体的内存布局依赖于CPU.操作系统.编译器及编译时的对齐选项.结构体内部成员的对齐要求,结构体本身的对齐要求.最重要的有三点 (一)成员对齐.对于结构体内部成员,通常会有这样的规定:各成员变量存放的起始地址相对于结构的起始地址的偏移量必须为该变量的类型所占用的字节数的倍数.但是也可以看到,有时候某些字段如果严格按照大小紧密排列,根本无法达到这样的目的,因此有时候必须进行padding.各成员变量在存放的时候根据在结构中出现的顺序依次申请空间,同时按照上面的对齐方式调整位置,空缺的字节编译器会

内存对齐详解

内存对齐,memory alignment.为了提高程序的性能,数据结构(尤其是栈)应该尽可能地在自然边界上对齐.原因在于,为了访问未对齐的内存,处理器需要作两次内存访问:然而,对齐的内存访问仅需要一次访问.内存对齐一般讲就是cpu access memory的效率(提高运行速度)和准确性(在一些条件下,如果没有对齐会导致数据不同步现象).依赖cpu,平台和编译器的不同.一些cpu要求较高(这句话说的不准确,但是确实依赖cpu的不同),而有些平台已经优化内存对齐问题,不同编译器的对齐模数不同.总

谈谈关于内存对齐与补齐

首先我们先看看下面的C语言的结构体: [cpp] view plaincopy typedef struct MemAlign { int a; char b[3]; int c; }MemAlign; 以上这个结构体占用内存多少空间呢?也许你会说,这个简单,计算每个类型的大小,将它们相加就行了,以32为平台为例,int类型占4字节,char占用1字节,所以:4 + 3 + 4 = 11,那么这个结构体一共占用11字节空间.好吧,那么我们就用实践来证明是否正确,我们用sizeof运算符来求出这个

VC++中内存对齐

我们经常看到求 sizeof(A) 的值的问题,其中A是一个结构体,类,或者联合体. 为了优化CPU访问和优化内存,减少内存碎片,编译器对内存对齐制定了一些规则.但是,不同的编译器可能有不同的实现,本文只针对VC++编译器,这里使用的IDE是VS2012. #pragma pack()是一个预处理,表示内存对齐.布局控制#pragma,为编译程序提供非常规的控制流信息. /**********结构体的大小的规则*************/ 结构体大小是处理器位数和结构体内最长数据元素所占字节数二

内存对齐 (转)

1.引子 在结构中,编译器为结构的每个成员按其自身的自然对界(alignment)条件分配空间.各个成员按照它们被声明的顺序在内存中顺序存储,第一个成员的地址和整个结构的地址相同. 例如,下面的结构各成员空间分配情况(假设对齐方式大于2字节,即#pragma pack(n), n = 2,4,8...下文将讨论#pragmapack()): [cpp] view plaincopy struct test { char x1; short x2; float x3; char x4; }; 结构

C语言的内存对齐

从一个例子开始 象下面这样定义的结构体占几个字节? typedef struct{ char a; int i; } Sample; char占1个字节,int占4个字节,答案是5个字节? 错了.如果用 gcc 编译,sizeof(Sample) 的结果是8个字节. 这是怎么回事?进一步观察,Sample第0个字节是a, 而Sample的成员int i从第4个字节开始. 这是编译器为了内存对齐所做的优化. 什么是内存对齐 比如数据总线有32位,它访存只能4个字节4个字节地进行. 0-3,4-7,

struct内存对齐

内存对齐其实是为了在程序运行的时候更快的查找内存而做的一种编译器优化. 我们先看这样一个例子: 1 #include <iostream> 2 using namespace std; 3 4 struct vpoet 5 { 6 int a; //4 bytes 7 char b; //1 bytes 8 double c; // 8 bytes 9 char *d; //4 bytes 10 int e; //4 bytes 11 }; 12 13 int main() 14 { 15 c