在微控制器上开发可穿戴设备GUI的重要技巧

2024-01-26 03:10

本文主要是介绍在微控制器上开发可穿戴设备GUI的重要技巧,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

通过了解内存、图形和电池续航对用户体验设计和软件开发决策的影响,在MCU设备上构建更好的可穿戴设备GUI。

可穿戴设备市场正在蓬勃发展,这得益于消费者希望获得一系列触手可及的服务,以及更经济、更节能的硬件进入了这一领域。可穿戴技术仍处于起步阶段,呈现出一个有待突破的不稳定市场,苹果、三星和 Zepp Health(华米科技)等供应商都在争夺市场的头号交椅,其开发团队也在不断采用新技术,以求兼顾用户体验(UX)和电池续航。

随着越来越多的可穿戴设备OEM意识到基于微控制器的设备的价值,在此情景下,我们想要分享如何利用这些低功耗、资源受限的平台,来提供能与苹果和安卓生态系统使用的高端硬件相竞争的用户体验。

基于我们数十年来在嵌入式图形用户界面(GUI)方面的经验,以及我们最近与Zepp Health等客户合作的项目,以下是我们对在微控制器(MCU)平台上开发可穿戴设备GUI的主要建议。

1. 减少和优化内存使用

可穿戴设备GUI开发的最大困难就是——将UX设计师的愿景压缩到硬件平台上,但却没有足够的空间容纳大型图像资源和复杂的过渡。内存同时为代码和数据所用,我们优化得越好,受到的限制也就越少。

简化应用程序内存使用的第一步是确定它需要多少空间。无论是在设计阶段还是在用户测试之前,都值得为内存预算和分配建立常规基线,以了解应该在哪里和何时进行调整。

例如,下面的图表(摘自我们的可穿戴设备GUI开发指南的第二部分)说明了如何计算帧缓冲区所需的内存。内存分配是显示器分辨率和色位深度的函数,总内存将占用应用程序所需的帧缓冲区的总数(3D应用程序通常使用额外的深度和模版缓冲)。

除了帧缓冲区之外,您还需要弄清楚应用程序的代码和数据占用。有了这些基线以后,您就可以使用测量和分析工具、应用程序日志和运行时观察来发现和隔离应用程序重大更改后的任何内存问题。

我们的智能手表客户案例研究提供了一个例子:

“使用Storyboard的应用程序内存占用预览,我们马上就知道了,在初始UX设计中的所有图层和字体占用都会超出我们已有的闪存。我们决定折叠屏幕图层并使用Storyboard的字形导出编辑器来去除未使用的字体字符,从而节省空间,同时又不影响设计师的意图。”

Storyboard的应用程序内存占用预览和字形导出编辑器(红框部分)

2. 将MCU的功耗降至最低

高分辨率显示器、位置传感器、心率监测器和蓝牙无线电是一些会消耗更多电池电量的消费者驱动功能。但可穿戴设备用户希望电池续航是以周为单位的,而不是以小时为单位。较新的健身手环甚至能满足充一次电续航长达一个月。

“可穿戴设备在医疗行业还没有得到广泛应用的主要原因之一是需要定期给电池充电。患者可能会忘记充电,或者需要护理人员来进行操作。”——医疗可穿戴设备的电源层面,Electronic Specifier电子报

通过更好的电池、处理器和显示技术,以及基于硬件或应用逻辑来智能应用电源管理方案,可以实现更长的续航。

在我们的可穿戴设备电子书中,我们推荐了两种节能技术:

1. 尽可能触发睡眠模式,仅在有用户事件(如点击或加速传感器输入)时唤醒GUI。

2. 在可穿戴设备中,显示屏是最大的耗电源,因此,当设备处于未唤醒状态或低光照条件时,应将背光调暗。这可以通过降低背光的照明水平或在GUI中使用调光层来实现。

3. 创建有效的可穿戴设备用户体验

要与可穿戴设备市场的顶级商家竞争,就需要了解他们使用了哪些技术和元素来提供消费者喜爱的用户体验。风格、个性和色调与图形性能和应用程序延迟同等重要。

在为可穿戴设备设计UX时,有四个关键因素:

1. 适用性

屏幕越小,在显示信息量和交互界面尺寸方面需要克服的挑战就越大。大型、高分辨率的图像和长文本字符串应该被淘汰,并以简短、简化、能够快速传达行动和信息的元素取而代之。

2. 复杂性

可穿戴设备不是手机或平板电脑,用户的期望通常是“扫一眼,快速点击”。因此不能使用太多的元素让屏幕变得混乱,也不能有太多的导航层,否则用户会感到迷茫和不悦。

3. 专注

可穿戴设备通常与手机、平板电脑或台式机配对,应该作为这些设备的补充,而不是替代品。仅将您的用户体验设计专注于基本和核心功能上,并考虑设备之间的操作。请确保您的用户体验设计能够有效地做到,在配对的智能手机或平板电脑上映射智能手表的操作(如取消通知)。

4. 差异化

复制流行供应商的用户体验设计和行为选择也许是一条“捷径”,但吸引新用户和保持品牌忠诚度的最好方法是拥有自己的与众不同之处。

4. 图像的运行时优化

与代码优化一样,图像表现受大小、执行和渲染时间的影响。特别是,用于微控制器的可穿戴设备GUI的空间和处理器资源有限,因此图像越复杂,运行起来就越困难。

图像优化有很多工作要做,未来,我们将分享更多有关图像、字体优化的案例和内容。

总结

可穿戴设备市场已有了蓬勃发展,要取得更多的市场份额,供应商就需要重点关注如何在节能硬件上构建丰富的功能。了解内存、图形和电池续航对用户体验设计和软件开发决策的影响,将有助于您确立在可穿戴设备市场上的领先地位。

这篇关于在微控制器上开发可穿戴设备GUI的重要技巧的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/645462

相关文章

PyQt5 GUI 开发的基础知识

《PyQt5GUI开发的基础知识》Qt是一个跨平台的C++图形用户界面开发框架,支持GUI和非GUI程序开发,本文介绍了使用PyQt5进行界面开发的基础知识,包括创建简单窗口、常用控件、窗口属性设... 目录简介第一个PyQt程序最常用的三个功能模块控件QPushButton(按钮)控件QLable(纯文本

游戏闪退弹窗提示找不到storm.dll文件怎么办? Stormdll文件损坏修复技巧

《游戏闪退弹窗提示找不到storm.dll文件怎么办?Stormdll文件损坏修复技巧》DLL文件丢失或损坏会导致软件无法正常运行,例如我们在电脑上运行软件或游戏时会得到以下提示:storm.dll... 很多玩家在打开游戏时,突然弹出“找不到storm.dll文件”的提示框,随后游戏直接闪退,这通常是由于

Linux之platform平台设备驱动详解

《Linux之platform平台设备驱动详解》Linux设备驱动模型中,Platform总线作为虚拟总线统一管理无物理总线依赖的嵌入式设备,通过platform_driver和platform_de... 目录platform驱动注册platform设备注册设备树Platform驱动和设备的关系总结在 l

Olingo分析和实践之ODataImpl详细分析(重要方法详解)

《Olingo分析和实践之ODataImpl详细分析(重要方法详解)》ODataImpl.java是ApacheOlingoOData框架的核心工厂类,负责创建序列化器、反序列化器和处理器等组件,... 目录概述主要职责类结构与继承关系核心功能分析1. 序列化器管理2. 反序列化器管理3. 处理器管理重要方

基于Python开发一个图像水印批量添加工具

《基于Python开发一个图像水印批量添加工具》在当今数字化内容爆炸式增长的时代,图像版权保护已成为创作者和企业的核心需求,本方案将详细介绍一个基于PythonPIL库的工业级图像水印解决方案,有需要... 目录一、系统架构设计1.1 整体处理流程1.2 类结构设计(扩展版本)二、核心算法深入解析2.1 自

MySQL 多列 IN 查询之语法、性能与实战技巧(最新整理)

《MySQL多列IN查询之语法、性能与实战技巧(最新整理)》本文详解MySQL多列IN查询,对比传统OR写法,强调其简洁高效,适合批量匹配复合键,通过联合索引、分批次优化提升性能,兼容多种数据库... 目录一、基础语法:多列 IN 的两种写法1. 直接值列表2. 子查询二、对比传统 OR 的写法三、性能分析

Python使用vllm处理多模态数据的预处理技巧

《Python使用vllm处理多模态数据的预处理技巧》本文深入探讨了在Python环境下使用vLLM处理多模态数据的预处理技巧,我们将从基础概念出发,详细讲解文本、图像、音频等多模态数据的预处理方法,... 目录1. 背景介绍1.1 目的和范围1.2 预期读者1.3 文档结构概述1.4 术语表1.4.1 核

Java中的雪花算法Snowflake解析与实践技巧

《Java中的雪花算法Snowflake解析与实践技巧》本文解析了雪花算法的原理、Java实现及生产实践,涵盖ID结构、位运算技巧、时钟回拨处理、WorkerId分配等关键点,并探讨了百度UidGen... 目录一、雪花算法核心原理1.1 算法起源1.2 ID结构详解1.3 核心特性二、Java实现解析2.

深度解析Python装饰器常见用法与进阶技巧

《深度解析Python装饰器常见用法与进阶技巧》Python装饰器(Decorator)是提升代码可读性与复用性的强大工具,本文将深入解析Python装饰器的原理,常见用法,进阶技巧与最佳实践,希望可... 目录装饰器的基本原理函数装饰器的常见用法带参数的装饰器类装饰器与方法装饰器装饰器的嵌套与组合进阶技巧

SpringBoot开发中十大常见陷阱深度解析与避坑指南

《SpringBoot开发中十大常见陷阱深度解析与避坑指南》在SpringBoot的开发过程中,即使是经验丰富的开发者也难免会遇到各种棘手的问题,本文将针对SpringBoot开发中十大常见的“坑... 目录引言一、配置总出错?是不是同时用了.properties和.yml?二、换个位置配置就失效?搞清楚加