背光调节通信图,如下

如论上层哪里控制背光,上图部分是共用的流程,每次设置一个新的背光值,都会从上一个背光值开始,在RampAnimator.java以计算出的步长调整背光到目标背光值,因此是一个渐变的过程。

所有调节背光都是PowerManagerService.java调用DisplayManagerService.java的requestPowerState函数。

Android7.1 背光初始化

总结


  1. android背光控制,没有背光曲线;
  2. 背光频率根据硬件电路设计确认,硬件提供;
  3. 调节背光值得最大值和最小值,确保当在最大值或最小值时,满足屏背光电压电流要求
  4. 开机动画阶段背光值不是存在于数据库中,因此开机动画阶段背光值不是launcher起来后的背光值,背光值分为三个阶段的值:
    a、boot阶段的背光值
    b、system_server初始化时的默认值,配置在frameworks\base\packages\SettingsProvider\res\values\defaults.xml中
    c、launcher起来应用设置的背光值,从数据库中取值,若新升级的系统,也是从frameworks\base\packages\SettingsProvider\res\values\defaults.xml获取初值。
    d、若三个阶段的默认值不同,开机过程会出现背光变化或黑屏。
  5. 在背光范围未调好时,初值配置不合理,开机过程会出现黑屏(实际未黑屏,只是亮度太低)
  6. 根据硬件测量屏背光的电流电压值,调整背光的最大值、最小值,配置在android\frameworks\base\core\res\res\values\config.xml中,分别为:config_screenBrightnessSettingMinimum、config_screenBrightnessSettingMaximum

全志a40i背光调试


1、设置默认值、最小值、最大值
代码位置:android\frameworks\base\core\java\android\os\PowerManager.java

public int getMinimumScreenBrightnessSetting() {
//return mContext.getResources().getInteger(
// com.android.internal.R.integer.config_screenBrightnessSettingMinimum);
//=====keven modify 2014-04-15=
int sysmin = mContext.getResources().getInteger(
com.android.internal.R.integer.config_screenBrightnessSettingMinimum);
int limitmin = SystemProperties.getInt(“ro.yj.minbrightness”,0); //modify by momkey for ro.yj.minbrightness
return limitmin == 0 ? sysmin : limitmin;
//=====keven modify 2014-04-15=
}

/**

  • Gets the maximum supported screen brightness setting.
  • The screen may be allowed to become dimmer than this value but
  • this is the maximum value that can be set by the user.
  • @hide
    */
    public int getMaximumScreenBrightnessSetting() {
    //return mContext.getResources().getInteger(
    // com.android.internal.R.integer.config_screenBrightnessSettingMaximum);
    //=====keven modify 2014-04-15=
    int sysmax = mContext.getResources().getInteger(
    com.android.internal.R.integer.config_screenBrightnessSettingMaximum);
    //int limitmax = SystemProperties.getInt(“ro.bright.limitmax”,0);
    int limitmax = SystemProperties.getInt(“ro.yj.maxbrightness”,0);//modify by momkey for ro.yj.maxbrightness
    return limitmax == 0 ? sysmax : limitmax;
    //=====keven modify 2014-04-15=
    }

/**

  • Gets the default screen brightness setting.
  • @hide
    */
    public int getDefaultScreenBrightnessSetting() {
    modify by momkey start for ro.yj.defaultbrightness///
    int YJint = 0;
    YJint = SystemProperties.getInt(“ro.yj.defaultbrightness”, 0);
    if(YJint > 0) {
    System.out.printf(“ro.yj.defaultbrightness is %d\n”, YJint);
    return YJint;
    }
    modify by momkey end for ro.yj.defaultbrightness
    return mContext.getResources().getInteger(
    com.android.internal.R.integer.config_screenBrightnessSettingDefault);
    }
    最小值最大值控制最小最大占空比,使不超过屏支持范围

默认值需要修改属性配置和config.xml,否则开机是开机动画阶段亮度和正常启动后亮度不同

2、sys_config.fex配置
lcd_pwm_used = 1
lcd_pwm_ch = 0
lcd_pwm_freq = 20
lcd_pwm_pol = 1
lcd_pwm_max_limit = 250

重点:lcd_pwm_freq
该值并不是实际的背光芯片频率,该值和硬件设计的电路有关,根据硬件设计实际测量设定

Android7.1 控制背光流程相关推荐

  1. Android原生调节屏幕背光流程

    Android 5.1调节背光流程 版权声明:本文为博主原创文章,遵循 CC 4.0 by-sa 版权协议,转载请附上原文出处链接和本声明. https://mp.csdn.net/mdeditor/ ...

  2. android7.1默认背光亮度及编译调试

    android7.1默认背光亮度及编译调试 始修改\frameworks\base\packages\SettingsProvider\res\values\defaults.xml <inte ...

  3. java 判断对象为控制_Java流程控制

    Java流程控制 1.Scanner对象 ①java.util.Scanner是Java5的新特性,可以通过Scanner类来获取用户的输入. ②基本语法: 1 Scanner s=new Scann ...

  4. 10.sprd背光流程

    Android 背光流程小结 现在使用aidl方式: /hardware/interfaces/light/aidl/android/hardware/light/ILights.aidl 1 2 3 ...

  5. 高通平台GPIO模拟PWM控制背光

    很多时候由于节省硬件资源,降低成本,会把PWM控制芯片去掉或者是改做它用,导致当我们想用PWM方式控制背光时只能使用带有clk功能的GPIO口.本篇文档就来讲解下如何使用GPIO模拟PWM功能进行背光 ...

  6. 策略与计费控制(PCC)流程与信令流程

    该文为3GPP TS23.203-be0 条款6-7译文 策略与计费控制(PCC)流程[^4] IP-CAN 会话有三种显著的场景: 无网关控制会话需求,不会出现网关控制建立 需要网关控制会话支持:B ...

  7. 5、【易混淆概念集】-第四章 1 项目启动会 VS 项目开工会 变更控制的流程

    本讲主要介绍PMBOK第四章中的重要知识点,帮助你进一步理解. 本节目录 一.项目启动会 VS 项目开工会 二.变更控制的流程 一.项目启动会 VS 项目开工会 [出处]PMBOK P86,4.2.2 ...

  8. 智能电子中的自动化控制:流程优化、执行与决策

    作者:禅与计算机程序设计艺术 随着科技飞速发展,我们生活中的许多应用都开始被智能电子所代替.它们可以帮助我们完成重复性的工作任务,也可以实现精准而高效地完成复杂的工程建设.但是,实现自动化控制功能的同 ...

  9. Android7.0 Rild工作流程

    点击打开链接 一.基于Rild的通信架构 一般智能手机的硬件架构都是两个处理器:  一个处理器用来运行操作系统,上面运行应用程序,这个处理器称作Application Processor,简称AP:另 ...

最新文章

  1. css媒体查询标准,CSS 媒体查询 - 实例
  2. 链接和作用域2 - C++快速入门43
  3. boost::lexical_cast用法的测试程序
  4. [Debugging]分析博客园提交评论的校验规则
  5. 201521145048《Java程序设计》第11周学习总结
  6. python实验八分支语句_python语句(分支,循环)
  7. Openresty+Nginx+Lua+Nginx_http_upstream_check_module 搭建
  8. atitit.提升兼容性最佳实践 o9o
  9. 开源应用中心 | KodExplorer高效流畅云端存储协同办公新体验
  10. win7 升级到 win10 补丁
  11. 读取jpeg图像数据
  12. 一步教你超简单设置Android Studio背景图片
  13. linux cadaver 命令,备份Linux操作系统的数据到坚果云的方法
  14. Sketchfab下载器ArtStation资源下载操作说明中文网模型提取教程
  15. “%”取模/取余是不同的
  16. 跟庄买股票得新技巧(第三弹)集合竞价战法
  17. 中山纪念中学集训日志
  18. github+jekyll 搭建博客最全教程(一次性完成)
  19. 当前安全设置不允许下载文件
  20. 东北林业大学计算机考研英语几,东北林业大学(专业学位)计算机技术考研难吗...

热门文章

  1. 9款好用的bi数据可视化工具
  2. jstree刷新数据
  3. ApplicationAware
  4. java中String与int/float/double/byte/数组
  5. 初中语文古诗词作者生平归纳
  6. Linux--用history查看历史命令如何在history命令时,查看历史命令执行时间
  7. python简答题及答案查询公众号和软件_Python 抓取微信公众号账号信息的方法
  8. GPU硬件结构和编程模型(源于nvidia的CUDA文档)
  9. 激光测距仪工作模式及维保——TFN BKD系列双目激光测距仪
  10. Oracle索引和事务