1.概述
android自带lights模块,通常用于Android设备的相关灯的控制。
Android系统之中,一共定义了8个逻辑灯,包含:背光,键盘灯,按键灯,充电指示灯,通知提示等。
enum {
LIGHT_INDEX_BACKLIGHT = 0,
LIGHT_INDEX_KEYBOARD = 1,
LIGHT_INDEX_BUTTONS = 2,
LIGHT_INDEX_BATTERY = 3,
LIGHT_INDEX_NOTIFICATIONS = 4,
LIGHT_INDEX_ATTENTION = 5,
LIGHT_INDEX_BLUETOOTH = 6,
LIGHT_INDEX_WIFI = 7,
LIGHT_COUNT
};
这里列举下本文设计到的目录结构。
frameworks/base/services/core/java/com/android/server/lights/*
frameworks/base/services/core/jni/com_android_server_lights_LightsService.cpp
hardware/libhardware/include/hardware/lights.h
hardware/qcom/display/liblight/*
2.分析
这里的分析只针对lights模块的实现,并不包含Android内部jni如何注册,服务如何加载等相关内容。
Android源码lights模块的实现应该相对比较简单容易理解的,根据上面提供的相关文件,这里做下简要的分析,要知道事情的来龙去脉,那就从事情的源头说