日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 运维知识 > linux >内容正文

linux

嵌入式Linux常用GUI系统

發(fā)布時間:2023/12/8 linux 31 豆豆
生活随笔 收集整理的這篇文章主要介紹了 嵌入式Linux常用GUI系统 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

嵌入式Linux常用GUI系統(tǒng)

【整理】嵌入式Linux中常用的GUI(圖形用戶界面)系統(tǒng)

?Embedded??crifan??7年前 (2012-08-31)??1502瀏覽??0評論

網(wǎng)上找了一堆資料,還是這里:

Embedded Linux Graphics System

的解釋是,最新的,最全的,邏輯也是最清晰的。

所以,簡單摘錄其分類,并整理如下:

?

1.Linux中的一些GUI基礎(chǔ)架構(gòu)

1.1 X Window

1.2 SVGALib

1.3 FrameBuffer

1.4 LibGGI

?

2 Linux領(lǐng)域內(nèi)的高級圖形庫

2.1 Xlib及相關(guān)的其他一些圖形庫

2.2 SDL (Simple DirectMedia Layer)

2.3 Allegro

2.4 Mesa3D

2.5 DirectFB

?

3 嵌入式Linux系統(tǒng)中的GUI(圖形用戶界面)

3.1 NanoX(舊稱MicoroWindows)

http://www.microwindows.org/

3.2 OpenGUI(舊稱FastGL)

http://www.tutok.sk/fastgl/

3.3 Qt / Embedded

== Qt library TrollTech

TrollTech已被Nokia收購,所以之前主頁:

http://www.trolltech.com/

會跳轉(zhuǎn)到:

http://qt.nokia.com/

3.4 MiniGUI

http://www.minigui.org

?

【參考資料】

1.Embedded Linux Graphics System

2.基于Linux的嵌入式圖形界面(GUI),您使用哪個?

3.MiniGUI 其他同類軟件的區(qū)別

4.?Wind River Tilcon Graphics Suite

?

主流嵌入式開源GUI比較

https://blog.csdn.net/anyuliuxing/article/details/78431561

2017年11月03日 09:23:12?anyuliuxing?閱讀數(shù) 13966更多

所屬專欄:?MiniGUI

?版權(quán)聲明:本文為博主原創(chuàng)文章,未經(jīng)博主允許不得轉(zhuǎn)載。如果轉(zhuǎn)載,請注明出處。 https://blog.csdn.net/anyuliuxing/article/details/78431561

前言

  本文主要說明了MicroWindows、MiniGui、QT、GTK+、OpenGUI和FLTK,第七小節(jié)是對比的詳細(xì)表格,內(nèi)容是根據(jù)網(wǎng)上的一些資料還有各大開源GUI的官網(wǎng)的資料整理而來,目的是為自己以后學(xué)習(xí)把握方向。

1 MicroWindows

  首先看一下效果圖片吧,都在MicroWindows官網(wǎng)?
??
??
  Microwindows 是一個著名的開放式源碼嵌入式GUI 軟件,遵循MPL協(xié)議,目的是把圖形視窗環(huán)境引入到運(yùn)行Linux 的小型設(shè)備和平臺上。作為X Window 的替代品,Microwindows可以使用更少的RAM 和文件存儲空間(100K-600K)提供與X Window 相似的功能。Microwindows 允許設(shè)計者輕松加入各種顯示設(shè)備、鼠標(biāo)、觸摸屏和鍵盤等。Microwindows 的可移植性非常好,基本上用 C 語言實現(xiàn),只有某些關(guān)鍵代碼使用了匯編以提高速度。Microwindows 支持ARM?芯片。盡管Microwindows 完全支持linux,但是它內(nèi)部的可移植結(jié)構(gòu)是基于一個相對簡單的屏幕設(shè)備接口,可在許多不同的RTOS和裸機(jī)上運(yùn)行。?
  Microwindows 的圖形引擎能夠運(yùn)行在任何支持readpixel, writepixel,drawhorzline, drawvertline 和setpalette 的系統(tǒng)之上。在底層函數(shù)的支持之下,上層實現(xiàn)了位圖,字體,光標(biāo)以及顏色的支持。系統(tǒng)使用了優(yōu)化的繪制函數(shù),這樣當(dāng)用戶在移動窗口時可以提供更好的響應(yīng)。內(nèi)存圖形繪制和移動的實現(xiàn)使得屏幕畫圖顯得很平滑,這點特別在顯示動畫、多邊形繪制、任意區(qū)域填充、剪切時有用。Microwindows 支持新的Linux內(nèi)核幀緩存(FrameBuffer)結(jié)構(gòu),目前提供每像素1、2、4、8、16、24 和32 位的支持,另外還支持彩色顯示和灰度顯示,其中彩色顯示包括真彩色(每像素15、16 和32 位)和調(diào)色板(每像素1, 2, 4 和 8 位)兩種模式。在彩色顯示模式下,所有的顏色用RGB 格式給出,系統(tǒng)再將它轉(zhuǎn)換成與之最相似的可顯示顏色,而在單色模式下中則是轉(zhuǎn)換成不同的灰度級。Microwindows支持窗口覆蓋和子窗口概念、完全的窗口和客戶區(qū)剪切、比例和固定字體,還提供了字體和位圖文件處理工具。Microwindows支持的中文字符集是GB2312,并不支持Unicode。?
  Microwindows 采用分層設(shè)計方法。在最底層,屏幕,鼠標(biāo)/觸摸屏以及鍵盤驅(qū)動程序提供了對物理設(shè)備訪問的能力。在中間層,實現(xiàn)了一個可移植的圖形引擎,支持行繪制,區(qū)域填充,剪切以及顏色模型等。在上層,實現(xiàn)多種API 以適應(yīng)不同的應(yīng)用環(huán)境。?
  兩種API:Win32Nano-X?
  Microwindows中使用兩種流行的圖形編程接口:Microsoft Windows Win32/WinCE圖形顯示接口(GDI)和Xlib-like接口。前者應(yīng)用于所有的Windows CE和Win32應(yīng)用程序,后者就象Nano-X,應(yīng)用于所有Linux X插件集的最底層。這樣做可以讓大量的Windows程序員開發(fā)圖形應(yīng)用程序,類似地也可以讓Linux圖形程序員用X接口開發(fā)圖形應(yīng)用程序。?
  Nano-X服務(wù)器占用的資源大約在100K150K。原始Nano-X應(yīng)用程序的平均大小在30K到60K。由于Nano-X是為有內(nèi)存限制的低端設(shè)備設(shè)計的,所以它不象X那樣支持很多函數(shù),因此它實際上不能作為微型X(Xfree86)的替代品。?
  Microwindows系統(tǒng)以圖形方式支持目標(biāo)平臺的主機(jī)平臺仿真。也就是說,用于Linux的Microwindows應(yīng)用程序可以在桌面上進(jìn)行開發(fā)和原型設(shè)計,運(yùn)行和測試,而無需在目標(biāo)平臺上進(jìn)行交叉編譯和運(yùn)行。這是使用Microwindows’ X screen驅(qū)動程序完成的,而不是framebuffer驅(qū)動程序,其中目標(biāo)應(yīng)用程序在桌面主機(jī)上運(yùn)行并顯示在X窗口中。可以告訴驅(qū)動程序以每像素位數(shù)和顏色深度精確地模擬目標(biāo)平臺的顯示。因此,即使桌面系統(tǒng)是24位顏色,它可以顯示一個2bpp灰度級來預(yù)覽目標(biāo)應(yīng)用程序。由于主機(jī)和目標(biāo)機(jī)都運(yùn)行Linux,因此大多數(shù)所有操作系統(tǒng)服務(wù)都可在桌面主機(jī)上使用。

2 MiniGui

  MiniGui官網(wǎng),更多效果圖參見我前面寫的文章《MiniGui Samples運(yùn)行效果》?
?

  MiniGUI 是針對嵌入式系統(tǒng)設(shè)計和優(yōu)化的完整圖形支持系統(tǒng),遵循GPL協(xié)議。作為操作系統(tǒng)和應(yīng)用程序之間的一個中間件,MiniGUI 將底層操作系統(tǒng)和硬件平臺的細(xì)節(jié)隱藏起來,并為上層的應(yīng)用程序提供了一致接口。MiniGUI 的主要技術(shù)特性描述如下:?
  跨操作系統(tǒng)支持,具體包括普通嵌入式 Linux/uClinux、VxWorks、eCos、uC/OS-II、pSOS、ThreadX、Nucleus、OSE 等,同時還提供 Win32 平臺上的 SDK 開發(fā)包,方便嵌入式應(yīng)用程序的開發(fā)和調(diào)試。?
  多運(yùn)行模式支持,為了適應(yīng)不同的操作系統(tǒng)運(yùn)行環(huán)境,MiniGUI可配置成三種運(yùn)行模式:MiniGUI-ThreadsMiniGUI-Processes及?MiniGUI-Standalone。?
  內(nèi)建資源支持。我們可以將 MiniGUI 所使用的資源,諸如位圖、圖標(biāo)和字體等編譯到函數(shù)庫中,該特性可提高 MiniGUI 的初始化速度,并且非常適合 eCos/uCOS-II/ThreadX 等無文件系統(tǒng)支持的實時嵌入式操作系統(tǒng)。?
  完備的多窗口機(jī)制消息傳遞機(jī)制。?
  提供常用的控件類,包括靜態(tài)文本框、按鈕、單行和多行編輯框、列表框、組合框、菜單按鈕、進(jìn)度條、滑塊、屬性頁、工具欄、樹型控件、月歷控件、旋鈕控件、酷工具欄、網(wǎng)格控件、動畫控件等。?
對話框和消息框支持。?
  其它 GUI 元素,包括菜單、加速鍵、插入符、定時器等。?
  界面皮膚支持,用戶可通過皮膚支持獲得華麗的圖形界面。?
  支持低端顯示設(shè)備(比如單色 LCD)和高端顯示設(shè)備(8 位色及以上顯示設(shè)備)。通過 MiniGUI 的圖形抽象層及圖形引擎技術(shù),還可以支持特殊的顯示設(shè)備,比如 YUV 顯示設(shè)備。?
  提供有增強(qiáng) GDI 函數(shù),包括光柵操作、復(fù)雜區(qū)域處理、橢圓、圓弧、多邊形以及區(qū)域填充等函數(shù)。在提供有兼容于 C99 規(guī)范的數(shù)學(xué)庫平臺上,還提供有高級二維繪圖函數(shù),可設(shè)置線寬、線型以及填充模式等。通過 MiniGUI 的圖形抽象層及圖形引擎技術(shù),我們也可以讓上述高級 GDI 接口在低端顯示屏上實現(xiàn)。?
  Windows 的資源文件支持,如位圖、圖標(biāo)、光標(biāo)等。?
各種流行圖像文件的支持,包括 Windows BMP、GIF、JPEG、PNG等(JPEG 及 PNG的支持通過 libjpeg 及 libpng 函數(shù)庫提供)。?
  多字符集和多字體支持,目前支持 ISO8859-1~ISO8859-15、GB2312、GBK、GB18030、BIG5、EUC-JP、Shift-JIS、EUC-KR、UNICODE(UTF-8、UTF-16 編碼)等字符集,支持等寬點陣字體、變寬點陣字體、Qt/Embedded 使用的嵌入式字體 QPF、TrueType 以及 Adobe Type1 等矢量字體(TrueType 及 Type1 的支持分別通過 freetype 1.3 及 libt1 函數(shù)庫提供)。同時,對于點陣字體 MiniGUI 也可以進(jìn)行自動放大處理,并可針對電視等特殊顯示設(shè)備實現(xiàn)防鋸齒功能。?
多種鍵盤布局的支持。MiniGUI 除支持常見的美式 PC 鍵盤布局之外,還支持法語、德語等西歐語種的鍵盤布局。?
  輸入法支持,用于提供各種可能的輸入形式;內(nèi)建有適合 PC 平臺的漢字(GB2312)輸入法支持,包括內(nèi)碼、全拼、智能拼音、五筆及自然碼等。?
針對嵌入式系統(tǒng)的特殊支持,包括一般性的 I/O 流操作,字節(jié)序相關(guān)函數(shù)等。?
  副屏支持,當(dāng)系統(tǒng)中有多個視頻設(shè)備時,可將一個作為MiniGUI的主屏,實現(xiàn)完整的多窗口系統(tǒng);而其它設(shè)備作為副屏,在其上通過MiniGUI 的圖形接口來實現(xiàn)文字渲染、圖形顯示等功能。?
和其它針對嵌入式產(chǎn)品的圖形系統(tǒng)相比,MiniGUI 在對系統(tǒng)的需求上具有如下幾大優(yōu)勢:?
  可伸縮性強(qiáng)?
  MiniGUI 豐富的功能和可配置特性,使得它既可運(yùn)行于 CPU 主頻只有 60MHz 的低端產(chǎn)品中,亦可運(yùn)行于高端嵌入式設(shè)備中,并使用 MiniGUI 的高級控件風(fēng)格及皮膚界面等技術(shù),創(chuàng)建華麗的用戶界面。?
MiniGUI 的跨操作系統(tǒng)特性,使得 MiniGUI 可運(yùn)行在最簡單的嵌入式操作系統(tǒng)之上,如 uC/OS-II,也可以運(yùn)行在具有現(xiàn)代操作系統(tǒng)特性的嵌入式操作系統(tǒng)之上,如 Linux,而且 MiniGUI 為嵌入式 Linux 系統(tǒng)提供了完整的多窗口圖形環(huán)境。這些特性,使得MiniGUI 具有非常強(qiáng)的可伸縮性。可伸縮性是 MiniGUI 從設(shè)計之初就考慮且不斷完善而來的。這個特性使得 MiniGUI 可應(yīng)用于簡單的行業(yè)終端,也可應(yīng)用于復(fù)雜的消費類電子產(chǎn)品。?
  輕型、占用資源少?
  MiniGUI 是一個定位于輕量級的嵌入式圖形庫,對系統(tǒng)資源的需求完全考慮到了嵌入式設(shè)備的硬件情況,如 MiniGUI 庫所占的空間最小可以裁剪到500K?左右,對目前的嵌入式設(shè)備來說,滿足這一條件是綽綽有余的。此外,測試結(jié)果表明,MiniGUI 能夠在 CPU 主頻為30 MHz,僅有4M RAM的系統(tǒng)上正常運(yùn)行(使用 uClinux 操作系統(tǒng)),這是其它針對嵌入式產(chǎn)品的圖形系統(tǒng)所無法達(dá)到的。?
  高性能、高可靠性?
  MiniGUI 良好的體系結(jié)構(gòu)及優(yōu)化的圖形接口,可確保最快的圖形繪制速度。在設(shè)計之初,我們就充分考慮到了實時嵌入式系統(tǒng)的特點,針對多窗口環(huán)境下的圖形繪制開展了大量的研究及開發(fā),優(yōu)化了 MiniGUI 的圖形繪制性能及資源占用。MiniGUI 在大量實際系統(tǒng)中的應(yīng)用,尤其在工業(yè)控制系統(tǒng)的應(yīng)用,證明 MiniGUI 具有非常好的性能。?
從 1999 年 MiniGUI 的第一個版本發(fā)布以來,就有許多產(chǎn)品和項目使用 MiniGUI,MiniGUI 也不斷從這些產(chǎn)品或者項目當(dāng)中獲得發(fā)展動力和新的技術(shù)需求,逐漸提高了自身的可靠性和健壯性。有關(guān) MiniGUI 的最新成功案例,您可以訪問飛漫公司網(wǎng)站的典型案例部分:?http://www.minigui.org/?
  可配置性?
  為滿足嵌入式系統(tǒng)各種各樣的需求,必須要求 GUI 系統(tǒng)是可配置的。和 Linux 內(nèi)核類似,MiniGUI 也實現(xiàn)了大量的編譯配置選項,通過這些選項可定 MiniGUI 庫中包括哪些功能而同時不包括哪些功能。大體說來,我們可以在如下幾個方面對 MiniGUI 進(jìn)行定制配置:?
  指定 MiniGUI 要運(yùn)行的硬件平臺。 指定 MiniGUI 要運(yùn)行的操作系統(tǒng)。 指定生成基于線程的 MiniGUI-Threads 運(yùn)行模式還是基于進(jìn)程的 MiniGUI-Processes 運(yùn)行模式,或者只是最簡單的 MiniGUI-Standalone 運(yùn)行模式。 指定需要支持的 GAL 引擎和 IAL 引擎,以及引擎相關(guān)選項。 指定需要支持的字體類型。 指定需要支持的字符集。 指定需要支持的圖像文件格式。 指定需要支持的控件類。 指定控件和窗口的整體風(fēng)格,可以通過指定不同的渲染器完成。 這些配置選項大大增強(qiáng)了 MiniGUI 的靈活性,對用戶來講,可針對具體的應(yīng)用需求量體裁衣,開發(fā)最適合產(chǎn)品需求的應(yīng)用軟件。

3 QT

  QT?官網(wǎng),效果圖如下?


  Qt 是一個跨平臺的C++應(yīng)用程序框架,支持Windows、Linux、Mac OS X、Android、iOS、Windows Phone、嵌入式系統(tǒng)等。也就是說,Qt 可以同時支持桌面應(yīng)用程序開發(fā)、嵌入式開發(fā)和移動開發(fā),覆蓋了現(xiàn)有的所有主流平臺。你只需要編寫一次代碼,發(fā)布到不同平臺前重新編譯即可。?
  Qt 不僅僅是一個GUI庫,它除了可以創(chuàng)建漂亮的界面,還有很多其他組件,例如,你不再需要研究STL,不再需要C++的頭文件,不再需要去找解析XML、連接數(shù)據(jù)庫、Socket 的各種第三方庫,這些 Qt 都已經(jīng)內(nèi)置了。Qt 是應(yīng)用程序開發(fā)的一站式解決方案!Qt 雖然龐大,封裝較深,但它的速度并不慢,雖不及MFC,但比Java、C#要快。Qt 程序最終會編譯成本地代碼,而不是依托虛擬機(jī)。?
  使用Qt開發(fā)的軟件,相同的代碼可以在任何支持的平臺上編譯與運(yùn)行,而不需要修改源代碼。會自動依平臺的不同,表現(xiàn)平臺特有的圖形界面風(fēng)格。?
  Linux/X11:用于X Window System(如Solaris、AIX、HP-UX、Linux、BSD)。支持KDevelop和Eclipse IDE集成?
  Mac:用于Apple Mac OS X。基于Cocoa框架。支持Universal Binary。支持以Xcode編輯、編譯和測試。?
  Windows:用于Microsoft Windows。支持Visual Studio集成,也可以使用MinGW編譯?
  Embedded Linux:用于嵌入式Linux。可以通過編譯移除不常使用的組件與功能。通過自己的視窗系統(tǒng)QWS,不需依賴X Window System,直接寫入Linux幀緩沖。可以減少內(nèi)存消耗。并提供虛擬幀緩沖QVFb,方便在桌面系統(tǒng)上進(jìn)行嵌入式測試。?
  Windows CE / Mobile:用于Windows CE?
  Symbian:用于Symbian platform?
  Maemo/MeeGo:用于Maemo?
  Wayland:用于Wayland顯示服務(wù)器,Qt應(yīng)用程序可以在運(yùn)行時切換圖形后端,如X與Wayland。

4 Gtk+

  Gtk+?官網(wǎng),效果圖如下?
?

  Gtk+(GIMP Tool Kit,GIMP工具包)是一個用于創(chuàng)造圖形用戶接口的圖形庫。Gtk+是基于LGPL授權(quán)的,因此可以用Gtk+開發(fā)開放源碼軟件、自由軟件,甚至商業(yè)的、非自由的軟件,并且不需要為授權(quán)費或版權(quán)費花費一分錢。Gtk已在大量軟件項目,包括Gnome中得到了廣泛應(yīng)用。?
  Gtk+圖形庫使用一系列稱為“構(gòu)件”的對象來創(chuàng)建應(yīng)用程序的圖形用戶接口。它提供了窗口、標(biāo)簽、命令按鈕、開關(guān)按鈕、檢查按鈕、無線按鈕、框架、列表框、組合框、樹、列表視圖、筆記本、狀態(tài)條等構(gòu)件。可以用它們來構(gòu)造非常豐富的用戶界面。?
  GTK本質(zhì)上是面向?qū)ο蟮膽?yīng)用程序編程接口(API)。GObject 也就是這種面向?qū)ο蟮臋C(jī)制可以為 GTK+綁定很多種開發(fā)語言。雖然完全是用C寫成的,但它仍然是用類和回調(diào)函數(shù)(指向函數(shù)的指針)的方法實現(xiàn)的。因為Gtk+是用C語言編寫的,所以在開發(fā)Linux下的GUI程序時使用C語言是非常方便的。 在GTK下還可以使用圖形化編程工具Glade,一種GUI生成器,可以快速生成創(chuàng)建界面的C源程序。?
  自從Qt推出了嵌入式版本之后,雖然GTK+并非商業(yè)公司所發(fā)展,但也加緊腳步推出了GtkFB方案,其宗旨就是要為嵌入式系統(tǒng)推出一套基于GTK+的GUI解決方案。與Qt/Embedded類似,GtkFB也跳過X層直接與FrameBuffer溝通,因此也具有Qt/Embedded的幾項優(yōu)點,不過由于不是商業(yè)軟件,在發(fā)展的速度上較為緩慢。

5 OpenGUI

  OpenGUI官網(wǎng),效果圖如下?


  OpenGUI在Linux系統(tǒng)上存在已經(jīng)很長時間了。這個庫是用C++編寫的,只提供C++接口。OpenGUI基于一個用匯編實現(xiàn)的x86圖形內(nèi)核,提供了一個高層的C/C++圖形/窗口接口。OpenGUI提供了二維繪圖原語、消息驅(qū)動的API及BMP文件格式支持。OpenGUI功能強(qiáng)大,使用方便。OpenGUI 支持鼠標(biāo)和鍵盤的事件,在Linux上基于FrameBuffer或者SVGALib實現(xiàn)繪圖。由于其基于匯編實現(xiàn)的內(nèi)核并利用MMX指令進(jìn)行了優(yōu)化,OpenGUI運(yùn)行速度非常快。正由于其內(nèi)核用匯編實現(xiàn),可移植性受到了影響。通常在驅(qū)動程序一級,性能和可移植性是矛盾的,必須找到一個折衷。OpenGUI采用LGPL條款發(fā)布。OpenGUI比較適合于基于x86平臺的實時系統(tǒng),跨平臺的可移植性較差,目前發(fā)展較慢。

6 FLTK

  FLTK官網(wǎng),效果圖如下?
?
?
  FLTK,如同其名字所表達(dá)的:The Fast Light Toolkit,一個輕量級的GUI開發(fā)庫。但這輕量級并不代表功能的羸弱,相反,FLTK在具有基本的GUI功能之外,還擁有一些特殊的功能,比如跨平臺、內(nèi)置 OpenGL功能、速度更快、尺寸更小、協(xié)議(LGPL)寬松等。當(dāng)然,缺點也是有的,比如對于復(fù)雜的界面構(gòu)件支持不夠,資源支持的不足等。?
  FLTK的底層只提供一套完整的畫點、畫線功能,另外附帶了字體的顯示功能,但FLTK對字體的支持還很粗糙。?
  最大的缺點是:就是對非英文字體特別是中文的支持比較差,甚至是非常差,它不支持unicode編碼。需要到2.0版本才可能支持,還在開發(fā)當(dāng)中。

7 比較

7.1 MiniGUI和MicroWindows

  MiniGUI和MicroWindows均為自由軟件,但這兩個系統(tǒng)的技術(shù)路線卻有所不同。MiniGUI的策略是建立在比較成熟的圖形引擎之上,比如Svgalib和LibGGI,開發(fā)的重點在于窗口系統(tǒng)、圖形接口之上。而MicroWindows的開發(fā)重點則在底層的圖形引擎之上,所以可以對裸顯示器直接操作,而窗口系統(tǒng)和圖形接口方面的功能還稍有欠缺。比如說,MiniGUI有一套用來支持多字符集和多編碼的函數(shù)接口,可以支持各種的字符集,包括GB、BIG5、UNI-CODE等。

  Nano-X 的優(yōu)點?
  與Xlib實現(xiàn)不同,Nano-X仍在每個客戶機(jī)上同步運(yùn)行,這意味著一旦發(fā)送了客戶機(jī)請求包,服務(wù)器在為另一個客戶機(jī)提供服務(wù)之前一直等待,直到整個包都到達(dá)為止。這使服務(wù)器代碼非常簡單,而運(yùn)行的速度仍非常快;占用很小的資源。

  Nano-X 的缺點?
  1、聯(lián)網(wǎng)功能部件至今沒有經(jīng)過適當(dāng)?shù)卣{(diào)整(特別是網(wǎng)絡(luò)透明性);?
  2、還沒有太多現(xiàn)成的應(yīng)用程序可用;?
  3、沒有很多文檔說明而且沒有很好的支持?
  4、圖形引擎中存在許多低效算法,值得一提的是,該項目的許多控件是從 MiniGUI 中移植過去的,掃雷游戲也是從 MiniGUI 中移植過去的。由于該項目缺乏一個強(qiáng)有力的核心代碼維護(hù)人員,2010年Microwindows推出版本0.92后,該項目的發(fā)展開始陷于停滯狀態(tài)

  MiniGui優(yōu)點?
  將現(xiàn)代窗口和圖形技術(shù)帶入到嵌入式設(shè)備的MiniGUI,是一個非常適合于實時嵌入式設(shè)備的高效、可靠、可定制、小巧靈活的圖形用戶界面支持系統(tǒng),而且還有miniStudio集成開發(fā)環(huán)境?
  1、支持多種嵌入式操作系統(tǒng),具備優(yōu)秀的可移植性;?
  2、可伸縮的系統(tǒng)架構(gòu),易于擴(kuò)展;?
  3、功能豐富,可靈活剪裁;?
  4、小體積高性能間的最佳平衡;?
  5、廣泛的應(yīng)用領(lǐng)域。

  MiniGui缺點?
  1、對圖形設(shè)備的抽象層次太高。

名稱MiniGuiMicroWindows備注
廠商飛漫(中國)世紀(jì)軟件(美國)?
開發(fā)語言CC?
開源協(xié)議GPLMPL?
體系結(jié)構(gòu)類WIN32WIN32/Nano-X?
最新版本3.0.12(2012.01)0.92(2010.12)都很久沒有更新
資源占用最小500K100K~600K?
網(wǎng)上資源一般?
技術(shù)資料一般較少,官網(wǎng)有?
開發(fā)環(huán)境vim、eclipsevim、eclipse?
移植難度相同相同移植難度都不太大
復(fù)雜度?
學(xué)習(xí)難度應(yīng)用程序?qū)崿F(xiàn)類似
應(yīng)用范圍根據(jù)網(wǎng)上資料

  MiniGui支持系統(tǒng):Linux/uClinux、VxWorks、eCos、uC/OS-II、pSOS、ThreadX、Nucleus、OSE 等,同時還提供 Win32 平臺上的 SDK 開發(fā)包?
  MicroWindows支持系統(tǒng):Linux、RTOS、裸機(jī)、X Window、MSDOS、能夠在支持readpixel,writepixel,drawhorzline和drawvertline和setpalette的任何系統(tǒng)上運(yùn)行

7.2 QT和GTK+

  QT優(yōu)點?
  相對來說易學(xué):Qt封裝的很好,幾行代碼就可以開發(fā)出一個簡單的客戶端,Qt是面向?qū)ο蟮?#xff0c;Qt對于用戶開發(fā)而言是十分方便的,因為Qt良好的封裝機(jī)制令Qt的模塊化程度非常高并且可重用性好。?
  資料豐富:資料豐富能夠成倍降低學(xué)習(xí)成本,否則只能去看源碼,?
  漂亮的界面:Qt很容易做出漂亮的界面和炫酷的動畫?
  獨立安裝:Qt程序最終會編譯為本地代碼,不需要其他庫的支撐,?
  跨平臺:如果程序需要運(yùn)行在多個平臺下,同時又希望降低開發(fā)成本,Qt幾乎是必備的。?
  集成環(huán)境:Qt Creator為廣大開發(fā)者提供了免費而又友好的集成開發(fā)環(huán)境。

  QT缺點?
  庫很大,Qt庫如果不進(jìn)行裁剪的話,實在是太大了,Qt5中的icudt52.dll就有20多M?
  qt Embedded memeory requirememnts:

Architecture編譯器QtCoreQtGuiQtNetworkQtWebKit
最小正常最小正常最小正常最小正常
linux x86 g++GCC 4.2.41.7M2.7M3.3M9.9M653K1.1MN/A17M
linux arm g++GCC 4.1.11.9M3.2M4.1M11M507K1.0MN/A17M
linux mips g++ (MIPS32)GCC 4.2.42.0M3.2M4.5M12M505K1003KN/A?



  GTK+優(yōu)點?
  完全Cairo繪制:Cairo是什么?它是一個矢量的繪圖庫,GTK+2.8,Cairo才開始作為GTK的重要繪圖引擎,從來帶來矢量、抗鋸齒等特性?
  支持CSS的主題API,還支持簡單的動畫屬性?
  多點設(shè)備的支持,設(shè)計靈活、可擴(kuò)展?
  GObject Introspection:它讓GTK+的語言擴(kuò)展能力盡乎無限。以前,除了GTK+、GTKMM(C++)以外,還有一些動態(tài)語言的綁定,如Pygtk、perl-gtk。但這些實現(xiàn)是各種獨立的,維護(hù)成本非常高。但是GObject Introspection實現(xiàn)了GObject對象的統(tǒng)一調(diào)用,這意味著各種語言只要實現(xiàn)一個GObject Introspection的包裝,什么GTK+的API,都可以通過它來調(diào)用了。就像在Python里用ctype一樣,但是通過GI技術(shù),能像使用原生API一樣來使用這些C庫。目前為止,對GI支持比較好的已經(jīng)有Python、JavaScript了。GNOME 3.0的重要組件——GNOME Shell即是使用了JavaScript來實現(xiàn)其UI邏輯部分。

名稱QTGTK+備注
廠商Digia(芬蘭)GTK+ Team?
開發(fā)語言C++、QMLC、綁定其他語言?
開源協(xié)議GPL、LGPLLGPL?
體系結(jié)構(gòu)X Window、FramebufferX Window、Framebuffer?
最新版本5.9.1(2017.6.30)3.22.20(2017.9.4)都一直在更新
資源占用qt4.8資源占用見上表未知?
網(wǎng)上資源很多,視頻教程也有?
技術(shù)資料很多?
開發(fā)環(huán)境Fake Vim、Qt Creator、Visual Studiovim、eclipse?
移植難度比MicroWindows大?
復(fù)雜度復(fù)雜?
學(xué)習(xí)難度?
應(yīng)用范圍?

  QT支持系統(tǒng):Linux/X11、Mac、Windows、Android、IOS、Embedded Linux、Windows CE/Mobile、Maemo/MeeGo、Wayland,Qt 可以同時支持桌面應(yīng)用程序開發(fā)、嵌入式開發(fā)和移動開發(fā),覆蓋了現(xiàn)有的所有主流平臺?
  GTK+支持系統(tǒng):GNU/Linux and Unix、Windows、Mac OS X、X11、Win32、HTML 5、Wayland

?

總結(jié)

以上是生活随笔為你收集整理的嵌入式Linux常用GUI系统的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。