Change system screen brightness, using android.provider.Settings.System.SCREEN_BRIGHTNESS
android-er.blogspot.com/2011/02/change-system-screen-brightness-using.html
Android 系统设置中显示设置之亮度调节篇 - 尹君子 - 博客园.htm
http://www.cnblogs.com/yinhaojun/p/3876132.html
Android中内容观察者的使用---- ContentObserver类详解 (转)
http://www.cnblogs.com/slider/archive/2012/02/14/2351702.html
【Android开发经验】与屏幕亮度调节相关的各种方法整理 - 赵凯强 - 博客频道 - CSDN.NET.htm
http://blog.csdn.net/zhaokaiqiang1992/article/details/35814785
怎么控制背光灯?
App:通过android.provide.Setting.System.putint()把亮度值写入数据库就可以了
肯定有App在监测数据库,这种机制称为”内容观察者”,代码里面叫ContentObserver
背光灯的控制服务代码在:DisplayPowerController.java中,背光是属于电源管理的一小部分
在DisplayPowerState.java中执行唤醒和休眠相关操作
PhotonicModulator.run()创建一个线程运行,其在没事时休眠mLock.wait(),被唤醒后调用setBrightness函数,其调用mBackLight.setBrightness(),就是调用JNI接口来设置
在ScreenState/ScreenBrightness/ColorFade三个函数中会调用scheduleScreenUpdate会发信息来执行run函数,mScreenUpdateRunnable.run()创建一个线程运行,其执行setState函数,在其中调用mlock.notifyAll来唤醒
过程分析:
SystemServer:
(1)注册lightsService
Setting -> Dispaly -> Brightness level : BrightnessDialog.java(系统只带设置背光的APP)