lighteffect架构优化详细设计文档

文章详细描述了lighteffect系统存在的代码bug和架构问题,提出了整改方案,包括在Hal层统一使用lighteffect2,通过AIDL统一LedManager接口,并展示了整改后的架构图。此外,还介绍了lighteffect2的指令功能和功能测试结果。
摘要由CSDN通过智能技术生成

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顺序图

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值