深圳坑梓网站建设,怎么 网站 wordpress,wordpress 匹配,wordpress添加新的模板1 lighteffect系统架构图 图1-1 整改前lighteffect系统架构图
上图为整改前lighteffect系统架构图#xff0c;存在的问题如下#xff1a;
(1)代码bug
原因#xff1a;由于系统中兼容了lighteffect和lighteffect2#xff0c;写代码时只记了一个#xff0c;出现代码bug。…1 lighteffect系统架构图 图1-1 整改前lighteffect系统架构图
上图为整改前lighteffect系统架构图存在的问题如下
(1)代码bug
原因由于系统中兼容了lighteffect和lighteffect2写代码时只记了一个出现代码bug。如 图1-3 代码bug举例
强制关闭LED时由于疏忽只杀了lighteffect进程忘记杀lighteffect2进程。
(2)系统架构问题
从图1-1我们可以看出整个系统对于LED的控制比较混乱很容易出现灯效控制混乱的结果。
首先Hal层存在两个版本的lighteffect。
其次Framework层存在两个LedManager类来控制灯效。
最后Apk可直接跨过Framework层调用Hal层的lighteffect控制灯效。
基于以上问题整改思路有如下几点
[1]Hal层只使用一个版本lighteffect2
因为lighteffect已经不再维护且lighteffect2灯效能覆盖lighteffect。
[2]将framework和vendor目录下的LedManager类统一通过aidl增加接口供apk和系统调用
具体参考android系统通过aidl增加接口供apk调用
整改后的lighteffect系统架构图如下 图1-4 整改后lighteffect系统架构图
整改后的逻辑是所有处理灯效的请求通过LedManager以进程间通信地方式发送给服务端LedManagerService统一处理。 2 UML类图
(1)aidl定义接口
LedManager.aidl目前开放如下4个接口
// apk使用
public void setLedStatus(String value)
// 系统使用
public void setNoSuspend()
public void turnOffLed()
public void setLedEnabled(boolean value)
(2)客户端
LedManager 图2-1 LedManager类图
(3)服务端
LedManagerService 图2-2 LedManagerService类图 3 lighteffect2指令功能汇总 指令 灯效 1 lighteffect2 1 1 开机⽩⾊呼吸灯效 2 lighteffect2 2 1 关机红⾊呼吸灯效 3 lighteffect2 3 1 视频通话绿⾊⻓亮灯效 4 lighteffect2 4 1 语⾳输⼊蓝⾊伸缩灯效 5 lighteffect2 5 1 语⾳输⼊蓝⾊流⽔灯效 6 lighteffect2 6 1 智能⾳箱蓝⾊⻓亮灯效 7 lighteffect2 7 1 智能⾳箱蓝⾊呼吸灯效 8 lighteffect2 8 1 待机状态⽩⾊呼吸灯效 9 lighteffect2 9 1 开机状态⽩⾊⻓亮灯效 10 lighteffect2 10 1 错误状态橙⾊⻓亮灯效 11 lighteffect2 11 1 错误状态橙⾊呼吸灯效 12 lighteffect2 12 1 红⾊模式灯效 13 lighteffect2 13 1 ⽩⾊模式灯效 14 lighteffect2 14 1 关闭灯效 4 功能测试 操作 期望 测试结果 1 打开指示灯效 -白灯 ok 2 关闭指示灯效 -灯灭 ok 3 打开指示灯效test-开启远场语音 -白流水蓝白 ok 4 关闭指示灯效test-开启远场语音 -灭流水蓝灭 ok 5 待机 -红 ok 6 待机后开机 -红白 ok 7 关机 -灭 ok 8 关机后开机 -灭白 概率关机后开机白灯过很久才亮 9 打开指示灯效重启test-开启远场语音 -白流水蓝白 ok 10 关闭指示灯效重启test-开启远场语音 -灭流水蓝灭 ok 5 UML顺序图
以4(8)关机后开机为例画UML顺序图其余操作类似 图5-1 关机后开机UML顺序图