在微控制器上开发可穿戴设备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

相关文章

Go语言开发实现查询IP信息的MCP服务器

《Go语言开发实现查询IP信息的MCP服务器》随着MCP的快速普及和广泛应用,MCP服务器也层出不穷,本文将详细介绍如何在Go语言中使用go-mcp库来开发一个查询IP信息的MCP... 目录前言mcp-ip-geo 服务器目录结构说明查询 IP 信息功能实现工具实现工具管理查询单个 IP 信息工具的实现服

Python ZIP文件操作技巧详解

《PythonZIP文件操作技巧详解》在数据处理和系统开发中,ZIP文件操作是开发者必须掌握的核心技能,Python标准库提供的zipfile模块以简洁的API和跨平台特性,成为处理ZIP文件的首选... 目录一、ZIP文件操作基础三板斧1.1 创建压缩包1.2 解压操作1.3 文件遍历与信息获取二、进阶技

Java字符串操作技巧之语法、示例与应用场景分析

《Java字符串操作技巧之语法、示例与应用场景分析》在Java算法题和日常开发中,字符串处理是必备的核心技能,本文全面梳理Java中字符串的常用操作语法,结合代码示例、应用场景和避坑指南,可快速掌握字... 目录引言1. 基础操作1.1 创建字符串1.2 获取长度1.3 访问字符2. 字符串处理2.1 子字

Java Optional的使用技巧与最佳实践

《JavaOptional的使用技巧与最佳实践》在Java中,Optional是用于优雅处理null的容器类,其核心目标是显式提醒开发者处理空值场景,避免NullPointerExce... 目录一、Optional 的核心用途二、使用技巧与最佳实践三、常见误区与反模式四、替代方案与扩展五、总结在 Java

使用Python开发一个带EPUB转换功能的Markdown编辑器

《使用Python开发一个带EPUB转换功能的Markdown编辑器》Markdown因其简单易用和强大的格式支持,成为了写作者、开发者及内容创作者的首选格式,本文将通过Python开发一个Markd... 目录应用概览代码结构与核心组件1. 初始化与布局 (__init__)2. 工具栏 (setup_t

Spring Shell 命令行实现交互式Shell应用开发

《SpringShell命令行实现交互式Shell应用开发》本文主要介绍了SpringShell命令行实现交互式Shell应用开发,能够帮助开发者快速构建功能丰富的命令行应用程序,具有一定的参考价... 目录引言一、Spring Shell概述二、创建命令类三、命令参数处理四、命令分组与帮助系统五、自定义S

Python通过模块化开发优化代码的技巧分享

《Python通过模块化开发优化代码的技巧分享》模块化开发就是把代码拆成一个个“零件”,该封装封装,该拆分拆分,下面小编就来和大家简单聊聊python如何用模块化开发进行代码优化吧... 目录什么是模块化开发如何拆分代码改进版:拆分成模块让模块更强大:使用 __init__.py你一定会遇到的问题模www.

Spring Security基于数据库的ABAC属性权限模型实战开发教程

《SpringSecurity基于数据库的ABAC属性权限模型实战开发教程》:本文主要介绍SpringSecurity基于数据库的ABAC属性权限模型实战开发教程,本文给大家介绍的非常详细,对大... 目录1. 前言2. 权限决策依据RBACABAC综合对比3. 数据库表结构说明4. 实战开始5. MyBA

使用Python开发一个简单的本地图片服务器

《使用Python开发一个简单的本地图片服务器》本文介绍了如何结合wxPython构建的图形用户界面GUI和Python内建的Web服务器功能,在本地网络中搭建一个私人的,即开即用的网页相册,文中的示... 目录项目目标核心技术栈代码深度解析完整代码工作流程主要功能与优势潜在改进与思考运行结果总结你是否曾经

Spring Boot + MyBatis Plus 高效开发实战从入门到进阶优化(推荐)

《SpringBoot+MyBatisPlus高效开发实战从入门到进阶优化(推荐)》本文将详细介绍SpringBoot+MyBatisPlus的完整开发流程,并深入剖析分页查询、批量操作、动... 目录Spring Boot + MyBATis Plus 高效开发实战:从入门到进阶优化1. MyBatis