Android开机动画及黑屏

platform:RK3399
OS:Android 7.1

1.Android各阶段动画

Android动画主要分为关机充电动画和开机动画;开机动画又分为三个阶段:uboot阶段动画、kernel阶段动画、Android阶段动画。

1.1uboot开机动画

Uboot阶段由于大部分环境和驱动没有准备好,所有此阶段显示直接采用的framebuffer;而且严格来说只是图片,并不是动画。
要在uboot阶段显示logo,需要先在dts中打开配置

rockchip,uboot-logo-on = <1>;

然后替换源码SDK中kernel目录下的logo.bmp;重新编译resource.img即可生效。

1.2kernel开机动画

Kernel阶段的logo图片更换比Uboot阶段的更加简单,只需要替换SDK中kernel目录下的logo_kernel.bmp即可。仍然是重新编译resource.img生效。

1.3Android开机动画

到了Android启动阶段,就可以真正显示动画了。不过这里的动画也是一系列png图片以每秒一定帧数播放产生的视觉效果。下图是一个Android开机动画的示例。

1.gif

1.4关机充电动画

除了开机动画,关机充电也支持动画显示。下图是一个充电电池图标。

2

步骤1:支持关机充电:

uboot-charge {
compatible = "rockchip,uboot-charge";
rockchip,uboot-charge-on = <1>;
rockchip,android-charge-on = <0>;
};

步骤2:替换关机充电图标

resources
├── charge_anim_desc.txt
└── images
    ├── battery_0.bmp
    ├── battery_1.bmp
    ├── battery_2.bmp
    ├── battery_3.bmp
    ├── battery_4.bmp
    ├── battery_5.bmp
    └── battery_fail.bmp

上述目录是充电动画资源目录。建议名称和数量不要更改,仅更换图片内容即可。

步骤3:打包资源,执行下面的打包指令

sudo ./tools/resource_tool/pack_resource.sh tools/resource_tool/resources/ ../kernel/resource.img resource.img tools/resource_tool/resource_tool

执 行 后 会 将 tools/resource_tool/resources/ 目 录 下 的 动 画 图 片 资 源 打 包在../kernel/resource.img,生成新的 resource.img 在 uboot 根目录。

如果需要更高的定制化,那么就需要修改charge_anim_desc.txt文件

#default anim delay. //默认动画延时时间ms
delay=900

#only show current level's pics.//是否只显示当前电量级别的动画,关闭可以看到电量叠加
only_current_level=false

#reserve.//错误的时候显示的图片
bat_error=images/battery_fail.bmp

#num of level configs. //这里可以根据需要定义图片数量
levels=6

//每张图片对应的电量,总的数量要和上面levels一致。
#min_level(min cap level to match this level-conf), num(num of pics in this level-conf)
#prefix(prefix of pics' path in resource.img)
#'num=1 prefix=test' means: test.bmp
#'num=2 prefix=test' means: test00.bmp & test01.bmp
min_level=0 num=1 prefix=images/battery_0
min_level=20 num=1 prefix=images/battery_1
min_level=40 num=1 prefix=images/battery_2
min_level=60 num=1 prefix=images/battery_3
min_level=80 num=1 prefix=images/battery_4
min_level=100 num=1 prefix=images/battery_5

2.Android开机动画

Android 开机动画由多幅图片,逐帧播放,形成动画的效果。播放的具体效果,由配置文件desc.txt中的参数来决定。

2.1文件格式

动画资源文件统一命名为bootanimation.zip的zip压缩包。内部包含的文件如下面目录所示。

.
├── desc.txt  //配置文件
└── part1    //播放的图片目录,可以有多个,比如:part0,part1...

2.2语法规则

desc.txt的具体内容如下:

1980 1200 15 ----第一行
p 3 10 part1 ----第二行
p 1 0 part1 ----可以有多个目录

第一行参数:

  • 1920 1080这两个是显示时候的分辨率从,一般就是屏幕的分辨率。
  • 15 帧率,就是一分钟播放的图片张数,可以根据需要设置,常见的有24,25,30等。

第二行参数

  • p 表示播放
  • 3 表示循环次数;0表示无限循环,3就表示循环3次。
  • 10 表示每张图片之间延迟的时间,单位ms
  • part1 就是上面的存放图片的目录名称

2.3更换步骤

步骤1:更换part目录中的图片,注意图片要按序号命名。比如001.png,002.png....

步骤2:按需求和实际情况修改desc.txt文件

步骤3:将资源文件打包成zip文件。

  • 在linux下打包

zip -r -0 bootanimation.zip part1 desc.txt

  • 在windwos下打包,注意选择“仅存储”,且不要新建bootanimation文件夹,而是直接打包文件。

步骤4:使更换的开机动画生效

  • 临时生效

执行命令并重启设置。

adb push bootanimation.zip system/media/

  • 完全替换
    在板级配置文件rk3399.mk中增加如下内容
#for bootanimation
PRODUCT_COPY_FILES += \
       device/rockchip/rk3399/bootanimation.zip:system/media/bootanimation.zip

在rk3399中还需要更改另外一处地方:
替换device/rockchip/common目录下的bootanimation.zip

2.4开机黑屏问题

现象描述:当Android开机动画播放完毕,但是Launcher还没有起来之前,会出现一段时间的黑屏。这种现象在烧录固件第一次开机的时候尤其明显。
解决方法:将Android开机动画设置为循环播放,也就是

1980 1200 15 
p 0 10 part1 

注意循环播放最后一帧需要与第一帧衔接,不然会有跳跃的突兀感。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 220,976评论 6 513
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 94,249评论 3 396
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 167,449评论 0 360
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 59,433评论 1 296
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 68,460评论 6 397
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 52,132评论 1 308
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 40,721评论 3 420
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 39,641评论 0 276
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 46,180评论 1 319
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 38,267评论 3 339
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 40,408评论 1 352
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 36,076评论 5 347
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 41,767评论 3 332
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 32,255评论 0 23
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 33,386评论 1 271
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 48,764评论 3 375
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 45,413评论 2 358