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