很多嵌入式设备,带屏幕显示的都有很多酷渲的UI显示,这UI就离不开资源的制作,当然很多简单的动画,可以把图片资源变成很大的图片数值,采用const存放,相当于是用代码空间来存放资源,这对于资源紧张的嵌入式设备是一件很奢侈的事情,一般正常的都是把资源放在外部的Flash里面,用到的时候把他Load出来用就行了!
下面我就是介绍怎么去制作资源,有规则制作资源,便于后期迭代开发。
我把资源分为 三部分组成:
资源 == (1.资源头 + 2.资源索引 + 3.资源数据)
1.资源头 (32字节)
资源标识 (4 Byte) | "NRES",纯粹举例,可以灵活使用 |
资源有效标识 (4 Byte) | "VILD",纯粹举例,可以灵活使用 |
资源头版本号 (2 Byte) | 目前不使用,默认为0,代表资源头大小是32Byte大小,为以后扩展资源头使用 |
资源版本号 (2 Byte) | 每次修改资源后,版本号+1,为了与使用资源的产品匹配,当不匹配的时候产品提示青升级资源 |
资源索引数量 (4 Byte) | 标识可以查找到多少个自定义资源,比如有 N 个资源,具体可以资源索引 的介绍 |
资源索引地址 (4 Byte) | 如果资源头是32Byte,那么索引地址就是32,资源索引的大小== 资源索引数量N*4,一个索引使用4Byte来存放 |
资源数据地址 (4 Byte) | 地址大小== 32 + 资源索引大小 |
资源索引+数据的CRC (4 Byte) | 资源索引加资源数据的CRC |
保留 (4 Byte) |
2.资源索引 (大小 = 资源索引数量 N * 4)
资源索引 1 地址 (4 Byte) | 资源1在 资源数据里面的地址,从资源头地址开始算起 |
资源索引 2 地址 (4 Byte) | 资源2在 资源数据里面的地址,从资源头地址开始算起 |
... | ... |
... | ... |
... | ... |
资源索引 N 地址 (4 Byte) | 资源N在 资源数据里面的地址,从资源头地址开始算起 |
3.资源数据 (大小 = 所有真实资源的大小)
资源 1 数据 | 大小 看实际资源大小 |
资源 2 数据 | 大小 看实际资源大小 |
... | ... |
... | .. |
... | ... |
资源 N 数据 | 大小 看实际资源大小 |
上面三个图片就是资源的具体组成分析,今天就先讲到这里先,接下来还会继续讲解如何制作资源,在代码里面怎么使用资源的!当然大家对上面的结构体有什么好的想法,也可以留言一起探讨一下!互相学习嘛!