arsc文件结构
arsc文件的结构图,所有的resource资源类型都定义在AOSP的frameworks\base\include\androidfw\ResourceTypes.h头文件中。
一、头部信息
Resources.arsc文件格式是由一系列的chunk构成,每一个chunk均包含如下结构的ResChunk_header,用来描述这个chunk的基本信息:
| 字段名 | 含义 | 长度 |
|---|---|---|
| type | 当前这个chunk的类型 | 2字节 |
| headerSize | 当前这个chunk的头部大小 | 2字节 |
| size | 当前这个chunk的大小 | 4字节 |
二、资源索引表的头部信息
| 字段名 | 含义 | 长度 |
|---|---|---|
| header | 标准的Chunk头部信息格式 | 8字节:0x0002 |
| packageCount | 被编译的资源包的个数,Apk中可以包含多个资源包,默认就1个 | 4字节 |
三、资源项的值字符串资源池
紧跟着资源索引表头部的是资源项的值字符串资源池,这个字符串资源池包含了所有的在资源包里面所定义的资源项的值字符串,字符串资源池头部的结构如下:
| 字段名 | 含义 | 长度 |
|---|---|---|
| header | 标准的Chunk头部信息格式 | 8字节:0x0001 |
| stringCount | 字符串的个数 | 4字节 |
| styleCount | 字符串样式的个数 | 4字节 |
| flags | 字符串的属性,可取值包括0x000(UTF-16),0x001(字符串经过排序)、0X100(UTF-8)和他们的组合值 | 4字节 |
| stringsStart | 字符串内容块相对于当前Chunk头部的距离 | 4字节*stringCount |
| stylesStart | 字符串样式块相对于当前Chunk头部的距离 | 4字节*styleCount |
| stringOffsetArray |
深入解析Android APK:resource.arsc文件结构

本文详细探讨了resource.arsc文件的结构,包括头部信息、资源索引表、字符串资源池、Package数据块、类型规范数据块和资源类型项数据块。通过对这些部分的解析,我们可以理解资源的配置差异、资源ID的生成,并能从public.xml中找到资源值。
最低0.47元/天 解锁文章
6万+

被折叠的 条评论
为什么被折叠?



