Android Lights
1、lights類型
在Android中目前定義的lights有以下的幾種。
2、lights應用
每一種邏輯的燈的類型都有多種的物理硬件類型,如下所示:
---------------------------------------------------------------------------------
| Logical Light Type | Physical HardWare |
---------------------------------------------------------------------------------
| Backlight | Backlight LED, Trackball LED |
---------------------------------------------------------------------------------
| Keyboard | Keyboard LED |
---------------------------------------------------------------------------------
| Buttons | Button LED |
---------------------------------------------------------------------------------
| Battery | 3-color LED |
---------------------------------------------------------------------------------
| Notifications | 3-color LED,Trackball LED |
---------------------------------------------------------------------------------
| Attention | Trackball LED |
---------------------------------------------------------------------------------
backlight支持256等級亮度,0爲關閉,255爲最亮。但是這個也要根據實際的物理硬件來做不同的判斷。
Attention通常是未接電話,這裏也就是我們手機上的未接電話的設置;
Notifications通常有些應用會使用,比如短信,twitter等;
Battery燈通常是指示電池狀態,是否低電,是否滿電等;
3、代碼分佈
適配層代碼路徑在
hardware/$(PROJECT)/liblights/lights.c
hardware/libhardware/include/hardware/lights.h
其中HAL層將所有的lights均作了處理。
4、硬件實現
lights在硬件上的實現方式有PMIC,PWM,GPIO,3-color led.
5、舉例
拿背光調節做例子。
背光亮度的調節主要分爲幾塊:
boot,kernel,Start Sys, Suspend
在boot中的作用主要是體現在這些方面:關機充電時刷充電圖片,刷boot時的圖片;
kernel:刷開機圖片;
------ HAL ---------
start sys: 系統開機動畫等等是在這裏實現;
suspend:休眠關閉背光,喚醒則重置爲設置的背光亮度,這裏可以看看powermanager service;
所以我們從開機到系統休眠看到的背光亮度依次爲boot_set--->kernel_set---->Sys_set---->backlight_off_by_powermanager_service
Have Fun!