為物聯(lián)網(wǎng)設(shè)備創(chuàng)建有意義且相關(guān)的用戶體驗(yàn)(UX)比構(gòu)建SaaS應(yīng)用程序、網(wǎng)站或智能手機(jī)應(yīng)用程序要困難得多。在嵌入式開發(fā)中,你的設(shè)計(jì)必須考慮到軟件和硬件功能,并運(yùn)行在比一般云或web應(yīng)用程序資源更少、電源限制更嚴(yán)格的平臺(tái)上。
整合各種力量發(fā)布一個(gè)超越消費(fèi)者期望的嵌入式GUI應(yīng)用程序,就是要理解這些需求。正如我們與客戶所看到的,讓我們來解決嵌入式用戶體驗(yàn)設(shè)計(jì)師和開發(fā)人員在向市場(chǎng)交付成功產(chǎn)品時(shí)面臨的四大挑戰(zhàn)和解決方案。
1、了解如何最大化圖形功能
雖然每個(gè)人都希望在自己的設(shè)備上獲得類似智能手機(jī)的體驗(yàn),但在微控制器(MCU)和微處理器(MPU)等非移動(dòng)平臺(tái)上創(chuàng)建它們可能更具挑戰(zhàn)性。圖形通常消耗最多的資源,仔細(xì)規(guī)劃你的管道有助于幫助嵌入式開發(fā)人員創(chuàng)建一種復(fù)雜的體驗(yàn),在運(yùn)行時(shí)不會(huì)出現(xiàn)故障或卡頓。在開發(fā)圖形時(shí),請(qǐng)考慮以下幾點(diǎn):
l 圖像格式和加載機(jī)制可能會(huì)對(duì)運(yùn)行時(shí)性能產(chǎn)生很大影響-PNG和BMP等編碼格式需要資源來解碼,而原始文件格式通常會(huì)以較少的開銷直接推送到顯示器上。
l 動(dòng)畫可以提高解釋性,但如果設(shè)計(jì)得不好,用戶可能會(huì)感到困惑。能夠在目標(biāo)部署之前在開發(fā)工具中創(chuàng)建、測(cè)試和編輯動(dòng)畫序列,有助于簡(jiǎn)化流程。
l 考慮使用硬件加速(如果可用)來減輕CPU執(zhí)行高運(yùn)行圖形任務(wù)的負(fù)擔(dān)。
l 同樣,有一些軟件渲染引擎,無(wú)論是開源的還是由硬件制造商提供的(如ChromeART、G2D、OpenGL和Vulkan),都可以優(yōu)化圖形性能。
2、將UX與設(shè)備尺寸和形狀因素相匹配
無(wú)論是大型智能家居顯示器還是手腕上的小型可穿戴設(shè)備,UX始終受到設(shè)備格式和屏幕大小的限制。很容易用更高的可用性和復(fù)雜性來?yè)Q取更小的外形尺寸。為電子商務(wù)網(wǎng)站設(shè)計(jì)控件與構(gòu)建適合40毫米寬智能手表觸摸屏的GUI之間存在著天壤之別。
UX和屏幕特性之間有著直接的關(guān)系,嵌入式開發(fā)人員需要考慮不同的形式因素:
l 簡(jiǎn)化和整理屏幕內(nèi)容,以減輕用戶的任務(wù)負(fù)擔(dān),并使擴(kuò)展到不同設(shè)備更容易。
l 文本空間可能較小,因此考慮用圖標(biāo)或圖像替換字符串,以清楚地傳達(dá)相同的功能。
l 使用簡(jiǎn)單的導(dǎo)航手勢(shì)、按鈕和無(wú)限滾動(dòng)菜單,幫助用戶快速訪問信息(并在整個(gè)產(chǎn)品線中保持這種設(shè)計(jì)語(yǔ)言,使用戶更容易進(jìn)行交互)。
3、將功耗降至最低至關(guān)重要
更長(zhǎng)的電池壽命是任何物聯(lián)網(wǎng)產(chǎn)品宣傳的標(biāo)志,而設(shè)備的屏幕通常是最大的耗電量。最明顯的省電策略是盡可能使用睡眠模式,只有在發(fā)生面向用戶的事件時(shí)才喚醒屏幕,但還有其他因素需要考慮:
l 對(duì)于LCD顯示器,在不活動(dòng)或光線較暗時(shí)調(diào)暗背光可以節(jié)省大量電力。
l 對(duì)于OLED或AMOLED屏幕,GUI調(diào)光層或靜音調(diào)色板設(shè)計(jì)消耗更少的電量。
l 圖形渲染對(duì)功耗有很大影響 — 如果你同時(shí)使用2D和3D圖形,則運(yùn)行混合渲染模型(例如使用Crank Storyboard,允許你在2D的G2D加速和3D的OpenGL ES之間切換)比在整個(gè)應(yīng)用程序生命周期中運(yùn)行3D加速消耗更少的功耗。
4、規(guī)劃和跟蹤內(nèi)存管理
嵌入式開發(fā)人員了解并考慮嵌入式圖形應(yīng)用程序的不同內(nèi)存需求是性能和用戶體驗(yàn)的關(guān)鍵。應(yīng)用程序減速、凍結(jié)和崩潰不僅會(huì)對(duì)體驗(yàn)產(chǎn)生負(fù)面影響,而且極難隔離和調(diào)試。
系統(tǒng)級(jí)內(nèi)存(堆、堆棧和靜態(tài)代碼)和硬件級(jí)存儲(chǔ)(閃存和RAM)的選擇會(huì)影響應(yīng)用程序性能,從而影響用戶體驗(yàn)。
l 嵌入式RAM比嵌入式閃存更快,因此一般經(jīng)驗(yàn)法則是在RAM中存儲(chǔ)動(dòng)態(tài)內(nèi)容(如變量和幀緩沖區(qū)),在閃存中存儲(chǔ)更持久的數(shù)據(jù)(如代碼)。
l 與加載圖像文件相比,使用實(shí)心形狀、填充和多邊形進(jìn)行圖形使用的內(nèi)存更少,但它們確實(shí)會(huì)影響運(yùn)行時(shí)性能,應(yīng)仔細(xì)考慮。
l 不要忘記幀緩沖區(qū)。屏幕外像素存儲(chǔ)與屏幕上一樣重要,必須包含在內(nèi)存規(guī)劃中,尤其是在合成屏幕過渡和動(dòng)畫時(shí)。
l 如果你知道變量和堆棧需要多少空間,那么可以預(yù)先分配它們,以確定最有效的數(shù)據(jù)類型和打包策略。
最重要的是,確保你分析并了解內(nèi)存在應(yīng)用程序運(yùn)行時(shí)的所有階段是如何使用的:
“由于沒有跟蹤內(nèi)存的去向,他們可能會(huì)很快耗盡代碼空間,或者出現(xiàn)與堆碎片相關(guān)的運(yùn)行時(shí)問題。”
結(jié)論
隨著我們看到更多嵌入式開發(fā)I團(tuán)隊(duì)進(jìn)入物聯(lián)網(wǎng)設(shè)備,我們也看到了獨(dú)特的挑戰(zhàn)。成功開發(fā)這些產(chǎn)品需要本文所述的專業(yè)知識(shí),以及UX設(shè)計(jì)師和開發(fā)商之間的緊密合作,以滿足期望和需求。