【定屏】vfp 原生bug导致开机概率定屏问题分析

1、问题描述android5.1+kernel3.10环境下,手机下载软件,首次开机(1/500)低概率定屏在android开机动画最后一帧,旋转屏幕会出现开机向导部分界面。此问题,adb可以连接,按键有反应。2、问题分析拿到问题后,与客户沟通,确认adb可以连接,按键有反应,屏幕可以正常亮灭,system_sever正常、kernel工作正常,动画卡在最后一张图片播放未完成,开始认为是boota...
摘要由CSDN通过智能技术生成

1、问题描述

android5.1+kernel3.10环境下,手机下载软件,首次开机(1/500)低概率定屏在android开机动画最后一帧,旋转屏幕会出现开机向导部分界面。此问题,adb可以连接,按键有反应。

2、问题分析

拿到问题后,与客户沟通,确认adb可以连接,按键有反应,屏幕可以正常亮灭,system_sever正常、kernel工作正常,动画卡在最后一张图片播放未完成,开始认为是bootanimation模块异常,逻辑有问题联系模块处理。模块分析后认为bootanimation流程无异常,从log上看也无明显异常点。模块添加log请客户复现问题。确认是bootanimation流程没有走完,进入sleep,导致最后一张图片没有播放完,无法退出动画进程,经过log分析是frameDuration变量异常导致动画无法退出,bool BootAnimation::movie()函数中模块添加log如下:

nsecs_t frameDuration = s2ns(1) /animation.fps;

   __android_log_print(ANDROID_LOG_ERROR, LOG_TAG,"msn---bootani---start--frameDuration=%lld===animation.fps==%lld",frameDuration/1000000,animation.fps);

for (size_t i=0 ;i<pcount ; i++) {

for (int r=0 ; !part.count ||r<part.count ; r++) {

for (size_t j=0 ; j<fcount&& (!exitPending() || part.playUntilComplete) ; j++) {

……            

nsecs_t delay = frameDuration - (now - lastFrame);

+__android_log_print(ANDROID_LOG_ERROR,LOG_TAG,"msn---bootani---f23--frameDurationlld==%lld",frameDuration);

+__android_log_print(ANDROID_LOG_ERROR,LOG_TAG, "msn---bootani---f23--delaylld== %lld",delay);

+__android_log_print(ANDROID_LOG_ERROR,LOG_TAG,"msn---bootani---f23--lastFramelld==%lld",lastFrame);

 lastFrame = now;

+__android_log_print(ANDROID_LOG_ERROR,LOG_TAG, "msn---bootani---f24-- %lld", frameDuration);

log输出如下:

下面是正常log输出是frameDuration变量的值          

01-02 08:46:53.931   258  329 E BootAnimation: msn---bootani---f23--frameDuration==0.000000

01-02 08:46:53.931   258  329 E BootAnimation: msn---bootani---f23--frameDurationlld==125000000

01-02 08:46:53.931   258  329 E BootAnimation: msn---bootani---f23--delay== 0.000000

01-02 08:46:53.931   258  329 E BootAnimation: msn---bootani---f23--delaylld== 85754394

01-02 08:46:53.931   258  329 E BootAnimation: msn---bootani---f23--lastFrame== 0.000000

01-02 08:46:53.931   258  329 E BootAnimation: msn---bootani---f23--lastFramelld== 196218922118   

异常log输出如下:

01-02 08:46:54.282   258   329 E BootAnimation: msn---bootani---f23--frameDuration== -144.312836

01-02 08:46:54

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值