1.前言
在11.0的系统ROM定制化开发中,在关于开机动画这部分由于产品需要适配多种分辨率,所以就需要在出rom固件的时候,就需要
根据系统属性来适配显示哪种分辨率开机动画,所以接下来就来看怎么设置系统属性,然后在开机动画阶段怎么实现
这个功能
2. 通过系统属性适配多种分辨率开机动画功能实现的核心类
frameworks/base/cmds/bootanimation/BootAnimation.cpp
build\make\tools\buildinfo.sh
3. 通过系统属性适配多种分辨率开机动画功能实现的核心功能分析和实现
在系统中开机动画的启动流程如下:
bootanimation也是init进程启动的,在init.rc中启动bootanim进程
启动bootanimation是依赖android系统中的surface管理
需要surfacefinger初始化完成了,才会启动bootanimation进程
bootanimation是要等待android ui即将显示的时候才会退出
WSM会setprop“service.bootanim.exit” = 1来通知动画结束
bootanimation.cpp中轮询检查属性service.bootanim.exit,根据这个属性值退出动画
系统内核起来后会启动第一个进程,即init进程,
init进程会根据init.rc配置启动surfaceflinger进程,接下来就可以具体启动开机动画了整个
流程大致如此的
3.1 buildinfo.sh中添加具体的系统属性值
在Android系统中所有的系统属性都是在buildinfo.sh中,然后在系统编译的过程中,会把这些系统属性编译到out下的build.prop