一 . 亮屏主要关键log

驱动按键时间
??-?? ??:??:??.??? <3>[14082.058160]  (0)[70:pmic_thread]kpd: Power Key generate, pressed=1
上层按键时间
09-25 15:13:07.196667   929  1117 D PhoneWindowManager-interceptKeyBeforeQueueing: --->keyCode:26 down:true

上层开始唤醒
09-25 15:13:07.197996   929  1117 D PowerManagerNotifier: onWakeLockAcquired: flags=1, tag="PhoneWindowManager.mPowerKeyWakeLock", packageName=android, ownerUid=1000, ownerPid=929, workSource=null
09-25 15:13:07.202103   929  1117 D PowerManagerService:    |----com.android.server.power.PowerManagerService.wakeUpNoUpdateLocked(PowerManagerService.java:1536)
09-25 15:13:07.202144   929  1117 D PowerManagerService:    |----com.android.server.power.PowerManagerService.wakeUpInternal(PowerManagerService.java:1527)
09-25 15:13:07.202176   929  1117 D PowerManagerService:    |----com.android.server.power.PowerManagerService.-wrap39(PowerManagerService.java)
09-25 15:13:07.202207   929  1117 D PowerManagerService:    |----com.android.server.power.PowerManagerService$BinderService.wakeUp(PowerManagerService.java:4008)
09-25 15:13:07.202234   929  1117 D PowerManagerService:    |----android.os.PowerManager.wakeUp(PowerManager.java:769)
09-25 15:13:07.202263   929  1117 D PowerManagerService:    |----com.android.server.policy.PhoneWindowManager.wakeUp(PhoneWindowManager.java:7613)
09-25 15:13:07.202297   929  1117 D PowerManagerService:    |----com.android.server.policy.PhoneWindowManager.wakeUpFromPowerKey(PhoneWindowManager.java:7599)
09-25 15:13:07.202326   929  1117 D PowerManagerService:    |----com.android.server.policy.PhoneWindowManager.interceptPowerKeyDown(PhoneWindowManager.java:1246)
09-25 15:13:07.202356   929  1117 D PowerManagerService:    |----com.android.server.policy.PhoneWindowManager.interceptKeyBeforeQueueing(PhoneWindowManager.java:6922)
09-25 15:13:07.202384   929  1117 D PowerManagerService:    |----com.android.server.wm.InputMonitor.interceptKeyBeforeQueueing(InputMonitor.java:465)
09-25 15:13:07.202418   929  1117 D PowerManagerService:    |----com.android.server.input.InputManagerService.interceptKeyBeforeQueueing(InputManagerService.java:1897)
09-25 15:13:07.202448   929  1117 I PowerManagerService: Waking up from sleep (uid 1000)...

开始unlock screen
09-25 15:13:07.221393   929   963 I DisplayPowerController: Blocking screen on until initial contents have been drawn.

开始设置auto-suspend的时间
09-25 15:13:07.362247   929  1396 D PowerManagerService: Setting HAL auto-suspend mode to false
09-25 15:13:07.362454   929  1396 D PowerManagerService: Setting HAL interactive mode to true

解锁时间
09-25 15:13:07.372362   929   963 I DisplayPowerController: Unblocked screen on after 151 ms

设置背光灯点亮
??-?? ??:??:??.??? <7>[14082.423208]  (1)[1396:PhotonicModulat][name:leds&][LED]Set Backlight directly 44 at time 4296345559, mapping level is 44
??-?? ??:??:??.??? <7>[14082.424847]  (1)[1396:PhotonicModulat][name:ddp_aal&]disp_aal_notify_backlight_changed: 177/1023
??-?? ??:??:??.??? <4>[14082.430442]  (0)[508:AALServiceMain][PWM] disp_pwm_set_backlight_cmdq(id = 0x1, level_1024 = 149), old = 0

亮屏完成
09-25 15:13:07.380214   929   963 D DisplayPowerController: Finished business..

遇到的问题分析过程
按power按键后,13秒以后才会亮起

//上层唤醒
03-10 10:27:36.810765 1007 1060 I PowerManagerService: Waking up from sleep (uid 1000)...
//设置auto-suspend的动作
03-10 10:27:37.039599 1007 1140 D PowerManagerService: Setting HAL auto-suspend mode to false
03-10 10:27:49.775024 1007 1140 D PowerManagerService: Setting HAL interactive mode to true

//上层解锁
03-10 10:27:50.844962 1007 1060 I DisplayPowerController: Blocking screen on until initial contents have been drawn.
//设置背光点亮
03-10 10:27:50.109 <7>[64212.010491] (5)[1140:PhotonicModulat][name:leds&][LED][BL] Set Backlight directly T:64212.10,L:255 map:255 
03-10 10:27:50.109 <7>[64212.010510] (5)[1140:PhotonicModulat][name:ddp_aal&]disp_aal_notify_backlight_changed: 1023/1023
//完成点亮屏幕
03-10 10:27:51.880013 1007 1060 D DisplayPowerController: Finished business...

初步分析如下,发现异常点,Setting HAL auto-suspend发现消耗了13s,这时候会打印出关键log
PowerManagerService-JNI: Excessive delay in autosuspend_disable() while turning screen on: 12735ms

继续分析:
发现这段时间内有14秒左右
<6>[64197.519864] (0)[1061:system_server]PM: suspend entry 2017-03-10 02:27:35.602021092 UTC
<3>[64198.293043] (1)[1061:system_server]battery resume NOT by pcm timer!!
<3>[64211.675581] (0)[1061:system_server]@bs=0@
<6>[64211.675625] (0)[1061:system_server]PM: suspend exit 2017-03-10 02:27:49.773928539 UTC

综上分析,问题点就在charger这块可能持锁时间太长.
http://192.168.10.10/#/c/153969/

二. 灭屏的主要关键log
上层按键的时间(自动灭屏无此log)
09-25 15:13:04.405504   929  1117 D PhoneWindowManager-interceptKeyBeforeQueueing: --->keyCode:26 down:true

上层开始执行灭屏
09-25 15:13:04.656024   929  1117 D PowerManagerService:  |----com.android.server.power.PowerManagerService.goToSleepNoUpdateLocked(PowerManagerService.java:1610)
09-25 15:13:04.656052   929  1117 D PowerManagerService:  |----com.android.server.power.PowerManagerService.goToSleepInternal(PowerManagerService.java:1599)
09-25 15:13:04.656075   929  1117 D PowerManagerService:  |----com.android.server.power.PowerManagerService.-wrap13(PowerManagerService.java)
09-25 15:13:04.656113   929  1117 D PowerManagerService:  |----com.android.server.power.PowerManagerService$BinderService.goToSleep(PowerManagerService.java:4042)
09-25 15:13:04.656136   929  1117 D PowerManagerService:  |----android.os.PowerManager.goToSleep(PowerManager.java:731)
09-25 15:13:04.656158   929  1117 D PowerManagerService:  |----com.android.server.policy.PhoneWindowManager.powerPress(PhoneWindowManager.java:1357)
09-25 15:13:04.656181   929  1117 D PowerManagerService:  |----com.android.server.policy.PhoneWindowManager.interceptPowerKeyUp(PhoneWindowManager.java:1292)
09-25 15:13:04.656204   929  1117 D PowerManagerService:  |----com.android.server.policy.PhoneWindowManager.interceptKeyBeforeQueueing(PhoneWindowManager.java:6933)
09-25 15:13:04.656226   929  1117 D PowerManagerService:  |----com.android.server.wm.InputMonitor.interceptKeyBeforeQueueing(InputMonitor.java:465)
09-25 15:13:04.656248   929  1117 D PowerManagerService:  |----com.android.server.input.InputManagerService.interceptKeyBeforeQueueing(InputManagerService.java:1897)
09-25 15:13:04.656270   929  1117 I PowerManagerService: Going to sleep due to power button (uid 1000)...

设置auto-suspend的状态
09-25 15:13:05.553522   929  1396 D PowerManagerService: Setting HAL interactive mode to false
09-25 15:13:05.553586   929  1396 D PowerManagerService: Setting HAL auto-suspend mode to true

更新当前屏幕的状态
09-25 15:13:04.656918   929  1117 D DisplayPowerController: requestPowerState: policy=OFF, useProximitySensor=false, screenBrightness=102, screenAutoBrightnessAdjustment=0.0, brightnessSetByUser=true, useAutoBrightness=true, blockScreenOn=false, lowPowerMode=false, boostScreenBrightness=false, dozeScreenBrightness=-1, dozeScreenState=UNKNOWN, useTwilight=false, waitForNegativeProximity=false, changed=true
09-25 15:13:04.661324   929   963 D DisplayPowerController: updatePowerState: policy=OFF, useProximitySensor=false, screenBrightness=102, screenAutoBrightnessAdjustment=0.0, brightnessSetByUser=true, useAutoBrightness=true, blockScreenOn=false, lowPowerMode=false, boostScreenBrightness=false, dozeScreenBrightness=-1, dozeScreenState=UNKNOWN, useTwilight=false, mWaitingForNegativeProximity=false, autoBrightnessAdjustmentChanged=false, mustNotify=true
09-25 15:13:05.200432   929   963 D DisplayPowerController: updatePowerState: policy=OFF, useProximitySensor=false, screenBrightness=102, screenAutoBrightnessAdjustment=0.0, brightnessSetByUser=true, useAutoBrightness=true, blockScreenOn=false, lowPowerMode=false, boostScreenBrightness=false, dozeScreenBrightness=-1, dozeScreenState=UNKNOWN, useTwilight=false, mWaitingForNegativeProximity=false, autoBrightnessAdjustmentChanged=false, mustNotify=true
09-25 15:13:05.554135   929   963 D DisplayPowerController: updatePowerState: policy=OFF, useProximitySensor=false, screenBrightness=102, screenAutoBrightnessAdjustment=0.0, brightnessSetByUser=true, useAutoBrightness=true, blockScreenOn=false, lowPowerMode=false, boostScreenBrightness=false, dozeScreenBrightness=-1, dozeScreenState=UNKNOWN, useTwilight=false, mWaitingForNegativeProximity=false, autoBrightnessAdjustmentChanged=false, mustNotify=true

驱动设置背光亮度
??-?? ??:??:??.??? <7>[14080.065349]  (0)[1396:PhotonicModulat][name:leds&][LED]Set Backlight directly 0 at time 4296345323, mapping level is 0

灭屏完成
09-25 15:13:05.554253   929   963 D DisplayPowerController: Display ready!
09-25 15:13:05.554306   929   963 D DisplayPowerController: Finished business...

拨打电话的时候,马上出现灭屏

初步分析
拨打电话的时间
12-08 20:27:12.377449   885   921 I AT      : AT< +ECPI: 1,133,0,0,1,0,"18317062682",161,"",16 (RIL_URC_READER, tid:0)

执行灭屏的时间
12-08 20:27:19.195634   993  1018 D PowerManagerService:  |----com.android.server.power.PowerManagerService.goToSleepNoUpdateLocked(PowerManagerService.java:1565)
12-08 20:27:19.195767   993  1018 D PowerManagerService:  |----com.android.server.power.PowerManagerService.updateWakefulnessLocked(PowerManagerService.java:2266)
12-08 20:27:19.195873   993  1018 D PowerManagerService:  |----com.android.server.power.PowerManagerService.updatePowerStateLocked(PowerManagerService.java:1845)
12-08 20:27:19.195965   993  1018 D PowerManagerService:  |----com.android.server.power.PowerManagerService.handleUserActivityTimeout(PowerManagerService.java:2205)
12-08 20:27:19.196052   993  1018 D PowerManagerService:  |----com.android.server.power.PowerManagerService.-wrap18(PowerManagerService.java)
12-08 20:27:19.196141   993  1018 D PowerManagerService:  |----com.android.server.power.PowerManagerService$PowerManagerHandler.handleMessage(PowerManagerService.java:3547)
12-08 20:27:19.196232   993  1018 D PowerManagerService:  |----android.os.Handler.dispatchMessage(Handler.java:110)
12-08 20:27:19.196502   993  1018 D PowerManagerService:  |----android.os.Looper.loop(Looper.java:203)
12-08 20:27:19.196621   993  1018 D PowerManagerService:  |----android.os.HandlerThread.run(HandlerThread.java:61)
12-08 20:27:19.196707   993  1018 D PowerManagerService:  |----com.android.server.ServiceThread.run(ServiceThread.java:46)
12-08 20:27:19.196788   993  1018 I PowerManagerService: Going to sleep due to screen timeout (uid 1000)...

设置auto-suspend的时间
12-08 20:27:20.206320   993  1278 D PowerManagerService: Setting HAL interactive mode to false
12-08 20:27:20.206363   993  1278 D PowerManagerService: Setting HAL auto-suspend mode to true

驱动设置灭屏
12-08 20:27:19.758 <7>[ 8556.395647]  (0)[1278:PhotonicModulat][name:leds&][LED]Set Backlight directly 0 at time 4295792934, mapping level is 0

灭屏完成,以上log可以知道从接受开始灭屏的时间到完成灭屏,是没有问题
12-08 20:27:20.206830   993  1018 D DisplayPowerController: Display ready!
12-08 20:27:20.206856   993  1018 D DisplayPowerController: Finished business...

深入分析什么条件触发他灭屏的?
查看当前打电话开始整个屏幕显示的过程,可以发现一个奇怪的问题,为什么useProximitySensor一直为false.对比正常打电话,这里是一直ture状态
12-08 20:27:08.477400   993  1018 D DisplayPowerController: updatePowerState: policy=BRIGHT, useProximitySensor=false, screenBrightness=102, screenAutoBrightnessAdjustment=0.0, brightnessSetByUser=true, useAutoBrightness=false, blockScreenOn=false, lowPowerMode=false, boostScreenBrightness=false, dozeScreenBrightness=-1, dozeScreenState=UNKNOWN, useTwilight=false, mWaitingForNegativeProximity=false, autoBrightnessAdjustmentChanged=false, mustNotify=true
12-08 20:27:08.947930   993  1018 D DisplayPowerController: updatePowerState: policy=BRIGHT, useProximitySensor=false, screenBrightness=102, screenAutoBrightnessAdjustment=0.0, brightnessSetByUser=true, useAutoBrightness=false, blockScreenOn=false, lowPowerMode=false, boostScreenBrightness=false, dozeScreenBrightness=-1, dozeScreenState=UNKNOWN, useTwilight=false, mWaitingForNegativeProximity=false, autoBrightnessAdjustmentChanged=false, mustNotify=true
12-08 20:27:09.022917   993  1018 D DisplayPowerController: updatePowerState: policy=BRIGHT, useProximitySensor=false, screenBrightness=102, screenAutoBrightnessAdjustment=0.0, brightnessSetByUser=true, useAutoBrightness=false, blockScreenOn=false, lowPowerMode=false, boostScreenBrightness=false, dozeScreenBrightness=-1, dozeScreenState=UNKNOWN, useTwilight=false, mWaitingForNegativeProximity=false, autoBrightnessAdjustmentChanged=false, mustNotify=true
12-08 20:27:09.023881   993  1018 D DisplayPowerController: updatePowerState: policy=BRIGHT, useProximitySensor=false, screenBrightness=102, screenAutoBrightnessAdjustment=0.0, brightnessSetByUser=true, useAutoBrightness=false, blockScreenOn=false, lowPowerMode=false, boostScreenBrightness=false, dozeScreenBrightness=-1, dozeScreenState=UNKNOWN, useTwilight=false, mWaitingForNegativeProximity=false, autoBrightnessAdjustmentChanged=false, mustNotify=true
12-08 20:27:17.193356   993  1018 D DisplayPowerController: updatePowerState: policy=DIM, useProximitySensor=false, screenBrightness=102, screenAutoBrightnessAdjustment=0.0, brightnessSetByUser=true, useAutoBrightness=false, blockScreenOn=false, lowPowerMode=false, boostScreenBrightness=false, dozeScreenBrightness=-1, dozeScreenState=UNKNOWN, useTwilight=false, mWaitingForNegativeProximity=false, autoBrightnessAdjustmentChanged=false, mustNotify=true
12-08 20:27:17.657676   993  1018 D DisplayPowerController: updatePowerState: policy=DIM, useProximitySensor=false, screenBrightness=102, screenAutoBrightnessAdjustment=0.0, brightnessSetByUser=true, useAutoBrightness=false, blockScreenOn=false, lowPowerMode=false, boostScreenBrightness=false, dozeScreenBrightness=-1, dozeScreenState=UNKNOWN, useTwilight=false, mWaitingForNegativeProximity=false, autoBrightnessAdjustmentChanged=false, mustNotify=false
12-08 20:27:19.200712   993  1018 D DisplayPowerController: updatePowerState: policy=OFF, useProximitySensor=false, screenBrightness=102, screenAutoBrightnessAdjustment=0.0, brightnessSetByUser=true, useAutoBrightness=false, blockScreenOn=false, lowPowerMode=false, boostScreenBrightness=false, dozeScreenBrightness=-1, dozeScreenState=UNKNOWN, useTwilight=false, mWaitingForNegativeProximity=false, autoBrightnessAdjustmentChanged=false, mustNotify=true
12-08 20:27:19.755524   993  1018 D DisplayPowerController: updatePowerState: policy=OFF, useProximitySensor=false, screenBrightness=102, screenAutoBrightnessAdjustment=0.0, brightnessSetByUser=true, useAutoBrightness=false, blockScreenOn=false, lowPowerMode=false, boostScreenBrightness=false, dozeScreenBrightness=-1, dozeScreenState=UNKNOWN, useTwilight=false, mWaitingForNegativeProximity=false, autoBrightnessAdjustmentChanged=false, mustNotify=true
12-08 20:27:20.206754   993  1018 D DisplayPowerController: updatePowerState: policy=OFF, useProximitySensor=false, screenBrightness=102, screenAutoBrightnessAdjustment=0.0, brightnessSetByUser=true, useAutoBrightness=false, blockScreenOn=false, lowPowerMode=false, boostScreenBrightness=false, dozeScreenBrightness=-1, dozeScreenState=UNKNOWN, useTwilight=false, mWaitingForNegativeProximity=false, autoBrightnessAdjustmentChanged=false, mustNotify=true

查看知道返回是0参数,0代表靠近。ALS是Lightsensor PS是Psensor
12-08 20:27:14.133 <4>[ 8550.770608]  (0)[2026:Binder:993_9]<ALS/PS>  ps_delay 20000000 ns
12-08 20:27:19.822 <4>[ 8556.459917]  (3)[1245:Binder:993_3]<ALS/PS>  ps_delay 200000000 ns
12-08 20:27:19.879 <7>[ 8556.517378]  (3)[466:AALServiceMain][name:ltr559&][ALS/PS] ltr559_obj als enable value = 0

和驱动沟通确认发现只报了靠近,未报远离,导致灭屏后,无法重新亮起了,驱动回复,校准下就行

常见的亮灭屏流程分析相关推荐

  1. Android Keyguard 亮灭屏流程分析

    文章目录 概述 Keyguard 关键文件 Power 灭屏 超时灭屏 Power 亮屏 FAQ 亮屏慢 概述 Keyguard 锁屏流程: Keyguard 加载时机:一个是开机的时候:另一个是灭屏 ...

  2. Android 手机灭屏流程分析详解

    参考地址:https://www.jianshu.com/p/9241f3a91095 本篇文章主要介绍 Android 开发中的部分知识点,通过阅读本篇文章,您将收获以下内容: 1.前言 2.Pow ...

  3. qcom平台 LCD亮灭屏流程及LCD知识点总结

    一.LK中亮屏流程 1.gcdb_display_init(),进行display初始化的起始地方: 2.oem_panel_select(),在这里去选择哪一款屏,也可以在这里添加新一款屏: 3.d ...

  4. android 亮灭屏流程

    1. frameworks\base\core\java\android\hardware\display\DisplayManagerInternal.java 内部服务 frameworks\ba ...

  5. Android7.0 PowerManagerService亮灭屏分析(三)

    在前面两部分已经对绘制windows与设置设备状态进行了详细讲解. 之后接着就该对亮度值进行设置, 实现亮屏动作了. 在DisplayPowerController中的animateScreenBri ...

  6. Android 系统(42)---Android7.0 PowerManagerService亮灭屏分析(三)

    Android7.0 PowerManagerService亮灭屏分析(三) 在前面两部分已经对绘制windows与设置设备状态进行了详细讲解. 之后接着就该对亮度值进行设置, 实现亮屏动作了. 在D ...

  7. Android 亮屏流程分析

    https://blog.csdn.net/FightFightFight/article/details/79808100 相关文章: [Android Framework] 8.1 PowerMa ...

  8. Android 8.1 PowerManagerService分析(四)——亮屏流程分析

    欢迎大家关注我的掘金帐号 我会在那里定期更新最新版本的Android Framework源码分析! 相关文章: [Android Framework] 8.1 PowerManagerService分 ...

  9. Android手机亮屏流程分析

    极力推荐Android 开发大总结文章:欢迎收藏程序员Android 力荐 ,Android 开发者需要的必备技能 注:文章转于网络,点击查看原文 PowerManagerService 之前系列文章 ...

最新文章

  1. 使用工作集(Working Set)整理项目
  2. [PHP] 现代化PHP之路:composer的安装和升级
  3. java仿聊天室项目总结_Java团队课程设计-socket聊天室(个人总结)
  4. 网站页首可关闭广告条
  5. MyBatis操作指南-与Spring集成(基于注解)
  6. 多对多的添加修改,显示,的逻辑步骤
  7. 2020大厂web前端面试都喜欢问这些
  8. linux的进程/线程/协程系列5:协程的发展复兴与实现现状
  9. php xingnengfenxi_php代码性能分析方法
  10. SSH应用之BBS之路-2、Hibernate配置
  11. 10岁女程序员,婉拒谷歌Offer,研发全球首款AI桌游,现在是一名CEO
  12. window.load和$(document).ready()事件
  13. windows 删除网络驱动器
  14. 文件后缀名怎么修改?文件不显示后缀名怎么办
  15. php mql web开发,自己动手开发多线程异步 MQL5 WebRequest
  16. matlab仿真低通滤波,Matlab 低通Butterworth滤波仿真m文件
  17. python出现无法定位序数于动态链接库ssleay32.dll的问题
  18. 企业微信集成外部APP
  19. 资源管理器清楚WPS网盘、百度网盘方法
  20. 微信小程序的推广思路与方法,详细思路解析

热门文章

  1. winform textbox换行
  2. Android实用代码3-转自农民伯伯
  3. XMLHttpRequest请求
  4. 【窗体控件】:TextBox和RichTextBox控件
  5. Question2Answer(Q2A)如何修改帖子的最大字数限制8000个字符?
  6. 同步/异步 阻塞/非阻塞区别
  7. STM32CubeMX HAL库和串口屏通信卡死问题解决
  8. java structs spring_采用spring+structs+hibanate框架开发javaWeb项目
  9. springmvc整合shiro做登陆权限控制,使用mongodb存储session
  10. vsftpd环境搭建