问题:开关机动画加载黑屏时间过长解决方法
[SOLUTION]
在开机过程,由于加入开机铃声,在播放动画前需要等待 MediaServer 初始化完成, MediaServer 的初始化
可能由于 audio 或者 camera 初始化过慢导致黑屏问题,目前遇到大多都是配置 camera
多,导致 camera 初始化阶段 search
backup sensor 太
camera sensor 耗时太长。
1. 首先对于开机 kernel logo 到动画黑屏的问题,可以通过加入开机铃声和去掉开机铃声对比测试,确定黑屏
是否和加入开机铃声相关。
2. 如果是因为加入开机铃声黑屏,从开机 log 来 check 黑屏的原因,从开机的 main_log.boot 搜索关键字“
bootanimation ”, check 如下两句 log 的间隔时间:
BootAnimation: enter threadLoop()
BootAnimation: [BootAnimation threadLoop 674]bexist=0,nMp3Exist=-
1,pSoundFileName=/system/media/bootaudio.mp3,pBackupSoundFileName=/data/lo
cal/bootaudio.mp3 (这一句 log 的每个变量的值可能具体 Log 有些不一样)
如果这对应的两行 log 的时间间隔比较长,基本可以确定是和 MediaServer 初始化时间过长有关。
3. 进一步确定 MediaServer Init 比较慢是否和 Camera 有关, check 如下的 log :
在main_log.boot这份log中,搜索CameraService started 这个关键词去看camera service 启动的时间点
CameraService( 105): CameraService started (pid=105)
接下来在 main_log.boot 搜索关键字 “ ImgSensorDrv ”, check camera search sensor 的时间
:
ImgSensorDrv: [getInstance][ImgSensorDrv] getInstance
ImgSensorDrv: [impSearchSensor]Warning( 168):SENSOR search [0]0x5645 /
[1]0x5ea1 start
ImgSensorDrv: [impSearchSensor]SENSOR search end:
如果 ImgSensorDrv start 到 end 的时间和步骤 2 bootanimation 等待 MediaServer 初始化的时间差
不多,且开始结束时间也对应,可以确定黑屏是和 Camera Search Sensor 太多有关
4. 接下来,可以进一步 check Project 配置的 Backup Camera Sensor 是不是太多,如果 Backup
Sensor 过多,可以通过去掉多余的 Camera Sensor 进一步验证。
另外还可以通过将 camera service init 时 search