新聞中心

        EEPW首頁 > 嵌入式系統 > 設計應用 > 基于GTK+和X-window的GUI在嵌入式Linux中的應用

        基于GTK+和X-window的GUI在嵌入式Linux中的應用

        作者: 時間:2012-04-05 來源:網絡 收藏

          在嵌入式系統應用日益發展的今天,越來越多的應用都需要使用到 來進行開發,以此來獲得更好的交互性。

          嵌入式 Linux 下 的選擇,對大多數開發人員來說是一個需要權衡對比的過程。選擇 + 運行在 X 系統上,然后 X 系統運行在嵌入系統的 framebuffer 上,這會是一個很好的選擇。

          + 與 X 的優點

          當然,+ 與 X 一般都是被大家考慮為體積較大的桌面系統的好搭配,但實際上對于嵌入系統來說,它也有著諸多的優點:

          1、 系統與 GTK+ 都非常穩定可靠, 系統是經歷了長期的開發及應用實踐的,GTK+ 也是一個比較成熟的開放源代碼項目;

          2、 系統是一個靈活的 client/server 的模型結構,一個應用客戶端的崩潰不會影響到圖形系統的其他部分,這是一個很重要的特性,它有利于支持第三方應用的擴展開發,而不影響到主體部分;

          3、 GTK+有兩個重要的庫:GDK和GLIB。GDK抽象了底層的窗口管理,要移植 GTK+ 到另一個不同的窗口系統的話,我們只需要移植 GDK 就可以了。GLIB 是一個工具集合,它包括了數據類型,各種宏定義,類型轉化,字符串處理,任何應用程序都可以鏈接這個 GLIB 庫,使用其中的各種數據類型、方法,來避免重復代碼,或者說避免開發人員重新發明輪子,這樣有利于減少整個系統的尺寸;

          4、 對 GTK+/X 的裁剪是很容易的,它們有著很好的可配置的選項,有著清晰的代碼結構,可以保證安全正確地去掉大段的不需要的代碼;

          5、 GTK+ 有著大量的應用,GTK+ 已經被用在了很多重要的應用系統中;

          6、 GTK+ 的授權是 LGPL 方式的,X 是 non-copyleft free license 的,第三方開發的系統都能與它們進行鏈接;

          7、 GTK+/X 二者都是基于 C 代碼的,而不是C++;

          8、 GTK+ 使用 C 來實現了面向對象的架構;

          其他 系統

          其他可以選擇的圖形系統包括:Qt/Embedded,FLTK 和 Microwindows。

          1、 Qt/E 是其中較高級的,它是一個完整的,基于 framebuffer 的 GUI 系統,由 Trolltech 公司開發;

          2、 Qt/E 有著高效的圖形渲染效果,還包括 TrueType 字體系統,及 alpha blending 半透明處理;

          3、 但 Qt/E 不是使用 LGPL 授權方式,而是使用兩種授權方式:開發使用 GPL,而商用需要授權與版稅;

          4、 Qt/E 是用 C++ 編寫的;

          5、 Qt/E 非常大,一個 iPAQ QPE 就包括了 3.3MB 的 Qt/E 庫和一個 718KB 的 QPE 庫(和 Xlib 類似的一種庫);

          6、 Qt/E 不夠穩定,QPE demo 不錯,但出現過崩潰;

          7、 FLTK (the Fast Light Toolkit) 是一個小型的 GUI 圖形系統,它也是用 C++ 寫的,特性太少,應用范圍較少,不夠成熟;

          8、 Microwindows 和 X-Window 相比也是一個不錯的選擇,它占用大約 100KB-600KB 大小的內存,和文件存儲空間,雖然已經有了一個其上的 GTK+ 移植,但還是不夠成熟;

          X-window:比你想象的要小很多

          對于X-window系統,廣大的網絡開發者已經做了大量的工作來減小其的尺寸,最知名的有TinyX??梢酝ㄟ^對不需要的代碼的裁剪及去除XLIB中靜態數據來減少總體的尺寸,如:color管理系統,弧形,粗線條等。


        上一頁 1 2 3 下一頁

        評論


        相關推薦

        技術專區

        關閉
        主站蜘蛛池模板: 龙南县| 宜章县| 上蔡县| 名山县| 和龙市| 开原市| 年辖:市辖区| 武汉市| 靖西县| 华蓥市| 界首市| 札达县| 页游| 海南省| 安溪县| 固始县| 吉首市| 台前县| 黑水县| 清远市| 沅陵县| 蛟河市| 平定县| 洛隆县| 白玉县| 灌云县| 盐山县| 北流市| 凤山县| 呼伦贝尔市| 贵德县| 尤溪县| 西乌| 佛山市| 叶城县| 福州市| 宾阳县| 新竹县| 卢湾区| 青神县| 长顺县|