新聞中心

EEPW首頁 > 嵌入式系統(tǒng) > 設計應用 > 嵌入式Linux的圖形使用者界面(GUI)設計

嵌入式Linux的圖形使用者界面(GUI)設計

作者: 時間:2008-06-16 來源:網(wǎng)絡 收藏
前言:
  
作業(yè)系統(tǒng)從純文字界面一路進展到光鮮亮麗得圖形外表,其中包含了無數(shù)的設計師的創(chuàng)意,當然,也有許多截他人之長補自己之短得案例出現(xiàn)。在系統(tǒng)方面,由于已經(jīng)是主流架構之一,針對這個架構所開發(fā)出來的產(chǎn)品自然也要在圖形使用者界面花費相當大的心力。

  兼顧硬體的特殊性、功能的易用性、視覺美感等要素,這些皆是嵌入式系統(tǒng)GUI設計的重點,但是過去的圖形介面設計並沒有專門的設計人員來負責,而多由程式設計人員或者是美工人員兼差扛起,這些人沒有接受過專業(yè)的人機介面設計,或者是想法太過一廂情願,無法真正切合使用者需求。甚至,部分廠商乾脆就直接抄襲國外大廠的介面設計,如此不尊重專業(yè)的結(jié)果,就是導致臺灣在圖形介面設計的經(jīng)驗累積與發(fā)展遠遠不及國外大廠。大陸方面其實也在走過去臺灣走過的老路, 從抄襲,轉(zhuǎn)而代工,自有設計少之又少。



  設計圖形使用者介面的必要概念



  在PC上的各類圖形使用者界面的共同特點是以視窗管理系統(tǒng)為核心,使用鍵盤和滑鼠作為輸入設備。視窗管理系統(tǒng)除基於可重疊多視窗管理技術外,廣泛採用的另一核心技術是事件驅(qū)動(Event-Driven)技術。圖形使用者界面和人機交互過程極端依賴視覺和手動控制的參與,因此具有強烈的直接操作特點。而在嵌入式系統(tǒng)上,不同規(guī)模的硬體架構對於圖形介面的需求也各有不同,但基本理念仍然一致,那就是作為使用者與機器的有效溝通管道。


  由於目前多媒體的概念正風行,作業(yè)系統(tǒng)與使用者溝通的方式從過去的純文字、圖形、到了現(xiàn)代,已經(jīng)轉(zhuǎn)變成動畫、聲音甚至3D影像的結(jié)合產(chǎn)物。這些結(jié)合多媒體概念的人機介面設計,在現(xiàn)代資訊產(chǎn)品中扮演著極為重要的角色,由於人類對於訊息的感受最直接的就是視覺與聽覺,結(jié)合了兩大感官能力,可以進一步豐富資訊內(nèi)容與使用者進行的交互作用。至於在操作應用方面,電視遊樂器Wii所帶來的嶄新操作方式,也可以提供我們對將來下一代作業(yè)系統(tǒng)使用者介面操作方式的另1層省思,擺脫過去滑鼠與螢幕在操作上相對缺乏直覺的印象,可以利用動作感應與螢幕進行最直接的互動,將來甚至也可能透過腦波控制,直接利用腦波對作業(yè)系統(tǒng)進行操控。


  使用者與機器溝通的管道與方式隨著科技的進步而增加,但基本上,人類在使用系統(tǒng)所提供的操作介面時,大多依靠的事日常生活所提供的經(jīng)驗來做判斷,操作介面符合人性,越能達到直覺的目標,使用者花在與機器溝通的訓練時間就可以相對縮短,但是親易近人之後,也要注意依照此方式所設計出來的操作介面是否擁有足夠的深度,能夠充分發(fā)揮硬體設備本身的能力,因為一致性是非常重要的設計原則,為了要使用到更進階的硬體機能就必須呼叫出不同的使用者介面的話,那麼這樣的設計就無法維持其一致性,雖然可以應用到更完整的系統(tǒng)能力,但基本上並不能稱為1款成功的使用者圖形介面。



  作業(yè)系統(tǒng)的使用者介面發(fā)展



  嚴格來說,真正將圖形化使用者介面帶入一般資訊應用的,乃是Apple公司,諸如收拉式選單、圖示、拖拉操作以及點擊執(zhí)行等概念,都是早在1980年代時就由該公司所開發(fā)構思出來的,其後Apple公司也持續(xù)在圖形操作領域有非常多的進展,諸如微軟、等都只不過是這股風潮之下的追隨者,其中微軟算是在作業(yè)系統(tǒng)操作介面中,參考Apple公司最徹底的1家,從早先的Windows 3.x,到目前最新的Vista,處處都可以看到Apple公司作業(yè)系統(tǒng)的影子在。



  隨著嵌入式系統(tǒng)的發(fā)展,使用者也越來越注重裝置上的操作簡易性,在消費型行動設備上,美觀更是成為視覺操作介面的設計要點之一,各家行動設備廠商在美感的發(fā)揮程度上各有不同,但是基本上都還是依循的既有的模式,比如說在手機介面設計上,常見的9宮格甚至12宮格操作模式就成為各主流手機介面的標準樣版,收放式選單、圖示以及超連結(jié)的概念也被徹底的實行。



  臺灣的代工思維 無法創(chuàng)造出像Apple公司產(chǎn)品的使用者介面



  要在嵌入式系統(tǒng)的有限資源中做繁複的圖形介面設計是一件非常不容易的事情,有時開發(fā)者為了省時省事,就只能建議專案領導者以實用為主,避免太多花俏的設計。不過創(chuàng)意依然是使用者介面設計上的最重要元素之一,就以Apple公司的iPhone及過去的iPod為例,其實在技術層面上非常的簡易,都只是現(xiàn)有技術的整合而已,但是為何臺灣設計者辦不到?為何臺灣著名的手機產(chǎn)業(yè)及相關手持式裝置也都只能沿用公版介面或只能沿襲舊有操作習慣?教育是問題之一,但主事者的態(tài)度也是關鍵,臺灣並不缺乏這方面的設計人才,缺乏的只是宏觀的態(tài)度以及長久的遠見。



  由於硬體不斷的發(fā)展與更新,因此未來的嵌入式系統(tǒng)在使用者介面的設計上還是有非常大的發(fā)展空間,國內(nèi)廠商若能好好的把握這塊市場機會,積極培養(yǎng)人才,並且尊重專業(yè),臺灣便有機會可以脫離代工產(chǎn)業(yè)流血砍價拼規(guī)模的惡性循環(huán),衝出紅海的陰影,另闢一番藍海新天地。



  嵌入式的應用方興未艾



  嵌入式系統(tǒng)正以它體積小、專用性等特點深入社會應用的各個層次。在此領域中,嵌入式Linux在開發(fā)活力上,以及技術深度,可以說是目前嵌入式技術領域的領導者之一,除了有各大半導體、伺服器端、終端硬體設備廠商的支援以外,在開發(fā)難易度上,也因為具備了非常豐富的支援文件及社團資源,且作業(yè)系統(tǒng)本身不需授權費用,或授權費用相對低廉(端視不同廠商的授權方式),成本更顯低廉,因此被嵌入式硬體廠商廣泛採用。



  在特定嵌入式應用領域中,比如PDA、智慧型手機、UMPC、工控電腦等嵌入式架構中,嵌入式Linux的圖形使用者界面的性能將直接影響整個系統(tǒng)的操作感受與流暢度,因此產(chǎn)品製造商和最終使用者。如何針對使用者的需求,在已有的圖形使用者界面上,訂製和改進出具有特定功能的圖形使用者界面,是嵌入式系統(tǒng)開發(fā)者共同關注的問題。



  嵌入式Linux圖形使用者界面的分類

  嵌入式系統(tǒng)往往是非常特化的硬體設備,針對不同的應用,因此對圖形使用者界面的需求也會有所不同。有的系統(tǒng)只要求簡單的圖形功能,而有些系統(tǒng)要求完備的GUI能力支援。因此很多嵌入式系統(tǒng)需要自行定製的嵌入式圖形使用者界面。以下是幾種常用的嵌入式圖形使用者界面及技術特性:

■MiniGUI




圖說:利用MiniGUI所設計出來的手機操作介面。(資料來源:www.linuxdevices.com)



  MiniGUI是在Linux控制臺上執(zhí)行基於SVGALib和LinuxThread6函式庫的多視窗圖形使用者界面支援系統(tǒng)。MiniGUI 採用了類似Win32的API,實現(xiàn)了簡化的類似微軟視窗風格的圖形使用者界面。 MiniGUI也是1個視窗系統(tǒng),它的主要組成元素是視窗,在這個基礎上MiniGUI中的視窗可以基本分四類,分別為主視窗、對話框、控制元件和主視窗中的片段。



  MiniGUI中的主視窗和Windows應用程式的主視窗概念類似,MiniGUI中的每個主視窗對應於一個單獨的執(zhí)行緒,通過函式庫存取可建立主視窗以及對應的執(zhí)行緒。每個執(zhí)行緒有一個訊息佇列,主視窗從這一訊息佇列中獲取消息並由視窗過程(回調(diào)函數(shù))進行處理。MiniGUI的目標是保持現(xiàn)有體積小巧的前提下,在Linux控制臺上提供1個迷你視窗系統(tǒng)支援。〝輕薄短小〞是MiniGUI的最大特色。同時MiniGUI又將盡力與微軟的 MSWindows API保持相容。這麼定位是希望MiniGUI可以在未來以Linux 為基礎的應用平臺上,提供一個簡單可行的 GUI 支援系統(tǒng),讓MiniGUI 可以應用在Windows CE系統(tǒng)可以應用的任何場合。

■Microwindows/Nano-X Windows System




圖說:利用Microwindows所設計出來的GUI介面。(資料來源:www.devdrv.co.jp)



  Microwindows (已改名為Nano-X Windows System)是1個開放原始碼的自由軟體項目,最初是由臺灣人所發(fā)展,支援多種平臺。該項目的開發(fā)相當活躍,大陸也有人參與了其中的開發(fā),並增加了GB2312等字元編碼的支援。Microwindows的主要特色在於提供了相當完善的圖形功能,包括如 Alpha 混合,3D支援,TrueType 字體支援等高級的功能。使得那些只有在具有大容量硬碟和記憶體配置的高階Windows系統(tǒng)才能實現(xiàn)的視窗環(huán)境,如Microsoft Windows和X2Windows,可以在嵌入式設備上順利運作。



  Microwindows從原理上採用分層設計的方法,每層次完成特定的功能,並且能夠在不影響其它層次的基礎上針對不同的應用進行改編或者重寫。在最底層方面,顯示螢幕、滑鼠、觸控螢幕等的驅(qū)動程式提供了與交互相關的硬體設備的存?。恢虚g層是1個精簡的圖形引擎,提供了劃線、區(qū)塊填充、多邊形等多種基本的圖形功能;最上層為圖形應用程式提供了豐富的介面函式庫(API),透過這些函式庫可以自訂桌面和視窗的外觀。目前Microwindows提供2套API,以便能夠更好地適應不同平臺應用程序的移植,即 與Win32/Win CE基本兼容的API以及採用X體系的Nano-X API。



  設備驅(qū)動程序的介面定義在device.h文件中。中間層所提供與設備無關的圖形引擎就是透過存取設備驅(qū)動程式跟硬體設備進行溝通。這就保證了當平臺硬體設備發(fā)生變化的時候,只需要改寫相對應的驅(qū)動程式,而無需修改上層程式碼,簡化了開發(fā)的流程。icrowindows提供基於Linux2.4.X內(nèi)核的 FrameBuffer設備驅(qū)動程式。FrameBuffer在Linux系統(tǒng)中透過/dev/fb0設備檔案進行工作,利用mmap()系統(tǒng)函式將顯示換衝記憶體映射至系統(tǒng)記憶體中。



  Microwindows 能夠在沒有任何作業(yè)系統(tǒng)或其他圖形系統(tǒng)的支援下運行,並且具有對無顯示設備進行直接操作的能力。雖然擁有WIN32相容API,便於熟悉Windows開發(fā)的使用者進行開發(fā),不過介面仍不夠完善。



■OpenGUI




圖說:OpenGUI的系統(tǒng)架構。(資料來源:www.tutok.sk)



  OpenGUI基於使用組合語言實現(xiàn)的x86圖形核心,提供了一個高階的C/C++圖形/視窗介面。它和MiniGUI一樣,也是使用LGPL授權方式。OpenGUI提供了2D繪圖架構,訊息驅(qū)動的API、BMP檔案格式支援。OpenGUI功能強大、使用方便。使用者甚至可以實現(xiàn)Borland BGI風格的應用程式,或者是QT風格的視窗。OpenGUI支援滑鼠和鍵盤的事件。在Linux上基於Framebuffer3或者SVGALib4實 現(xiàn)繪圖。Linux下OpenGUI也支援Mesa3D,支援真實的3D成像效果。在顏色數(shù)量方面,OpenGUI已經(jīng)支援8、16、32位元色深。



  由於其基於組合語言實現(xiàn)的核心架構,並利用多媒體加速指令集進行最佳化,因此OpenGUI運行速度非常快,除了可以支援32位元的機器,能夠在MS- DOS,QNX5和Linux下執(zhí)行,目前OpenGUI主要用來在這些系統(tǒng)中開發(fā)圖形應用程式和遊戲。雖然OpenGUI非常穩(wěn)定,但可移植性因為其核心乃是使用組合語言實作的關係,而會受到影響。

■QT/Embedded(已改名為Qtopia Core)




圖說:QT/Embedded的系統(tǒng)架構。(資料來源:www.tutok.sk)



  Qt/Embedded是Trolltech公司的另一個產(chǎn)品,Qt也是流行的Linux桌面環(huán)境KDE 的基礎,KDE是所有主要的Linux發(fā)行版的一個標準組件。自從1996年起,Qt開始進入商業(yè)應用領域,並且成為全世界數(shù)千種成功的應用程式的視覺外觀基礎。雖然走Open Source開發(fā)路線,採用GPL授權,但商業(yè)應用的話就必需要支付授權費。2005年年初,Trolltech 在大陸北京成立研發(fā)據(jù)點,在亞洲語系方面的支援會有相當大的突破,Trolltech 還是秉持雙授權(dual-licensing)與社團推廣(community-promoting) 的機制,持續(xù)以 GPL/QPL 釋出最新的Qt技術,並且累積加值服務,算是業(yè)界相當優(yōu)秀的長久經(jīng)營典範。Qt/Embedded是Qt的嵌入式Linux介面,是完整內(nèi)建C++GUI和基於 Linux的嵌入式平臺開發(fā)工具。



  由於Qt/Embedded 並不是只針對嵌入式裝置而設計的,Qt/Embedded是來自桌上版本 (UNIX/X11、Windows,與 MacOS X 等平臺)Qt圖形介面的簡化與移植。因此,開發(fā)者可以持續(xù)利用開發(fā)桌面應用程式的經(jīng)驗,來進行嵌入式應用程式開發(fā),開發(fā)者不必重新學習一套新的 API,也不需要適應新的程式設計技巧。不過這並不是說原本桌面應用程式可以直接套用到到相對精簡的嵌入式裝置上。事實上,手持式裝置對於螢幕尺寸、圖示的拖放執(zhí)行,與記憶體資源都與桌上行系統(tǒng)有著相當程度的需求差異。不過,Qt 與Qt/Embedded 在基本的 API 上都是一致的。



  由於針對大範圍的應用,Qt/Embedded API的設備開發(fā)非常廣泛。Qt/Embedded可以開發(fā)市場上多種類型的產(chǎn)品和設備,從消費性電子(智慧型手機、網(wǎng)路終端和set-top box)到工業(yè)控制設備(如醫(yī)學成像設備、行動訊息系統(tǒng)等)等等,都在其支援之列。這套環(huán)境提供的API和Qt/Windows與Qt/X11相同,但不需要使用到X11,取而代之的提供從硬體介面、繪圖函式庫以及完整的GUI工具。Qt/Embedded對儲存記憶體的需求約在800kB到3MB(x86處理器環(huán)境下)左右。其另一個特點就是跨平臺,用Qt API開發(fā)出來的應用程式,可以在不同的作業(yè)系統(tǒng)和視窗系統(tǒng)上執(zhí)行。



  隨著嵌入式處理器運算能力的不斷提高,對外接設備的支援的不斷發(fā)展,嵌入式Linux系統(tǒng)的應用也逐漸增多。Qt/Embedded延續(xù)了Qt在桌面系統(tǒng)的所有功能以外,豐富的API函式庫支援以及完整的程式編譯模型使得嵌入式Linux系統(tǒng)中的應用程序開發(fā)更加便捷。不過由於Qt/Embedded過於完整,在記憶體佔用空間方面就很難下降,因此對於嵌入式裝置的硬體要求也會更高。


作者:林宗輝/DIGITIMES
linux操作系統(tǒng)文章專題:linux操作系統(tǒng)詳解(linux不再難懂)


關鍵詞: Linux 嵌入式

評論


相關推薦

技術專區(qū)

關閉