本文揭示开发人员在开发跨平台UI时最常犯的6个与应用和解决方案架构有关的错误。

随着当今的设备及其各自的用户接口(UI)变得更加先进,创建和产生这些UI也变得更具挑战性,特别是为现代复杂设备建置UI通常更烧脑。无论如何,当你想要为特定的自定义嵌入式设备制作UI时,它可能是一项完全不同的挑战性任务。

我们经常看到开发人员受限于各式各样的问题,跌入常见的错误陷阱。本文将深入探讨这些问题,并揭示开发人员在开发跨平台UI时最常犯的6个与应用和解决方案架构有关的错误。

错误#1:误解内存消耗和内存利用

当开发人员将影像加载图像内存时,需要考虑的一些事项包括:需要快取的项目、加载元素的顺序,以及如何建构整体用户体验(UX)。性能问题(通常发生在较小的设备中)区分为实际和感知性能,例如,对于花费大量时间(实际性能)的操作,开发人员可以在屏幕上弹出预载的影像,让用户认为事情发生得更快(感知性能)。然而,解决这些问题需要到位的技术能力和工具。

以嵌入式Linux堆栈为例。现成可用的底层操作系统(OS)可能得花超过10秒的时间启动,而其上的普通Qt大约需要1秒钟(图1)。考虑到在这两者之上的应用本身,总启动时间总计约15秒。透过适当的技巧、工具和优化,启动应该只需要1~2秒钟。

20180913-UI-1.jpg

图1 启动序列的持续时间在未优化和优化的软件堆栈之间差异很大。

在优化时,开发人员必须减少性能迟滞,并了解真正的瓶颈和时间花费所在。这需要充份地理解内存的使用方式、顺序,以及如何优化并具备相应能力。如果方案需要花费大量启动时间,显示优化尚未到位,亦说明企业不重视绩效,但我猜最终会如愿以偿,因为客户毕竟花了钱,对吗?

错误#2:在部署到目标硬件之前于PC上进行开发

这是嵌入式开发最常见的原罪。设计师和工程团队光是在PC上就花费太长时间开发嵌入式方案,然后,他们在项目周期中又太晚部署到目标硬件上。由于目标硬件通常是新的,而且在项目的早期阶段团队也还用不到,因此该问题通常会进一步恶化。

在项目实施过程中,设计缺陷、性能瓶颈、错误或问题的发现时间越晚,其修复成本就越高。将PC与嵌入式设备进行比较发现,PC几乎可以不限量地「挥霍」资源、内存和功耗,以及其他基础要素。如果项目在PC上运作良好,可能无法实现添加提升性能的特性,这会导致重新进行架构设计和重新编写大量软件的主要问题。在PC桌面上完美运作的东西到了嵌入式设备上,并不一定就能正常运作或管理,忽略了这一点会影响产品上市时间、提高拥有成本,以及工程和维护成本。

那么有灵丹妙药吗?是的,从第一天开始就在目标设备上部署。投资在使这一切成为可能的工具,以确保整个团队(包括设计师)都可以存取目标硬件,如果没有可用的目标设备,请选择接近该设备的产品,并从第一天开始部署。当今,有很多的现成参考硬件选择,可让你足够接近目标设备,如果必须只在PC上进行开发,那就在PC上开发,但要做好重新编写和延迟的心理准备。

错误#3:将完全渲染的设计压缩到嵌入式设备中

为了在屏幕上显示酷炫的三维(3D)元素,需要来自设计师的3D设计。设计师经常会创造完全渲染的影像,相当于无数的多边形("嘿!它可是在设计师的PC上运作得很好呢!")。这必须要由开发人员试图将巨大的3D对象挤进小型设备中(图2),它要不是使一切都变得非常缓慢,不然就是要求开发人员付出额外时间,或者两弊兼具。

20180913-UI-2.jpg

图2 设计师提供完全渲染的影像,导致对于开发人员来说是过于复杂的元素。

此外,在2D UI上,开发人员和设计师有时会在UI上使用过于复杂的元素。挑战是如何优化不堪(down)、斑驳(shaving)和单调(slimming)的影像、元素和多边形以适应小屏幕,同时保持相同的用户体验。在此过程中,通常都以性能和/或上市时间为代价。

错误#4:使用一种编码语言,以一盖全

客户经常用HTML5、Javascript和/或QML编写过多的应用逻辑。上述都是声明性的脚本技术,它们将使用与原生(native)C++不同的CPU资源,这通常会导致性能和维护问题。

从一开始就设计软件架构十分重要。先放上UI层,然后加上C++和更低分层(二进制执行、原生二进制执行,在这些分层上可能使用的GPU和CPU功率)。在设计软件架构时,选择正确的组件非常重要。

性能良好的Qt应用有两个主要部份:应用逻辑和大量数据以C++编写;UI和使用者互动则使用更高级语言编写,如QML。

错误#5:将更新和安全性视为特性

假设你正在研发一项项目,而且完成了大约三分之二的工作量,然后,客户希望添加无线软件更新和安全特性,这要求是错误的。更新和安全性并不是特性,它们是设计思维模式(mindset)和整体软件架构的核心部份。

客户往往会将更新和安全性视为某段时间中已在其他特性实现的东西,但其实不然。开发人员必须提前计划和思考,有什么样的安全要求?软件的哪些部份需要定期更新?怎么实施这项方案?如何验证?它需要具有从第一天就开始的思维模式。例如,如果开发人员在对UI至关重要的韧体层上编写内容,则可能无法使用可用于更新应用层和UI的相同机制更新韧体。

错误#6:忽略优化操作系统中的“工作空间”

本文已在前面部分讨论过启动性能的优化(错误#1),但还有更多值得注意之处。

软件工程的参考影像通常支持许多工具和功能特性,它们专为开发人员设计,以便轻松开始实施项目。这些工具都同时运作,但可决定使用或不使用它们,且应着手剥离不需要的东西,以达优化。如果不这样做,系统会在嵌入式设备上使用其有限的资源,在后台执行无用的进程,千万不要受累于此。

许多嵌入式项目都使用Yocto配方创建的Yocto影像。可惜的是,由于档案层级各不相同,这些配方也很难用(图3)。目前在市场上有许多供货商,因此还需要密切地了解硬件驱动器、核心和系统其他部份的工作原理,这部份花在专业咨询服务上的投资通常会在上市时间和性能提升方面得到投资报酬。

20180913-UI-3.jpg

图3 许多嵌入式项目使用基于Yocto的影像,它们是由复杂的Yocto配方创建,但并不容易使用。

  本文授权编译自Embedded,版权所有,谢绝转载

qrcode_EETCwechat_120.jpg

关注最前沿的电子设计资讯,请关注“电子工程专辑微信公众号”

阅读全文,请先
您可能感兴趣
9月10日,苹果发布了一系列新品,包括iPhone 16系列手机、Apple Watch Series 10智能手表和AirPods 4耳机。发布会后网上响起了一片吐嘈声,带着这些吐槽,我们来看看这次苹果到底有没有新玩意……
对于股价波动的原因,寒武纪表示,除了公司经营层面的因素外,还可能受到其他因素的影响。寒武纪还提醒投资者,应甄别信息来源,具体情况以公司公告为准。
此次财报也从侧面反应了半导体行业在AI业务上的强劲增长势头,但同时也暴露出非AI业务增长乏力的困境。
尽管生成式AI令人感到惊喜,但很多创新还没有真正落实到每个用户或企业的AI应用上。为了开发出真正不可或缺的“AI杀手级应用”,必须加快创新步伐,激励更多开发者致力于AI领域的开发和创新活动。
有关“微信可能不支持iPhone16”的传言在网络上引起了广泛关注,有网友称:“说实话,微信和苹果相争的话,我觉得苹果赢不了一点。微信不可替代,苹果随便换。”
新成立的人工智能(AI)部门的软件工程师平均总薪酬高达377,611美元(年薪,下同),约合人民币269.3万元,这一数字至少比其他部门的平均水平高出12万美元。
• 得益于西欧、关键亚洲市场和拉丁美洲市场的增长,以及中国品牌的持续领先,全球折叠屏手机出货量在2024年第二季度同比增长了48%。 • 荣耀凭借其在西欧特别强劲的表现,成为最大的贡献者,成为该地区排名第一的品牌。 • 摩托罗拉的Razr 40系列在北美和拉丁美洲表现良好,为其手机厂商的出货量贡献了三位数的同比增长。 • 我们预计,头部中国手机品牌厂商的不断增加将至少在短期内抑制三星Z6系列在第三季度的发布。
AI技术的发展极大地推动了对先进封装技术的需求,在高密度,高速度,高带宽这“三高”方面提出了严苛的要求。
奕斯伟计算2024首届开发者伙伴大会以“绿色、开放、融合”为主题,从技术创新、产品应用、生态建设等方面,向开发者、行业伙伴等相关方发出开放合作倡议,加速RISC-V在各行各业的深度融合和应用落地,共同推动RISC-V新一代数字基础设施生态创新和产业发展。
2024年 Canalys 中国云计算渠道领导力矩阵冠军厂商分别是:阿里云、华为云和亚马逊云科技(AWS)
在全球智能手机竞争日益激烈的情况下,谁能在高端市场站稳脚跟,谁就占据了主动权。一直以来全球智能手机市场格局都是,苹果专吃高端,其他各大厂商分食全球中低端市场。但现在市场正在其变化。根据Canalys最
在当今人工智能飞速发展的时代,AI Agent正以其独特的方式重塑着企业的生产运营方式。澜码科技作为AI Agent领域的先行者,其创始人兼CEO周健先生分享了对大模型与AI Agent发展现状的深刻
近日,又一国产SiC企业宣布实现了主驱突破,并将出口海外。据“行家说三代半”的追踪统计,自2022年起,国内主驱级SiC器件/模块开始在多款车型中得到应用,尤其是2024年,本土供应商的市场份额显著上
‍‍‍‍上市PCB厂商竞国(6108)日前出售泰国厂给予陆资厂胜宏科技后,近日惊传台湾厂惊传12月前关厂,并对客户发布通知预告客户转移生產,最后出货日期2024年12月25日。至於后续台湾厂400名员
‍‍据龙芯中科介绍,近日,基于龙芯3A6000处理器的储迹NAS在南京师范大学附属小学丹凤街幼儿园、狮山路小学、南京大学附属中学等学校相继落地。储迹NAS是基于最新的龙芯CPU--3A6000,其代表
疫情后的劳动力囤积和强有力的员工保护规则掩盖了德国高薪制造业工作市场令人担忧的变化。根据联邦劳工办公室的数据,欧元区最大经济体德国的失业率在2019年春季曾达到历史最低点4.9%,现已上升至6%。虽然
8月28-30日,PCIM Asia 2024展在深圳举行。“行家说”进行了为期2天的探馆,合计报道了200+碳化硅相关参展企业(.点这里.)。其中,“行家说”还重点采访了骄成超声等十余家企业,深入了
近日,3个电驱动项目迎来最新进展,包括项目量产下线、投产、完成试验等,详情请看:[关注“行家说动力总成”,快速掌握产业最新动态]青山工业:大功率电驱项目下线9月5日,据“把动力传递到每一处”消息,重庆
随着汽车智能化升级进入深水区,车载ECU(域)以及软件复杂度呈现指数级上升趋势。尤其是多域、跨域和未来的中央电子架构的普及,以及5G/V2X等车云通信的增强,如何保障整车的信息与网络安全,以及防范外部