快捷搜索:  汽车  科技

android简单打包流程(Android打包过程)

android简单打包流程(Android打包过程)2,res 没有编译的资源文件1,META-INF 签名文件夹3,uncompiled resources 没有被编译过的文件4,AndroidManifest.xml 清单文件解压apk目录

先来一张图

android简单打包流程(Android打包过程)(1)

从图中可以看出,项目经过编译后由4个部分组成

1,.dex files .dex文件

2,resources.arsc resource文件

3,uncompiled resources 没有被编译过的文件

4,AndroidManifest.xml 清单文件

解压apk目录

android简单打包流程(Android打包过程)(2)

1,META-INF 签名文件夹

2,res 没有编译的资源文件

3,AndroidManifest.xml清单文件

4,classes.dex dex文件

5,resources.arsc res文件

其中META-INF文件夹中有3个文件

android简单打包流程(Android打包过程)(3)

图中绿色部分是打包的过程,可以看到有6个步骤

1,aapt过程

使用aapt来打包R.java和resources.arsc和res文件

res文件有9种目录

  • -animator 属性动画

  • -anim 补间动画

  • -color 颜色

  • -drawable 这里资源以xml或bitmap图片资源保存,这里会对图片进行优化比如32位的png无损压缩到8位的png格式

  • -layout 布局文件

  • -menu 菜单xml文件

  • -raw 文件被原封不动打入进去,但会分配一个id,可以通过id来找到

  • -values 一些简单的资源文件

  • -xml 一些配置信息

resources.arsc 可以理解成一个资源索引表,通过id可以找到项目中的资源

2 aidl过程

如果项目包含aidl在这个阶段生成对应的java 接口文件

3 java Compile阶段

编译生成R.java文件,java接口,java源文件编译成.class文件

4 .dex过程

将上诉java compile过程产生的.class文件和第三方编译产生的.class文件通过dx工具生成.dex文件

5 apkbuilder阶段

将.dex文件 resources.arsc. res文件(资源目录原封不动文件和编译后的文件)以及其他文件( asset等)一起打包生成apk文件

注意:

res/raw和assets的相同点:

1.两者目录下的文件在打包后会原封不动的保存在apk包中,不会被编译成二进制。

res/raw和assets的不同点:

1.res/raw中的文件会被映射到R.java文件中,访问的时候直接使用资源ID即R.id.filename;assets文件夹下的文件不会被映射到R.java中,访问的时候需要AssetManager类。

2.res/raw不可以有目录结构,而assets则可以有目录结构,也就是assets目录下可以再建立文件夹

6 Jarsigner

对apk包进行debug或release签名

7 zipaligin

对签名后的apk进行对齐处理,简单理解为压缩apk

猜您喜欢: