女人被狂躁到高潮视频免费无遮挡,内射人妻骚骚骚,免费人成小说在线观看网站,九九影院午夜理论片少妇,免费av永久免费网址

當前位置:首頁 > 嵌入式 > 嵌入式軟件
[導讀]未來幾年,嵌入式Linux GUI將朝以下方向發(fā)展:第一,輕型、占用資源少,不希望建立在龐大累贅的、非常消耗系統(tǒng)資源的操作系統(tǒng)和GUI之上。第二,高性能、高可靠性,特別是工業(yè)實時控制系統(tǒng),對實時性的要求非常高,并且比起嵌入式系統(tǒng)來說,對GUI的要求也更高。第三,可配置,我們必須清楚的意識到,嵌入式系統(tǒng)是一種定制設備,它們對GUI的需求各不相同,有的系統(tǒng)只要求一些圖形功能,而有些系統(tǒng)要求完備的GUI支持,因此,GUI也必須是可定制的。

隨著Internet與網(wǎng)絡的迅速發(fā)展 并向家庭領域不斷擴展,使消費電子、計算機、通信(3C)一體化趨勢日趨明顯,嵌入式系統(tǒng)再度成為研究與應用的熱點。嵌入式實時Linux操作系統(tǒng)以價格低廉、功能強大又易于移植而正在被廣泛采用,成為新興的力量,如今隨著WAP手機、PDA、機頂盒、及DVD/VCD播放機已經(jīng)迅速普及,用戶對這些手持式設備的GUI提出了更高的要求,希望能看到像PC機才擁有的華麗美觀的GUI。GUI已經(jīng)成為了人與機器溝通的橋梁,嵌入式系統(tǒng)對GUI的需求越來越高,而這一切均要求有一個輕型、占用資源少、高性能、高可靠、可配置及美觀的GUI支持。

1 Java的圖形界面工具

Java技術對于服務器,個人電腦和嵌入式系統(tǒng)來說是一項偉大的技術。由于其具有跨平臺等特性。Java在服務器和桌面電腦方面的應用是非常成功的。然而在GUI方面,Java只用非常有限的一些特征去構建圖形用戶界面。其思想就是采用平臺無關的Java應用程序接口打包到不同的操作系統(tǒng)來開發(fā)本地圖形用戶界面,被稱之為抽象的窗口工具(AWT)。僅有普通的部件如文件域、文本區(qū)、選擇框、單選按鈕、列表框和按鈕被AWT支持,圖形和圖像的特性支持非常有限,也就是說,只足夠構建簡單的applet程序。認識到需要更高級的圖形用戶界面組件和圖形能力,Sun公司開發(fā)了Swing,Java 2D,Java3D,圖像的輸入/輸出,以及Java高級圖像(JAI)。Swing是用來構建Java圖形界面的標準API(應用程序接口),一些AWT類由Swing基礎而來。它有一套完全的組件從按鈕到文件域、表格、樹型和文件編輯器。這些組件不依賴于操作系統(tǒng)本地的部件,而是用原始的圖形像直線、矩形、文字畫出。這種畫代表感觀插件,它能夠模仿本地的感觀。SWT是基于Java開發(fā)的,它的設計理念是最大化了操作系統(tǒng)的圖形構件的API,就是說只要操作系統(tǒng)提供了相應圖形的構件,那么SWT只是簡單應用JNI技術調(diào)用它們,只有那些操作系統(tǒng)中不提供的構件,SWT才自己去做一個模擬的實現(xiàn)。另外SWT還提供對操作系統(tǒng)本地圖形用戶界面的直接訪問,因此,基于SWT的Java應用程序擁有本地的圖形用戶界面并且可以和本地別的應用程序和部件集成在一起。使用SWT開發(fā)包,簡單、跨平臺、可靠等這些Jaya語言本身所具有的優(yōu)點正漸漸融合到圖形界面的應用程序開發(fā)中去。Java語言的另一扇成功之門正在逐漸打開。

2 SWT+GtkFB圖形系統(tǒng)的體系結(jié)構

2.1 SWT+GtkFB圖形系統(tǒng)的體系結(jié)構


2.1.1 SWT

SWT處于體系機構的最上層,它與Java內(nèi)的AwT和Swing同屬于設計圖形界面所需的高級函數(shù)庫。而且SWT針對AWT 以及Swing的一些問題作了改善,如今它已發(fā)展成一套與作業(yè)系統(tǒng)無關的圖形元件函數(shù)庫。在元件的產(chǎn)生方面采用了適當?shù)哪M,在基本的元件方面是采用原有作業(yè)系統(tǒng)的,對于較復雜的元件才用仿真的技術?;赟WT的Java應用程序擁有本地的圖形用戶界面,并且可以和本地別的應用程序,以及部件集成在一起。

SWT是基于Java語言開發(fā)出來的高級圖形元件庫,如圖2所示SWT在Java端通過JNI(Java Native InteRFace)技術直接調(diào)用native端的GtkFB來使用操作系統(tǒng)的資源,JNI技術使得SWT程序可以與其他語言編寫的Native端的代碼互相協(xié)作,將它們整合在一起;另一方面可使運行在JVM(JAava虛擬機)中的SWT代碼調(diào)用GtkFB庫函數(shù)或其他程序;此外利用Invocation API,可將Java虛擬機嵌入到native端的應用中。JNI這個接口是雙向的,相當于橋梁和紐帶,它將SWT代碼和native端的GtkFB代碼連接起來。


2.1.2 Gtk庫

如圖1所示,GTK會用到幾個連接庫,如基本數(shù)據(jù)類型用的Glib庫,它是由基礎類、核心應用支持類、實用功能類、數(shù)據(jù)類和對象系統(tǒng)類五個部分組成的。

Pango是用于國際化文本的布局和顯示的全功能框架。Pango可以處理以非從左到右方向排列的文本,并且可以容易地管理復雜語言,甚至還可以處理根據(jù)使用環(huán)境而采用不同形式的信函。例如它支持雙向文本,用戶可以將從左到右的文本和從右到左的文本混合編排;還可有用于確定各種復雜文本(如阿拉伯語和泰米爾語)形狀的插件。Pango不僅僅是國際化,而且Pango庫在Xft和XRender的支持下能很好地處理抗鋸齒字體文本的顯示。

Pango還支持各種圖形格式如libpng,libjpeg,libtiff和Framebuffer port用的FreeType等。實際上GTK提供gdk-pixbuf,gdk和gtk三個連接庫,其中Gdk-pixbuf讓我們可做相關的圖像工作,gdk是窗口繪圖系統(tǒng)的抽象層,framebuffer相關的工作大部分在此完成,而gtk則是高層的應用程序接口。

Atk(Accessibility Toolkit)可訪問性工具箱。GTK充分利用ATK使殘障人士(如視力低下或行動不便)與GTK應用程序交互成為可能。

2.1.3 GtkFB的工作原理

DirectFB訪問圖形硬件設備依賴于操作系統(tǒng)提供的內(nèi)核接口,即幀緩沖設備(FrameBuffer)。FrameBuffer實際上是用一塊硬件來做顯卡和軟件之間的橋梁,Linux的內(nèi)核將其開放出來,使用戶的程序可以通過塊內(nèi)存來存取顯卡。例如設定顯示分辨率和色彩數(shù)、存取顯示內(nèi)存區(qū)等。不同的Linux需要提供針對不同顯示硬件FrameBuffer的驅(qū)動程序,這就是說DirectFB需要運行于FramBuffer之上,然而Linux內(nèi)核提供了常見芯片的FrameBuffer驅(qū)動。

當一個應用程序連接到GtkFB時會調(diào)用gtk_init(),如圖3所示,此時GtkFB 啟動Linux的Framebiffer,設定分辨率和色彩數(shù),接下來打開鍵盤和鼠標等外設(PDA打開按鍵和觸控屏幕).然后到特定目錄去讀取字型,最后對窗口和事件管理作初始化操作。GtkFB可以支持8、16、24、32bpp的framebuffer。

為了執(zhí)行一個特定的圖形操作,DirectFB芯片驅(qū)動程序?qū)⒃L問圖形設備內(nèi)存映射的I/O端口,并且把命令傳遞到圖形設備卡的加速引擎。實際的硬件加速是完全在用戶空間內(nèi)完成的。

2.2 SWT+GtkFB圖形系統(tǒng)的優(yōu)點

2.2.1 內(nèi)存消耗小、運行速度快特別適合嵌入式產(chǎn)品

由于GtkFB直接運行在FrameBufer之上,跳過X系統(tǒng),這樣省下了X Server這一部分資源,這使得在內(nèi)存消耗、運行速度上得到顯著提高。另外采用的JNI技術使得程序運行速度、事件的響應有較高的提高,能滿足時間要求較為嚴格的實時應用場合。

2.2.2 系統(tǒng)穩(wěn)定性好

SWT 的穩(wěn)定性,關鍵是源于SWT 的設計理念。SWT最大化了操作系統(tǒng)的圖形構件API,就是說只要操作系統(tǒng)提供了相應圖形的構件,那么SWT只是應用JNI技術調(diào)用它們,只有那些操作系統(tǒng)中不提供的構件,SWT才自己去做一個模擬的實現(xiàn)??梢钥闯鯯WT性能上的穩(wěn)定很大程度上取決于相應操作系統(tǒng)圖形構件的穩(wěn)定性。

2.2.3 易于移植和共享

SWT的API和桌面版完全相同,因而代碼可以很容易地在桌面和嵌入式設備之間移植與共享。

2.2.4 小巧可配置

SWT采用了LGPL授權方式,用戶可以自由地甚至是鼓勵修改源代碼使其更加滿足用戶的需求,很容易根據(jù)用戶的需求來裁減特定的SWT+GtkFB,依據(jù)LGPL許可證,用戶需要公布修改的源代碼,但用戶不必公布自給應用程序的源代碼。

2.2.5 易于開發(fā)

SWT是基于Java語言開發(fā)的,具有平臺獨立性、面向?qū)ο蟆⒖梢浦?、安全等Java語言所擁有特點。用戶可以很容易的基于SWT提供的Widget(構件)開發(fā)出滿足自己需要的Widget,而且很容易地使用這些Widget去構建應用程序。

3 SWT+GtkFB圖形系統(tǒng)的實現(xiàn)

 3.1 前期準備

在Linux編譯和安裝SWT+GtkFB,首先到http://www.gtk.org/download下載如下的包:pkg-config、glib2.x;atk、pango、DirectFB、gtk+2.x。其次到http://www.eclipse.org/download下載swt.tgr.gz。

下一步就是在/home/XXX/目錄下創(chuàng)建SWT 和GTK兩個目錄并且設置環(huán)境變量。如下:

export SWT_HOME=/home/XXX/SWT

export SWT_HOME=/home/XXX/GTK

export PKG_CONFIG_PATH=$GTK_HOME /lib/pkgconfig

export LD_LIBRARY_PATH=$GTK_HOME/lib;$LD_LIBRARY_PATH

此外增加“/home/XXX/GTK/bin”到系統(tǒng)的環(huán)境變量PATH下。

3.2 編譯和安裝Gtk+2.0

3.2.1 編譯和安裝pkg-config

tar zxvf glib-2.0.6.tar.gz -C $GTK_HOME/src

cd $GTK HOME/src/glib-2.0.6

./configure --prefix=$GTK_HOME

make


make install

3.2.2 編譯和安裝atk

tar zxvf atk-1.0.1.tar.gz -C $GTK_HOME/src

cd $GTK_HOME/src/atk-1.0.1

./configure --prefix=$GTK_HOME

make

make install

3.2.3 編譯和安裝pango、Direct FB、gtk+2.0 、swt-forgtk2.2

步驟類似atk的安裝。

4 嵌入式Linux GUI的應用前景展望

嵌入式Linux GUI的應用領域很多,既可以用于家電市場,還可以用于商業(yè)市場、工業(yè)及自動化市場、國防市場、通訊市場等。例如,在通訊市場,手機、可視電話、機頂盒等可能成為嵌入式Linu.x的運行平臺,一個人性化的用戶界面是贏得消費者關鍵因素。因此嵌入式Linux圖形系統(tǒng)將擔任著更加重要的角色。

未來幾年,嵌入式Linux GUI將朝以下方向發(fā)展:第一,輕型、占用資源少,不希望建立在龐大累贅的、非常消耗系統(tǒng)資源的操作系統(tǒng)和GUI之上。第二,高性能、高可靠性,特別是工業(yè)實時控制系統(tǒng),對實時性的要求非常高,并且比起嵌入式系統(tǒng)來說,對GUI的要求也更高。第三,可配置,我們必須清楚的意識到,嵌入式系統(tǒng)是一種定制設備,它們對GUI的需求各不相同,有的系統(tǒng)只要求一些圖形功能,而有些系統(tǒng)要求完備的GUI支持,因此,GUI也必須是可定制的。

本站聲明: 本文章由作者或相關機構授權發(fā)布,目的在于傳遞更多信息,并不代表本站贊同其觀點,本站亦不保證或承諾內(nèi)容真實性等。需要轉(zhuǎn)載請聯(lián)系該專欄作者,如若文章內(nèi)容侵犯您的權益,請及時聯(lián)系本站刪除。
換一批
延伸閱讀

LED驅(qū)動電源的輸入包括高壓工頻交流(即市電)、低壓直流、高壓直流、低壓高頻交流(如電子變壓器的輸出)等。

關鍵字: 驅(qū)動電源

在工業(yè)自動化蓬勃發(fā)展的當下,工業(yè)電機作為核心動力設備,其驅(qū)動電源的性能直接關系到整個系統(tǒng)的穩(wěn)定性和可靠性。其中,反電動勢抑制與過流保護是驅(qū)動電源設計中至關重要的兩個環(huán)節(jié),集成化方案的設計成為提升電機驅(qū)動性能的關鍵。

關鍵字: 工業(yè)電機 驅(qū)動電源

LED 驅(qū)動電源作為 LED 照明系統(tǒng)的 “心臟”,其穩(wěn)定性直接決定了整個照明設備的使用壽命。然而,在實際應用中,LED 驅(qū)動電源易損壞的問題卻十分常見,不僅增加了維護成本,還影響了用戶體驗。要解決這一問題,需從設計、生...

關鍵字: 驅(qū)動電源 照明系統(tǒng) 散熱

根據(jù)LED驅(qū)動電源的公式,電感內(nèi)電流波動大小和電感值成反比,輸出紋波和輸出電容值成反比。所以加大電感值和輸出電容值可以減小紋波。

關鍵字: LED 設計 驅(qū)動電源

電動汽車(EV)作為新能源汽車的重要代表,正逐漸成為全球汽車產(chǎn)業(yè)的重要發(fā)展方向。電動汽車的核心技術之一是電機驅(qū)動控制系統(tǒng),而絕緣柵雙極型晶體管(IGBT)作為電機驅(qū)動系統(tǒng)中的關鍵元件,其性能直接影響到電動汽車的動力性能和...

關鍵字: 電動汽車 新能源 驅(qū)動電源

在現(xiàn)代城市建設中,街道及停車場照明作為基礎設施的重要組成部分,其質(zhì)量和效率直接關系到城市的公共安全、居民生活質(zhì)量和能源利用效率。隨著科技的進步,高亮度白光發(fā)光二極管(LED)因其獨特的優(yōu)勢逐漸取代傳統(tǒng)光源,成為大功率區(qū)域...

關鍵字: 發(fā)光二極管 驅(qū)動電源 LED

LED通用照明設計工程師會遇到許多挑戰(zhàn),如功率密度、功率因數(shù)校正(PFC)、空間受限和可靠性等。

關鍵字: LED 驅(qū)動電源 功率因數(shù)校正

在LED照明技術日益普及的今天,LED驅(qū)動電源的電磁干擾(EMI)問題成為了一個不可忽視的挑戰(zhàn)。電磁干擾不僅會影響LED燈具的正常工作,還可能對周圍電子設備造成不利影響,甚至引發(fā)系統(tǒng)故障。因此,采取有效的硬件措施來解決L...

關鍵字: LED照明技術 電磁干擾 驅(qū)動電源

開關電源具有效率高的特性,而且開關電源的變壓器體積比串聯(lián)穩(wěn)壓型電源的要小得多,電源電路比較整潔,整機重量也有所下降,所以,現(xiàn)在的LED驅(qū)動電源

關鍵字: LED 驅(qū)動電源 開關電源

LED驅(qū)動電源是把電源供應轉(zhuǎn)換為特定的電壓電流以驅(qū)動LED發(fā)光的電壓轉(zhuǎn)換器,通常情況下:LED驅(qū)動電源的輸入包括高壓工頻交流(即市電)、低壓直流、高壓直流、低壓高頻交流(如電子變壓器的輸出)等。

關鍵字: LED 隧道燈 驅(qū)動電源
關閉