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

news/2024/9/12 18:14:24/

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;而是…

【网络安全】CVE 漏洞分析以及复现

漏洞详情 Shiro 在路径控制的时候&#xff0c;未能对传入的 url 编码进行 decode 解码&#xff0c;导致攻击者可以绕过过滤器&#xff0c;访问被过滤的路径。 漏洞影响版本 Shiro 1.0.0-incubating 对应 Maven Repo 里面也有 环境搭建 这个比 Shiro550、Shiro721 要增加一些…

解决在vue中使用elementUI自定义校验及点击提交不生效问题

前言&#xff1a; 本章讲述的主要是对身份证号码的校验 及 为何校验了但提交不生效问题。 拓展小知识&#xff1a; &#x1f340; 1、身份证号码&#xff08;二代18位身份证&#xff09;的含义&#xff1a; 1️⃣ 1-2位&#xff1a;代表所属省级政府的代码&#xff1b; 2️⃣ 3…

移动端click事件300ms延迟

文章目录 移动端click事件300ms延迟问题原因解决将click事件放在touchstart或touchend中处理禁止双击缩放 移动端click事件300ms延迟 问题 在移动端中&#xff0c;点击屏幕的按钮会产生200~300ms的延迟响应&#xff0c;会导致用户认为页面卡顿问题。 如下&#xff1a; <…

【处理网络难题,还得靠这份网工经验合集】

网络维护&#xff0c;是很多初阶网工必须要做的工作。但说起来容易&#xff0c;做起来难&#xff0c;想要做好这个工作&#xff0c;需要的不仅仅是技术的加持&#xff0c;更多的是经验的积累。 今天&#xff0c;和你分享一份关于一些网络维护过程中一些典型、经典问题的解决方…

搭建微型服务器(node express框架)

目录 一&#xff1a;打包&#xff08;npm run build&#xff09; 二&#xff1a;变成合法的包&#xff08;新建server文件夹&#xff09; 三&#xff1a;一路回车 四&#xff1a;新建服务器主文件 五&#xff1a;编辑server.js 六&#xff1a;node server启动服务器 七&a…

【电商必学】 WhatsApp 全新攻略:什么是交互式消息模板

网购与WhatsApp等社交通讯平台有着密不可分的关系&#xff0c;为什么这么说呢&#xff1f;因为基本上所有的网购的平台都会提供查询、下单方式给客户&#xff0c;而WhatsApp是全世界使用率最高的通讯平台&#xff0c;所以大部分电子商户都会选择WhatsApp Business与电子商务连接…

面了20家大厂,发现这样介绍项目经验,显得项目很牛...

我在刚刚开始面试的时候&#xff0c;也遇到了这个问题&#xff0c;也是我第一个思考的问题&#xff0c;如何介绍自己的项目&#xff0c;既可以比较全面的让面试官了解这个项目&#xff0c;同时&#xff0c;也不会让面试官觉得废话太多。经过这么多的面试&#xff0c;我发现&…

DASFAA 2023|创邻周研博士分享前沿图数据库观点

4月17-20日&#xff0c;2023年第28届高级应用数据库系统国际会议&#xff08;DASFAA2023&#xff09;在天津成功举行。创邻科技CTO周研博士受邀参会&#xff0c;围绕Galaxybase国产高性能图数据库进行精彩分享。 DASFAA 2023由DASFAA指导委员会&#xff08;DASFAA Steering Co…

git暂存命令-提交部分代码

git stsh 用于暂存修改的代码,代码文件分两种类型: 修改与新增的文件.使用git stash 命令默认只会暂存修改的代码文件. git add git add 命令可将该文件添加到暂存区。添加一个或多个文件到暂存区&#xff1a; git add [file1] [file2] ... 1 暂存未add 的文件 git stash sav…

详解八大排序算法-附动图和源码(插入,希尔,选择,堆排序,冒泡,快速,归并,计数)

目录 &#x1f34f;一.排序的概念及应用&#x1f34f; 1.排序的概念 2.排序的应用 3.常用的排序算法 &#x1f34e;二.排序算法的实现&#x1f34e; 1.插入排序 1.1直接插入排序 1.2希尔排序&#xff08;缩小增量排序&#xff09; 2.选择排序 2.1直接选择排序 2.2堆排序…

SpringBoot使用ElasticSearch

ES官网&#xff1a;https://www.elastic.co/cn/downloads/elasticsearch ES下载地址&#xff1a;https://www.elastic.co/cn/downloads/past-releases#elasticsearch kibana官网&#xff1a;https://www.elastic.co/cn/downloads/kibana kibana下载地址&#xff1a;https://…

态路小课堂丨浅谈IDC数据中心综合布线互联

在数据中心发展过程中&#xff0c;服务器、光模块等设备更新周期短&#xff0c;迭代快。但是&#xff0c;对于IDC数据中心综合布线系统来说&#xff0c;其使用周期一般都比较长。因此&#xff0c;为了能够匹配IDC数据中心的发展&#xff0c;关于综合布线的设计尤为重要。 目前&…