源码:

  base\services\core\java\com\android\server\display\DisplayPowerState.java

功能:

  对LightsService封装了一层

  对上:提供mProperty.setValue方法

  对下:调用LightsService.setBrightness方法,设置brightness

源码分析:

  构建了mProperty.setValue这个方法供调用,传入brightness值

public static final IntProperty<DisplayPowerState> SCREEN_BRIGHTNESS =new IntProperty<DisplayPowerState>("screenBrightness") {public void setValue(DisplayPowerState object, int value)object.setScreenBrightness(value);    // DisplayPowerState.setScreenBrightnessmScreenBrightness = brightness;scheduleScreenUpdate();postScreenUpdateThreadSafe();mHandler.post(mScreenUpdateRunnable);    // 执行mScreenUpdateRunnable.run()brightness = mScreenBrightness;mPhotonicModulator.setState(mScreenState, brightness);mPendingBacklight = backlight;    // brightness最终保存在PhotonicModulator.mPendingBacklightmLock.notifyAll();    // 唤醒PhotonicModulator线程

notifyAll将唤醒PhotonicModulator线程,最终调用LightsService.setBrightness,请查看LightsService篇

public void run() {for (;;) {backlight = mPendingBacklight;backlightChanged = (backlight != mActualBacklight);if (!stateChanged && !backlightChanged) {mLock.wait();    // 等待continue;}mActualBacklight = backlight;    // 更新数据if (backlightChanged)setBrightness(backlight);mBacklight.setBrightness(backlight);    // mLights[LIGHT_ID_BACKLIGHT].setBrightness(backlight)
    }
}

转载于:https://www.cnblogs.com/zzss-feature/p/8302629.html

DisplayPowerState相关推荐

  1. android5.1 PowerManagerService和DisplayPowerControler、DisplayPowerState关系

    android5.1 PowerManagerService和DisplayPowerControler.DisplayPowerState关系 转自:http://blog.csdn.net/kc5 ...

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

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

  3. Android7.0 PowerManagerService亮灭屏分析(二)

    在PowerManagerService中对各种状态进行判断后,将其数值封装进DisplayPowerRequest中传入DisplayPowerController中进一步处理.在亮屏过程中Disp ...

  4. Android7.0 PowerManagerService亮灭屏分析(一)

    绪论 可以导致手机亮灭屏的因素有多种,而在本文中主要讲解按power键亮灭屏过程以及来电亮屏.在亮灭屏过程power中主要的实现类与功能如下所述: PowerManagerService.java:以 ...

  5. (原创)Android6.0亮屏流程分析

    1.概述 Android的亮屏流程从android系统结构层次来分可以分为三个流程,App应用唤醒源:Framework层Power结合Display,Light服务做亮屏绘制准备工作:底层驱动点亮背 ...

  6. android 7.0 解锁亮屏,Android7.0亮屏流程分析

    亮屏的本质是改变屏幕的电源状态,经过一系列的调用会来到PowerManagerService中的updatePowerStateLocked() 1.PowerManagerService到Displ ...

  7. Android 系统(211)---Power键不亮屏分析方法

    Power键不亮屏分析方法 亮屏流程 (1)  以下是列出的整个按键唤醒的log关键点,每条都有粗体字说明其含义以及该注意的关键字: (2)  一条一条依次检查,直到如果发现某条log找不到,那问题就 ...

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

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

  9. Android 系统(41)---Android7.0 PowerManagerService亮灭屏分析(二)

    Android7.0 PowerManagerService亮灭屏分析(二) 3029 在PowerManagerService中对各种状态进行判断后,将其数值封装进DisplayPowerReque ...

最新文章

  1. 零基础Java学习之接口
  2. Windows版 mysql 5.7.16安装
  3. CentOS/用FTP客户端软件连接到服务器
  4. Python中字符串操作函数string.split('str1')和string.join(ls)
  5. 数据库---T-SQL语句(一)
  6. @excel 注解_Java中注解学习系列教程-3
  7. python怎么输入下一行_python在指定行前插入一行
  8. java小软件_JAVA小应用程序 。。。。。。。。。。。
  9. 计算机网络课程设计实验报告
  10. M2Det 网络解读
  11. 408计算机考研交流群,考研初试复习经验分享(计算机408)
  12. java 音频 网络传输_如何流式传输音频?
  13. 怎么看xp计算机mac地址,查找MAC地址的两种方法
  14. chm文件无法打开,chm电子书显示“此程序无法显示网页”的解决办法
  15. hazelcast java_Spring Boot和Hazelcast使用详解
  16. 有趣的23000----整理(05)E、F词根
  17. synchronized的偏斜锁,轻量级锁,重量级锁
  18. 用systemtap研究内核
  19. 【玩转python】python实现代替QQ邮箱发出邮件(附源码,新手也能用!)
  20. oracle账户登录中用户名是啥,Oracle用户名详解

热门文章

  1. 深度剖析 | 阿里热修复如何精简优化补丁资源?
  2. token 过期刷新令牌_OkHttp实现全局过期token自动刷新
  3. 如何打开设计思路,避免不断改稿?只需提前做好这一步
  4. 2021年薪资水平报告
  5. SQL基础【九、Update】
  6. Java微服务(一)【idea安装2020版本】
  7. 零基础学Python(第十四章 字典)
  8. 实例讲解如何通过Oracle成功发送邮件-入门基础
  9. linux系统中查看gcc内置宏定义的命令方法
  10. Docker,Docker-Compose,Docker Swarm,Kubernetes之间的区别