[2021.11.9]lighteffect架构优化详细设计文档

news/2024/11/24 4:10:25/

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


http://www.ppmy.cn/news/53748.html

相关文章

Vue-全局过滤器以及进阶操作

前言 上篇文件讲述了&#xff0c;Vue全局过滤器的基本使用&#xff1a;Vue过滤器的基本使用 本篇将延续上文&#xff0c;讲述vue中过滤器的进阶操作 过滤器传参 如果有一天&#xff0c;多个地方使用过滤器&#xff0c;而且需要传递参数&#xff0c;那么可以这么写 多个过滤…

黑客利用WordPress 插件暗中建立后门网站

东方联盟网络安全组织在上周发布的一份报告中透露&#xff0c;有人观察到威胁行为者利用一个合法但过时的 WordPress 插件暗中建立后门网站&#xff0c;作为正在进行的活动的一部分。 有问题的插件是 Eval PHP&#xff0c;由名为 flashpixx 的开发人员发布。它允许用户插入 PH…

在阿里做测试开发的这5年,收获与感悟...

正好在离职交接空档期&#xff0c;就抽空简单分享自己的一些个人经历给大家&#xff0c;希望对刚毕业不久或者工作三五年的同学能有一些帮助。 测试新人 我的职业生涯开始和大多数测试人一样&#xff0c;开始接触都是纯功能界面测试。那时候在一家电商公司做测试&#xff0c;做…

怎么把png图片压缩到100k以内,3个工具高效处理

怎么把png图片压缩到100k以内&#xff1f;为什么要压缩图片呢&#xff1f;当我们在提交资料的时候&#xff0c;而系统却提示图片过大无法上传的情况&#xff0c;大多都限制100K以内&#xff0c;这个时候我们就需要压缩图片。当我们网站打开的速度很慢的时候&#xff0c;这个时候…

华为面试题:1+4=5,2+5=12,3+6=21,问8+11=?网友:幼儿园级别

面试&#xff0c;一直都是职场人士绕不过去的坎&#xff0c;对于有的人来说&#xff0c;或许更擅长日常的工作&#xff0c;在面试环节可谓是自己的薄弱环节&#xff0c;但对于有的人来说&#xff0c;相比于工作&#xff0c;更擅长应付面试&#xff01; 最近&#xff0c;有一位…

MiniGPT-4开源了:看图聊天、教学、创作、搭网站

深度学习系列文章 文章目录 深度学习系列文章前言MiniGPT4效果展示 前言 一个月前&#xff0c;OpenAI 总裁 Greg Brockman 向世人展示了 GPT-4 令人惊讶的多模态能力&#xff0c;如从手写文本直接生成网站和识别图像中的幽默元素等。 尽管目前 OpenAI 暂未对 GPT-4 用户开放这…

实景区剧本杀系统开发

实景区剧本杀系统开发需要考虑以下几个方面&#xff1a; 场地选取&#xff1a;选择合适的场地&#xff0c;足够容纳游戏人数和游戏内容&#xff0c;同时需要考虑安全性和便利性。 剧情设定&#xff1a;根据场地和游戏类型设计剧情&#xff0c;包括人物角色、任务目标、…

C. Trailing Loves (or L‘oeufs?)(求某个质因子在n的阶乘中的个数 + 思维)

Problem - C - Codeforces Aki喜欢数字&#xff0c;尤其是那些带有尾随零的数字。例如&#xff0c;数字9200有两个尾随零。Aki认为数字拥有的尾随零越多&#xff0c;它就越漂亮。 然而&#xff0c;Aki认为&#xff0c;一个数字拥有的尾随零的数量并不是固定的&#xff0c;而是…