設(shè)計用于嵌入式系統(tǒng)的圖形用戶界面
上網(wǎng)時間:2013年12月11日
嵌入式系統(tǒng)用戶界面的演變
以前,許多嵌入式系統(tǒng)很少需要或不需要與終端用戶直接關(guān)聯(lián),因此僅具有基本的用戶界面要求(如有)。但隨著嵌入式裝置的性能逐漸增強(qiáng)并成為幾乎所有電子系統(tǒng)的核心組件,它們的功能也應(yīng)更便于用戶操作。但自相矛盾的是,這會使它們的使用難度變得更高,進(jìn)而導(dǎo)致更高的工作量用于避免用戶面對復(fù)雜的操作。增添了諸如觸屏控制、動態(tài)內(nèi)容管理和網(wǎng)絡(luò)訪問等功能,用戶界面設(shè)計(一般通過圖形用戶界面進(jìn)行)目前很明顯已成為嵌入式系統(tǒng)開發(fā)至關(guān)重要的元素。
但由于我們都已習(xí)慣了手機(jī)和平板電腦的易于使用性,即使是最基本的非消費(fèi)電子產(chǎn)品設(shè)計也要滿足直觀、清楚、全面、快速和可靠的圖形用戶界面預(yù)期。這就為項(xiàng)目開發(fā)團(tuán)隊(duì)帶來了壓力,不僅是因?yàn)閳D形用戶界面的開發(fā)在編碼層面變得更復(fù)雜(并非始終有合適的“建造板塊”可供許多嵌入式操作系統(tǒng)使用),還由于盡管任何具有優(yōu)質(zhì)顯示器和充分處理能力的系統(tǒng)均可部署美觀誘人的圖形界面,但如果沒有合適的功能工具,要創(chuàng)建互動式動態(tài)圖形用戶界面卻十分困難。然而另一個未被充分認(rèn)識的問題是,除合適的工具外,開發(fā)最佳的圖形用戶界面還需要額外的設(shè)計技能,這一點(diǎn)軟件工程團(tuán)隊(duì)并非隨時都具備。
當(dāng)然,盡管功能是核心要素,但真正將最佳圖形用戶界面與基本可用的界面區(qū)別開來的還是“適用性”。軟件工程師一般能實(shí)施滿足功能規(guī)格的用戶界面,但最佳的用戶體驗(yàn)卻只能源自更高級別的思考和理解,即該界面怎樣才能有助于用戶更出色地完成工作,或者以最簡單或最快捷或最直觀的方式取得預(yù)期結(jié)果。這正是界面編碼與界面設(shè)計有所區(qū)別的原因,以及在這個不再使用難學(xué)或難用的設(shè)備和系統(tǒng)的世界中,開始編碼前要進(jìn)行大量工作的原因。
預(yù)編碼考慮事項(xiàng)
任何優(yōu)秀用戶界面設(shè)計的第一階段都應(yīng)明確用戶要求,并分析用戶會執(zhí)行必要任務(wù)的方式。因此至關(guān)重要的是要理解用戶應(yīng)完成的任務(wù),以及他們會如何按優(yōu)先順序處理關(guān)鍵任務(wù)。從本質(zhì)上講,這一點(diǎn)適用于所有設(shè)計工作,但在醫(yī)療或航天系統(tǒng)等任務(wù)和安全關(guān)鍵型應(yīng)用中尤其顯得重要,因?yàn)槠渲械挠脩艚缑媪己们闆r的確事關(guān)生死。有鑒于此,觀察或記錄用戶處理類似任務(wù)的方式十分重要,而且考慮他們在現(xiàn)有系統(tǒng)中可能會遇到的問題和失敗也往往大有裨益。
一旦他們了解了用戶需要什么功能,設(shè)計員就能接著考慮界面的外觀和體驗(yàn),以及隨后的工作流程。應(yīng)與用戶一起創(chuàng)建和討論腳本及界面原型,并基于其反饋創(chuàng)建新的迭代次數(shù)?,F(xiàn)代工具可對此提供幫助,不僅可協(xié)助實(shí)現(xiàn)原型的快速開發(fā),還能讓該作品用于成品而非一切從頭開始。在整個過程中,設(shè)計員應(yīng)努力創(chuàng)建一種直觀、樣式和功能一致且避免凌亂的界面。
除用戶要求和任務(wù)分析以外,會影響用戶界面設(shè)計的其他因素從操作環(huán)境(高強(qiáng)度環(huán)境光或像在許多醫(yī)療或工業(yè)自動化應(yīng)用中,例如需要戴手套使用觸摸屏以免影響圖標(biāo)尺寸、顏色和位置),到硬件和軟件平臺中的可移植性需要等不一而足。在此階段還應(yīng)考慮有必要使用多種語言版本的全球部署要求或網(wǎng)絡(luò)功能整合需求。
設(shè)計員確定嵌入式用戶界面的“大圖片”要求后,接下來就需要軟件工程師將該界面轉(zhuǎn)變成現(xiàn)實(shí)。此時的設(shè)計環(huán)境及相關(guān)工具的選擇會導(dǎo)致十分不同的結(jié)果,不僅對于成品,而且在項(xiàng)目開發(fā)成本和速度方面均會產(chǎn)生重大差別。
對于圖形用戶界面設(shè)計,設(shè)計環(huán)境必須是分開的;其中圖形在一側(cè),源代碼在另一側(cè)。將此兩者聯(lián)系到一起可成功架接圖形用戶界面創(chuàng)建中設(shè)計與開發(fā)的工作,從上述的預(yù)編碼問題開始推進(jìn)。支持設(shè)計(美學(xué))和開發(fā)(編碼)圖形策略的圖形用戶界面設(shè)計環(huán)境在此方面特別有利。在此類環(huán)境中,以圖形方式表示的用戶控制項(xiàng)同樣會理想的以內(nèi)在方式在目標(biāo)平臺包含所有所需代碼以激活它們。在工程方面,這意味著面向?qū)ο蟮脑O(shè)計策略;通過選擇元素,其固有的全部特征都將被激活,并且通過此“內(nèi)在特征”,使用這些元素建造的任何內(nèi)容都將確切無疑地可以訪問單獨(dú)元素的特征和功能。從表面上看,此類策略并不僅限于視覺元素;使用面向?qū)ο蟮姆椒ㄩ_發(fā)的任何“組件”都可毫無疑問地繼承其組件的特征,并將這些特征按照等級方式傳遞給使用它的任何其他組件。
這會對面向?qū)ο蟮木幊陶Z言(例如C++)架構(gòu)起到支撐作用,并可從概念上擴(kuò)展至支持面向?qū)ο蟮木幊痰膱D形設(shè)計環(huán)境。重要的是,面向?qū)ο蟮能浖哂泄逃械目梢浦残?,因?yàn)椤敖M件”包含(通過遺傳)為確定其功能所需的全部特征,從而降低了面向?qū)ο蟮拇a對硬件的依賴。在大多數(shù)情況下,移植面向?qū)ο蟮能浖皇且环N針對不同架構(gòu)的簡單重新編譯,至少無需使用針對具體功能的任何硬件或操作系統(tǒng)。在提供真正的交叉平臺支持的現(xiàn)代框架中(例如Qt),該流程得到了進(jìn)一步簡化。此類可移植性可將新設(shè)計的開發(fā)開支降至最低,并在為嵌入式開發(fā)人員提供針對不同硅片價格點(diǎn)的不同路徑的同時,使遷移現(xiàn)有設(shè)計變得更簡單。例如,Qt可用于為采用低功耗和經(jīng)濟(jì)實(shí)惠型處理器的便攜醫(yī)療裝置創(chuàng)建界面,相同的代碼可充分運(yùn)用于較此更大型的器械,例如采用更高功率處理器的CAT或MRI掃描儀。
當(dāng)今使用的一種處于領(lǐng)先地位的面向?qū)ο蟮某绦蛘Z言是C++。在普遍應(yīng)用的C語言基礎(chǔ)上,C++ 是許多希望采用面向?qū)ο蟮姆椒ǖ墓こ處煹淖匀贿M(jìn)展。通過采用面向?qū)ο蟮牟呗裕瑢⒖蓜?chuàng)建一種開發(fā)“框架”,其中的模塊庫包含圖形用戶界面向?qū)А敖M件”(或稱為“類”),例如按鈕、滑動條、窗口或標(biāo)度盤以及嵌入式設(shè)備需要的其他功能性元素,包括聯(lián)網(wǎng)、多媒體支持(視頻編解碼器)和國際化(語言)。這種解釋型語言(例如Java)的優(yōu)勢可造成卓越或中等用戶體驗(yàn)之間的差別。
框架功能
對設(shè)計師和工程師均特別有利的是,所選的環(huán)境是否能為用戶界面提供豐富的預(yù)制(及自定義)組件,以及從操作系統(tǒng)中提取常用功能的類和模塊。理想情況下,這些類提供的益處并不僅限于圖形用戶界面。例如,通過向XML、網(wǎng)絡(luò)系統(tǒng)、進(jìn)程間通信 (IPC)、帶硬件加速的2D和3D 圖形、線程、SQL、國際化和多媒體提供類,工程師還可高效訪問應(yīng)用框架,以幫助他們加快關(guān)鍵功能的部署速度,同時使其得以關(guān)注可為成品增加競爭優(yōu)勢的核心能力。
以Qt應(yīng)用和用戶界面框架為例,它已經(jīng)在桌面應(yīng)用環(huán)境中得到充分運(yùn)用,并已被用于向嵌入式系統(tǒng)提供相同的益處。這種框架包括開發(fā)工具和類庫,可讓設(shè)計師和程序員共同采用可輕松自定義的組件生成圖形用戶界面,從所用的調(diào)色板到事件的處理方式均可進(jìn)行自定義。
除編寫代碼以外,Qt設(shè)計環(huán)境還可使用拖放擁護(hù)界面創(chuàng)作等工具,實(shí)現(xiàn)圖形元素的快速創(chuàng)作。高性能文本渲染及預(yù)渲染字體有助于降低進(jìn)程開支,而除圖形外,專用網(wǎng)絡(luò)工具可使設(shè)計師建造融合實(shí)時網(wǎng)絡(luò)內(nèi)容和服務(wù)的先進(jìn)用戶界面,從而滿足連接性要求。對于全球部署而言,一款專用的語言家工具可使工程師翻譯和調(diào)整應(yīng)用程序,以適應(yīng)不同的世界語言,包括支持亞洲語言字符和從右至左閱讀的腳本。
便攜性
Qt獨(dú)具特色的重要優(yōu)勢之一是其平臺的建造方式,即用于提供一流的交叉平臺應(yīng)用程序編程接口(API),可有助于以最小的額外工作量在多個軟件環(huán)境中部署圖形用戶界面設(shè)計和應(yīng)用程序。例如,無需任何重新寫入即可將來自一個目標(biāo)裝置(例如,臺式計算機(jī)環(huán)境)的源代碼部署到嵌入式操作系統(tǒng)上。這不僅允許從單個部署項(xiàng)目中進(jìn)行多個部署,還可進(jìn)一步針對未來平臺本身的變化驗(yàn)證代碼,這在當(dāng)今操作系統(tǒng)本身不斷修正且產(chǎn)品生命周期以月而非年計算的世界中的確是一項(xiàng)重要益處。