mstar平台【Android的开机logo动画,你了解吗?】
推荐文章
关于开机logo动画总结
一、 开机logo
1、2KUI下分辨率最大只支持1920x1080,超过该分辨率,logo会显示黑屏。同时logo图片内存不能大于512kb。
2、logo存放在tvconfig/下,手动可以直接替换tvconfig/boot0.jpg,重启生效。
3、在线升级替换logo其实也是替换tvconfig/boot0.jpg文件,只是由于权限问题不能直接替换,需要通过脚本实现,先把boot0.jpg先拷到/tvcustomer/Customer/下。
4、目前Mstar平台只能支持jpg格式图片。
二、 开机动画-zip格式
1、 zip格式动画制作。bootanimation.zip包括一个文件两个目录
part0:第一阶段动画图片目录。
part1: 第二阶段动画图片目录。
注意:part0和part1中的文件可以是jpg和png格式,建议使用png格式,清晰度要高一些。文件名命名长度必须保持一致,同时2KUI分辨率最大支持1920x1080,否则动画会黑屏。
desc.txt:动画属性描述文件。
注意:上图所示:
1920 1080 8:1920 1080分别是分辨率地长和宽,8表示每秒播放多少帧即帧率。
p 1 0 part0:P为标志位;1表示循环次数;0:为阶段切换间隔时间;part0:目录
还有一种特殊的用法:
p 0 10 part1:这里面的那个10代表着播放完part1文件夹内的图片一遍之后稍作停顿,然后再循环播放一遍,再停顿少许,再播放,再停顿稍许·········重复下去。如果想作出一些特殊的效果,可以活用这些命令,然后分配不同的图片在各个文件夹里来实现各种重复与循环。
制作动画最后一步是压缩文件, 压缩时需注意选择zip格式,以存储方式压缩,同时必须和上面上个同目录压缩,否则制作的动画会异常。
2、 bootanimation.zip在系统目录system/media/下,假如删除该目录下的
bootanimation.zip文件,系统会使用默认的Android原始动画。
3、 通过在线升级动画,直接拷贝到/tvcustomer/Customer/下即可。System下是系统默认的路径,tvcustomer目录下是为了方便我们版控升级我们自定义的路径。在读取文件的时候会遍历这几个路径下是否有bootanimation.zip文件。
路径:fameworks/base/cmds/bootanimation/BootAnimation.cpp
4、bootanimation.zip文件目前没有内存大小限制,但是需要考虑版控升级时tvcustomer分区的大小,动画文件过大文件拷过去后可能超过分区的大小,从而导致替换动画失败。
三、 开机动画-ts格式
1、 Android除了支持zip格式的动画之外还支持ts格式的视频做动画,视频做动画流畅度要好很多,但是目前用视频做动画还存在一些漏洞。
2、 Android原生的ts视频文件存放在/system/media/目录下,文件名必须命名为video.ts。为了我们升级版控方便,我们添加了一个目录tvcustomer/Customer。
3、 动画优先级为:ts视频>zip文件,假如不存在system和Customer下均没有zip文件,系统使用默认的Android原生动画。
4、 使用ts视频跟原生Android有差异,mstart平台ts视频目录放在了data/video下。目前我们也修改成了/tvcustomer/Customer/下,以便版控升级。
修改文件目录:
vendor/mstar/supernova/projects/board/m7221/serials/MST140B_10ABQM_17425_DTMB/model/Customer_1.ini
5、 使用ts格式视频做动画,会出现开机后使用本地播放器或者浏览器播放视频只会显示开机动画最后一帧。原因是开机动画播放后,播放器会冻住最后一帧画面,在supernova下去掉即可。开机动画的播放是通过supernova下调用playAdvertVideo()接口播放的。
四、 遇到的其他问题
1、 使用ts格式视频做动画时,升级第一次会出现黑屏很久的问题。原因是ts视频时长有限,而升级第一次开机耗时很长,无法适配这个时间。
2、 不管是ts还是zip格式的动画,在进入launcher前会有一个提示“Android正在启动”。很多客户会要求去掉这个提示,去掉这个提示会导致进入launcher黑屏1-2s。针对这个问题,最好的解决办法就是让开机动画晚点结束,可以修改以下文件。
去掉Android启动提示:
packages/apps/Settings/src/com/android/settings/FallbackHome.java
动画延迟退出:fameworks/base/cmds/bootanimation/BootAnimation.cpp
动画播放完之后会停留在最后一帧。