回顾一下各子系统的共性
一、Android灯光系统的框架
如果想让APP程序使用自定义的Driver程序,那么就需要选择安卓系统自带的JNI文件。,下面先看一张现有通用安卓系统程序协调分工流程图。
下图为Android灯光系统的框架图
二、Android灯光系统各层的实现
各层实现的的框架图
2.1 APP层
提出需求,实现与用户的交互
2.2 JNI层
程序需要包含的部分:
1、获得一个hw_module_t
2、根据不同的name,调用不同的module->methods->open,返回不同的light_device_t结构体
其中name有许多种,如背光、电池灯、通知灯
2.3 HAL层
根据APP实现的功能进行编写,把硬件LED再次划分为不同的逻辑灯
1、电池灯:电量的多少,显示不同的颜色
2、消息通知灯:当收到消息时,灯光闪烁
3、背光灯:调节LCD亮度
程序需要包含的部分:
1、实现一个hw_module_t
2、实现open,当JNI文件传入name时,HAL会构造一个name相关的light_device_t结构体,该结构体包含了(hw_device_t结构体和set_light函数,其中对不同的灯,使用不同的set_light函数)
框图:
2.4 Driver层
根据选用得硬件设备进行编写
1、电池灯、消息通知灯:对于不同颜色的显示一般都是通过输入三点信号进行控制,通过RGB三种颜色进行控制灯的总颜色。
2、背光灯:调节LCD亮度,通过PWM进行控制
三、Android灯光系统各层的代码
这部分等开发板到了再补