当前位置:   article > 正文

Android 开机动画执行完毕后,黑屏十秒左右进入Launcher(车机)_更改开机动画 黑屏 车机

更改开机动画 黑屏 车机

问题描述

开机动画执行完毕后,车机屏幕黑屏了十秒左右才进入launcher

解决方案

查看问题发生时间点,以及对应log相关信息:

屏幕背光无问题:

power mode切换正常:

power mode切换有3种状态:0、1、2;0代表息屏,1代表进入doze模式(当然,车机一般是没有doze模式的),2代表亮屏

12-03 20:10:16.446  1134  1134 D SurfaceFlinger: Setting power mode 2 on display 4625716335649126655 

开机动画执行完成:

12-03 20:10:19.075  1490  1539 I wm_boot_animation_done: 21909 

常见的我们都分析完了,当然,还有个跟power相关的,这里已经从log里面看了,power模块没有问题。

接下来我们看看其他异常点:

fallbackhome多次启动,开机动画大概是20:10:19s这个时间段完成的

  1. 12-03 20:10:17.256 1492 1492 I ActivityTaskManager: START u0 {act=android.intent.action.MAIN cat=[android.intent.category.HOME] flg=0x10000100 cmp=com.android.car.settings/.FallbackHome (has extras)} from uid 0
  2. 12-03 20:10:18.496 1492 1519 I ActivityTaskManager: START u0 {act=android.intent.action.MAIN cat=[android.intent.category.HOME] flg=0x10000100 cmp=com.android.car.settings/.FallbackHome (has extras)} from uid 0
  3. 12-03 20:10:18.995 1492 2324 I ActivityTaskManager: START u10 {act=android.intent.action.MAIN cat=[android.intent.category.HOME] flg=0x10000100 cmp=com.android.car.settings/.FallbackHome (has extras)} from uid 0
  4. 12-03 20:10:20.640 1492 1620 I ActivityTaskManager: START u10 {act=android.intent.action.MAIN cat=[android.intent.category.HOME] flg=0x10000100 cmp=com.android.car.settings/.FallbackHome (has extras)} from uid 0
  5. 12-03 20:10:21.033 1492 1535 I ActivityTaskManager: START u10 {act=android.intent.action.MAIN cat=[android.intent.category.HOME] flg=0x10000100 cmp=com.android.car.settings/.FallbackHome (has extras)} from uid 0

fallbackhome这个window被冻结了,并且被冻住了大概十秒左右,恰好黑屏的时间也是10s左右:

  1. 12-03 20:10:20.660 1492 1620 I WindowManager: Screen frozen for +104ms due to ActivityRecord{471aa34 u10 com.android.car.settings/.FallbackHome} t1000001 f}}
  2. 12-03 20:10:30.414 1492 1536 I WindowManager: Screen frozen for +9s600ms due to Window{f2cf6ec u10 com.android.car.settings/com.android.car.settings.FallbackHome}

我们来看看为什么fallbackhome这个Activity多次启动:

从log里面看是因为configChange发生改变导致fallbackhome多次启动,那么是哪些config change改变导致生命周期异常而去重新启动Activity呢?从log里面可以看出是uiMode、density、locale发生改变,至于怎么看出来的可以根据log去源码中寻找。

要想configChange改变不影响生命周期在对应的AndroidManifest.xml配置即可:

/packages/apps/Car/Settings/AndroidManifest.xml

在configChanges标签里面加上 uiModedensitylocale这几个配置就行,还可以加上touchScreen,防止触摸事件传递给这个Activity影响生命周期。

至于为什么会引起fallbackhome冻屏,没有从log里面看出有效信息,可以打开相应的log开关来看流程,一般发生冻屏是因为在主线程做了耗时操作。注意:冻屏不一定会引起黑屏!

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/很楠不爱3/article/detail/273569
推荐阅读
相关标签
  

闽ICP备14008679号