Android Lights笔记

Android Lights

 

1、lights类型

在Android中目前定义的lights有以下的几种。

 

/* * These light IDs correspond to logical lights, not physical. * So for example, if your INDICATOR light is in line with your * BUTTONS, it might make sense to also light the INDICATOR * light to a reasonable color when the BUTTONS are lit. */ #define LIGHT_ID_BACKLIGHT "backlight" #define LIGHT_ID_KEYBOARD "keyboard" #define LIGHT_ID_BUTTONS "buttons" #define LIGHT_ID_BATTERY "battery" #define LIGHT_ID_NOTIFICATIONS "notifications" #define LIGHT_ID_ATTENTION "attention" 

 

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!

 

你可能感兴趣的:(android,twitter,button,keyboard,电话,notifications)