android 自动背光闪烁,Android 背光流程小结

android背光控制小结,从上到下:

----android----

DisplayPowerController.java-->

DisplayPowerState.java:SCREEN_BRIGHTNESS-->setScreenBrightness-->scheduleScreenUpdate-->postScreenUpdateThreadSafe-->mScreenUpdateRunnable-->mTask-->

LightsService.java: -->setLightLocked-->setLight_native-->

----native----

com_android_server_LightsService.cpp:-->setLight_native-->hw_get_module-->get_device(module, LIGHT_ID_BACKLIGHT)-->

alsps/mediatek/hardware/liblight/lights.c

lights.c:-->HAL_MODULE_INFO_SYM-->lights_module_methods-->set_light_backlight-->write_int(LCD_FILE, brightness)-->

----kernel----

led-class.c:-->led_class_attrs-->led_brightness_store-->led_set_brightness-->brightness_set-->

leds.c:-->g_leds_data[i]->cdev.brightness_set = mt65xx_led_set-->

cust_leds.c:-->{"lcd-backlight",     MT65XX_LED_MODE_CUST_BLS_PWM, (int)Cust_SetLcdBacklight,{0}}-->

----hardware----

ddp_bls.c:-->disp_bls_set_backlight-->DISP_REG_SET(DISP_REG_BLS_PWM_DUTY, mapped_level)-->...

一些注意的细节:

1、mTask线程负责定时管理背光,setScreenBrightness主动设置背光。

2、setLight_native调用jni本地方法。

3、通过hw_get_module匹配hw_module_t,native通过write_int操作背光文件,在这里跟kernel挂钩。

4、kernel里通过device_create建立背光设备,class_create建立背光文件节点,文件节点跟LCD_FILE一致。

5、leds_list加入各种背光设备,led_class_attrs的__ATTR是设备文件的属性(brightness文件,属性,_show(读),_store(写))。native写文件,最终调用的是_store写方法。

6、adb的echo操作文件修改背光,只是kernel层的,不影响android层的背光管理。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值