zoukankan      html  css  js  c++  java
  • Android 开关机动画规范


    极力推荐文章:欢迎收藏
    Android 干货分享

    本篇文章主要介绍 Android 开发中的部分知识点,通过阅读本篇文章,您将收获以下内容:

    一、开机动画压缩格式必须为存储方式
    二、开机动画压缩包不能包含bootanimation文件夹
    三、开机动画图片 size 以及格式需要完全统一
    四、开机动画帧率,播放速度配置方案

    一、开机动画压缩格式必须为存储方式

    开机动画压缩包必须以 存储方式 进行压缩,否则无法播放开机动画。

    压缩方式 一定要选择存储方式

    二、开机动画压缩包不能包含bootanimation文件夹

    开机动画压缩包不能包含bootanimation文件夹,必现是如下格式。

    开机动画压缩包不能包含bootanimation文件夹

    三、开机动画图片 size 以及格式需要完全统一

    开机动画图片需要统一格式size,不然因为大小不统一,播放出来很丑。

    开机动画图片 size 以及格式需要完全统一

    四、开机动画帧率,播放速度配置方案

    desc.txt文件用来定义开机动画的播放配置。
    1280* 720 的图片举例如下:

    //参数: 宽:720 ;高:1280 ;帧率 :10
    720 1280 10
    // 参数:Google 默认: p;循环次数:1;图像渲染后delay时间:0 文件路径:folder1
    p 1 0 folder1
    p 0 0 folder2
    

    开机动画参数代表

    1.第一行的参数前两位7201280分别表示要显示动画的 width height.
    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.第二行和第三行,设置顺序播放和无限循环播放

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

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

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

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

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

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

    至此,本篇已结束,如有不对的地方,欢迎您的建议与指正。同时期待您的关注,感谢您的阅读,谢谢!

    微信关注公众号:  程序员Android,领福利

  • 相关阅读:
    Spring IOC之容器概述
    SQL Server之记录筛选(top、ties、offset)汇总
    [译]Java 设计模式之单例
    [译]Java 设计模式之适配器
    [译]Java 设计模式之桥接
    [译]Java 设计模式之装饰器
    [译]Java 设计模式 之模板方法
    [译]Java 设计模式之抽象工厂
    [译]Java 设计模式之工厂
    传入两个字符串,确认其中一个字符串重新排序后能否变为另一个字符串(也就是两个字符串相等)
  • 原文地址:https://www.cnblogs.com/wangjie1990/p/11310933.html
Copyright © 2011-2022 走看看