999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

嵌入式系統中Java AWT的實現

2014-07-31 16:40:46齊慧平
赤峰學院學報·自然科學版 2014年13期
關鍵詞:嵌入式系統

齊慧平

(臨汾職業技術學院, 山西 臨汾041000)

嵌入式系統中Java AWT的實現

齊慧平

(臨汾職業技術學院, 山西 臨汾041000)

隨著信息技術的飛速發展,21世紀成為了信息時代.各種數字化產品不斷涌現,成為了當前信息處理的主要工具。微處理器作為數字化產品的核心,在手機、個人電腦、電視機等等產品中有著廣泛的應用,使得大部分產品都可以與網絡相連接.通過網絡連接起來的設備之間的硬件體系和操作系統是不相同的,Java可以通過創建與平臺無關的程序來解決設備之間軟硬件體系的不兼容問題.Java的這種功能主要是由Java虛擬機實現的.本文將詳細剖析Java虛擬機內部實現機制,并著重分析如何在嵌入式系統中實現Java AWT技術.

嵌入式;Java虛擬機;Java AWT技術

1 Java虛擬機

Java虛擬機作為Java體系結構的核心部分,是一種抽象意義上的計算機,這是因為Java虛擬機所必須實現的每一特點都是由Java虛擬機規范所定義的.Java虛擬機在體系中的主要任務在于裝載class文件,并且執行其中的字節碼.Java通過本地連接的方法能夠與底層操作系統和函數庫進行交互,同時還能為上層的Java應用程序提供符合規定的應用程序接口.

Java虛擬機為Java應用程序提供了需要的基礎類庫和抽象圖形工具包,二者結合形成了Java API的集合.Java虛擬機的內部封裝了與平臺有關的操作,而Java的應用程序不直接操作底層的函數庫,因此Java程序與平臺無關.

2 嵌入式系統中Java ATW的實現

要想在嵌入式系統中實現Java ATW,需要逐步實現以下幾個步驟:

2.1 Java虛擬機欲運行的軟件和硬件平臺

要想在嵌入式系統中實現Java虛擬機,需要全面考慮以下幾個方面的影響.首先是Java虛擬機運行平臺的CPU類型和操作系統以及運行時所占用的資源,比如Java虛擬機運行時內存的使用情況、Java類庫的大小以及可執行映像的大小等等.其次要考慮到Java虛擬機是否提供API圖形,如果提供的話,虛擬機又需要用什么圖形庫來支持.最后,要考慮到Java虛擬機所提供的應用程序接口與Java規范是否相符,如果相符,又該如何選擇規范標準.除了這些因素之外,還應考慮Java虛擬機運行平臺提出的要求,下面以Wonka運行目標平臺為例,講述Java虛擬機運行的軟件和硬件平臺.

2.1.1 Java虛擬機運行的軟件平臺

由于Java虛擬機是直接與底層的操作系統和函數庫打交道,因此Java虛擬機的軟件平臺就是由操作系統和函數庫構成.除此之外,Java虛擬機運行的嵌入式系統的軟件平臺還應該具有以下特征:首先操作系統的源代碼具有開放性,從而使虛擬機能夠充分操作系統中的各種功能.其次目標平臺上需要提供專門面向嵌入式系統的圖形庫,從而使得AWT的實現更加便利,比如QT/Embedded.最后可以通過設備文件來訪問設備驅動程序,從而使得AWT可以直接通過操作FrameBuffer來實現.

2.1.2 Java虛擬機運行的硬件平臺

為了使Java虛擬機的功能變得更加強大,需要一個強大的硬件平臺來支撐.Java虛擬機運行的硬件平臺應該包括以下幾點重要特征:

①內存64M;②32M快閃存儲器;③能夠通過網卡和網絡連接;④CPU選用PXA250芯片,從而能夠與ARM架構V5TE兼容,頻率可達到200-400HZ.這些特點決定了Java虛擬機的功能的豐富性,比一般嵌入式系統要優越得多.

2.2 Java虛擬機的選擇

實現AWT的基礎是選擇一個合適的Java虛擬機,因此必須要慎重考慮.綜合考慮各方面的因素,我們可以選擇一種叫作Wonka面向嵌入式系統的Java虛擬機.由于Wonka的源碼是公開的,因此符合嵌入式系統的需求.選擇Wonka,是因為其具有以下的優點:

①Wonka設計的最初目的就是面向嵌入式系統的. Wonka是起源于歐洲,其代碼不僅能夠支持Linux操作系統,還能支持ARM體系中的CPU.因此,可以根據目標平臺的特點,將Wonka移植到目標平臺上.②Wonka是一種符合GPL精神的自由軟件,因此可以對其源代碼進行開發利用.③Wonka運行時在嵌入式系統中所占用的內存大小不大,一般在1-2M之間,滿足了嵌入式系統的需求.④Wonka系統是一個能夠與Java2兼容的Java虛擬機,這樣不僅可以提供AWT圖形是,同時還能在AWT圖形庫的基礎上實現SWING圖形庫.當前網絡上的大部分Java資源與Java2能夠兼容.⑤Wonka的可移植性非常強,能夠支持不同類型的CPU體系結構,比如X86和ARM,同時能夠支持Linux系統.

由于當前關于Wonka軟件使用性能評估的資料很少,因此支持Wonka的用戶不多,比知名的KAFFEJava虛擬機要少很多,其應用還沒有得到廣泛的推廣.但是由于有學者在掌上電腦中成功實現了Wonka,因此有一部分人正在嘗試在嵌入式系統中使用Wonka.

2.3 Wonka Java虛擬機的內部執行流程

Wonka Java虛擬機的內部執行流程可以簡單地用圖1來表示.

圖1 Wonka內部執行流程

Wonka所實現的主要功能如下:

2.3.1 Main函數

最初主線程Main函數主要實現了以下功能:第一,可以為Java虛擬機的運行分配所需要的空間,空間的大小由用戶的要求決定,如果沒有要求,Wonka就會使用默認值.第二,可以對CPU和Java虛擬機內部的定時器中斷服務程序進行初始化.Wonka內部的線程可以切換,同時還提供了軟定時器.為了對軟定時器的時間進行判斷,需要在定時器中斷服務程序中進行線程的切換.如果軟定時器的時間到了,中斷服務程序就會向timer線程發送一條消息,timer線程就會對該程序進行相應的處理.第三,通過系統調用setitimer,就可以啟動Wonka內部的定時器.系統每隔一定的時間就會向當前的進程發送一個sigalrm信號,如果將中斷服務程序注冊為該信號的信號處理程序,就可以每隔一段時間執行一次中斷服務程序.

2.3.2 初始線程

Wonka內部創建的第一個線程就是初始線程.首先,初始線程創建了timer線程將其置為就緒狀態,timer線程能夠處理Java虛擬機內部以及用戶創建的軟定時器.其次,初始線程啟動了Java虛擬機.

2.3.3 加載基本類

Wonka執行用戶的應用程序的前提條件是加載基本類.這里的基本類是指在所有應用程序在運行期間都會用到的類.Java.lang.Object是所有類的祖先類,Java虛擬機會為每一個加載的類創建一個Java.lang.Class實例,因此首先必須加載這兩個類.

2.3.4 加載AWT基本類

加載AWT基本類與加載基本類相類似,知識加載一些與AWT相關的基本類.AWT應用程序的運行需要有基本AWT類來作為支持.在AWT應用程序運行之前,需要將所有事件類的祖先java.awt.AWTEvent和所有圖形類的祖先java.awt.Image加載到Java虛擬機中.

2.4 實現AWT技術的總體構思

2.4.1 實現步驟

①實現Java虛擬機與底層圖形庫之間的接口.該接口能夠實現兩種類型數據的傳輸.首先Java虛擬機將所需要顯示的數據通過接口傳送底層圖形庫,底層圖形庫接收到數據之后就會顯示出來.其次底層圖形庫接收鍵盤以及觸摸筆事件之后,通過接口將這些數據反饋給Java虛擬機,Java虛擬機根據接收的信息作出相應的處理.

②構建符合J2ME(Java 2 Micro Edition,Java 2的微型版本)規范的AWT類庫.小的消費類電子的內存很小,用戶接口受到了限制.為了滿足小的消費類電子產品,J2ME應運而生.在J2ME規范中,將Java技術的實現分為了兩個部分,即配置層和框架層.框架層又可以細分為基礎框架層和特定框架層.嵌入式系統中AWT實現的規范在特定框架層給出.

2.4.2 事件查詢方案

當Wonka檢測到當前的運行程序中需要使用AWT時,就會創建一個新的線程.這個新的線程主要通過接收觸摸筆事件和按鍵事件來顯示圖形.為了執行這個線程,需要專門編寫一個Dispatcher.java文件,具體程序如下:

public void start(){ if(!keepOnGoing){

keepOnGoing=true;

thread=new Thread(this“Rudolph”); thread.setPriority(priority); thread.setDacmon(false); thread.star();

}

}

2.4.3 圖形圖像顯示方案

為了能夠顯示圖形圖像,需要編寫一個Painter.java文件,并創建一個新的線程.

public void start(){ if(!keepOnGoing){

keepOnGoing=true;

thread=new Thread(this,“Display”); thread.setPriority(priority); thread.setDaemon(false); thread.start();

}

}

語句“thread=new Thread(this,“Display”)”創建圖形圖像顯示線程.在Java虛擬機內部啟動上面的兩個線程之后,還要利用底層提供的圖形接口實現mouse-poll、keyboard-poll和screen-update三個函數,才能實現圖形圖像的顯示.

〔1〕鐘聲,趙容彩.JAVA語言中本地方法的設計與實現[J].信息工程大學學報,2000,1(1).

〔2〕李亞東,等.基于JNI的跨平臺軟件設計[J].計算機工程,2000,9(26).

〔3〕毛煒.面向領域的實時嵌入式中間技術研究[D].西北工業大學學位論文,2004.

〔4〕馬鐳.面向領域的實時嵌入式中間技術研究[D].西北工業大學學位論文,2004.

〔5〕楊燦群,等.Java語言環境事實技術探討[J].計算機工程與科學,2001,2(23).

〔6〕高百明,等.Java ATW的結構概覽與實現[J].計算機工程,1999,4(25).

TP31

A

1673-260X(2014)07-0023-02

猜你喜歡
嵌入式系統
Smartflower POP 一體式光伏系統
工業設計(2022年8期)2022-09-09 07:43:20
WJ-700無人機系統
ZC系列無人機遙感系統
北京測繪(2020年12期)2020-12-29 01:33:58
基于PowerPC+FPGA顯示系統
半沸制皂系統(下)
TS系列紅外傳感器在嵌入式控制系統中的應用
電子制作(2019年7期)2019-04-25 13:17:14
嵌入式系統通信技術的應用
電子制作(2018年18期)2018-11-14 01:48:16
搭建基于Qt的嵌入式開發平臺
連通與提升系統的最后一塊拼圖 Audiolab 傲立 M-DAC mini
嵌入式軟PLC在電鍍生產流程控制系統中的應用
電鍍與環保(2016年3期)2017-01-20 08:15:32
主站蜘蛛池模板: 国产成人亚洲日韩欧美电影| 久久黄色影院| 午夜一区二区三区| 国产一级妓女av网站| 欧美日韩精品在线播放| 亚洲丝袜第一页| 日本不卡在线播放| 日韩av无码精品专区| 欧美黄色网站在线看| 国产无遮挡猛进猛出免费软件| а∨天堂一区中文字幕| 伊人91在线| 污污网站在线观看| 亚洲中文久久精品无玛| 波多野结衣视频网站| 欧美精品一二三区| 日韩国产亚洲一区二区在线观看 | 亚洲午夜福利在线| 国产在线精彩视频论坛| 91麻豆国产在线| 天堂网亚洲综合在线| 亚洲精品动漫| 精品99在线观看| 亚洲精品综合一二三区在线| 亚洲va视频| 伦伦影院精品一区| 国产二级毛片| A级毛片无码久久精品免费| 国产自在线拍| 日韩无码视频专区| a级免费视频| 国产三级视频网站| 国产96在线 | 日韩欧美中文字幕在线韩免费| 亚洲另类国产欧美一区二区| 久久黄色一级视频| 真人高潮娇喘嗯啊在线观看| 91欧美亚洲国产五月天| 97国产精品视频自在拍| 国产情侣一区二区三区| 日韩毛片在线视频| 第九色区aⅴ天堂久久香| 久草视频中文| 99在线观看免费视频| 精品国产Av电影无码久久久| 99激情网| 国产婬乱a一级毛片多女| 亚洲一本大道在线| 呦女精品网站| 久久综合九九亚洲一区| 91麻豆国产视频| 亚洲国语自产一区第二页| 欧美视频二区| 91人人妻人人做人人爽男同| 午夜激情婷婷| 91成人在线观看视频| 国产特级毛片aaaaaa| 欧美亚洲激情| 乱系列中文字幕在线视频| www亚洲天堂| 国产精品三区四区| 亚洲精品视频免费看| 亚洲成a人片77777在线播放| 手机在线看片不卡中文字幕| 亚洲日韩精品无码专区| 国产精品999在线| 亚洲色成人www在线观看| www中文字幕在线观看| 国产精品人成在线播放| 国产成人AV男人的天堂| 无码丝袜人妻| 福利在线不卡| 精品国产自在在线在线观看| 国产成人免费| 色一情一乱一伦一区二区三区小说| 国产91精品调教在线播放| 亚洲综合九九| 浮力影院国产第一页| 国产男女XX00免费观看| 日本一区二区三区精品视频| 91精品国产91久久久久久三级| 亚洲中文无码av永久伊人|