Chinaunix首页 | 论坛 | 博客
  • 博客访问: 768667
  • 博文数量: 478
  • 博客积分: 0
  • 博客等级: 民兵
  • 技术积分: 4831
  • 用 户 组: 普通用户
  • 注册时间: 2014-06-28 11:12
文章分类

全部博文(478)

文章存档

2019年(1)

2018年(27)

2017年(21)

2016年(171)

2015年(258)

我的朋友

分类: Android平台

2015-08-11 10:58:05

[DESCRIPTION]

如何预置规范的动画包?

 
 
[SOLUTION]
 

一、保证bootanimation.zip压缩包下的图片Size和格式完全统一

二、请写规范的配置文件desc.txt

desc.txt每个参数的实际意义,以如下的case为例:

480 854 10

p 1 0 part0

p 0 0 part1

1.第一行的参数前两位480854分别表示要显示动画的widthheight. 默认情况下应该与Displaywidthheight一致,如果设置比Displaysize要小,则动画会居中显示,周边将用黑框填充.

2.第一行的第三个参数10是定义动画播放的预订帧率(FPS),这个帧率fps是指:每秒动画播放的帧数。此帧数是一个理想值,并不一定代表动画实际帧率,假设预订帧率为FPS_I,预订每一帧解析的时间t_I,  t_I=1/FPS_I。实际帧率的规则是:

假设某一帧从解析到渲染耗时为t_r,当t_r<=t_l,则渲染完这一帧后,动画这个threadsleep(t_l-t_r)的时间,也就说这一帧最后的耗时就t_l

假设某一帧从解析到渲染耗时为t_r,当t_r>t_l,则渲染完这一帧后,动画这个thread会马上开始下一帧,也就说这一帧最后的耗时就t_r

所以,desc.txt内设置的这个帧率并不能代表动画的实际帧率,实际的帧率是和系统开机的performance有关,因此不是说在desc.txt设置帧率越大越好,反而容易出现当某一帧耗时较长,就容易给用户某一帧卡顿的体验,目前这个FPS的值一般设置在13左右。

当然,设置FPS13并不是说系统的performance比较低,本身在开机动画阶段,系统进入Bootup Android阶段,许多进程需要启动,系统的主要工作应该集中与开机启动的进程,因此不建议动画的图片过于复杂,导致系统开机的Performance变差。

 

3.第二行和第三行情况类似,一般用于分别设置顺序播放和无限循环播放的相关参数.

第一个参数pgoogle default的设计,请保留以p开头。

第二个参数1表示这一行对应folder所需要循环播放的次数,如果是0则表示是无限循环播放,直到系统ready后通过被动退出。

第三个参数0表示这一行对应folder里面的每一帧图片依次解析渲染完成后,要进入下一个循环,动画这个线程需要pause多久。

第四个参数part0表示对应设置规则的folderpath

Note1:默认的设计,都是将顺序播放的动画放在一个folder,定义这个folder所需要循环的次数;在无限循环的folder内放置一张图片,保证动画没有收到退出指令的时候,动画可以一直显示.

Note2:由于循环播放的folder中的每帧都是以纹理对象存储在纹理内存中再uploadGPU做渲染的,以便下次循环播放不需要重新解析.如果动画包中的图片太多或者图片的size很大时则会导致占用较多的memory,因此为保证开机的performance,开机动画不建议太复杂.

 

阅读(192) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~