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层的背光管理。

更多相关文章

  1. android WebView载入本地html及css文件
  2. Android 将文件保存到SD卡中
  3. 编译NotificationManagerService.java文件的方法
  4. Android studio gradle 无法获取 pom文件
  5. Android FTP客户端使用,快速上传文件
  6. Android N共享文件报错:android.os.FileUriExposedException
  7. build.gradle文件介绍,gradle版本对应
  8. android selector 的不能是空节点
  9. qt部署到android设备,很久没响应解决办法

随机推荐

  1. SMS短信发送
  2. android x86 Download、 Buildnig and Ru
  3. Android中给图片加边框
  4. android之蓝牙开发
  5. java.lang.OutOfMemoryError:Java heap s
  6. Android 使用git下载源码报错解决方法
  7. Android(安卓)View绘制过程
  8. 基于android的人脸识别
  9. Android 之文件夹排序(基于名称、最近修改
  10. android Timer使用方法