1. gzyueqian
      13352868059
      首頁 > 新聞中心 > > 正文

      基于GPRS的J2ME運行平臺在嵌入式Linux下的實現

      更新時間: 2007-12-29 09:16:52來源: 粵嵌教育瀏覽量:820

        隨著移動終端設備的蓬勃發展,市場上出現了各式各樣的硬件設備和軟件平臺。如何使業務的設計者從網絡運營商中獨立出來以便設計出可以跨平臺的應用程序,將其置于業務提供商(或設備生產商)的網絡中,從而可供各種移動終端的用戶下載和安裝,目前這一模式已成為一種新型的商業模式。鑒于此,Sun公司在Java跨平臺特性的基礎上,提出可以保證在消費電子設備和嵌入式終端運行的Java 2 Micro Edition(J2ME)。
        目前關注J2ME的技術人員有兩類:

        應用程序設計者(如游戲程序員、移動商務設計人員等),必須保證他們設計的java程序符合J2ME規范;
      嵌入式設備生產商,必須保證他們生產的設備支持J2ME應用程序。
        目前大部分技術文獻主要集中討論前者,而涉及到后者的不多。但對嵌入式生產廠家來說,后者屬于產品的核心技術,因此本文的討論屬于第二類。
        本文提出了一種J2ME在嵌入式Linux操作系統中實現的方案,主要包括應用于移動電話、PDA等信息家電的KVM 1.1和MIDP 2.0的移植。解決了J2ME運行平臺中較難解決的中文化問題;實現了具有通過GPRS無線通信模塊上網,利用嵌入式瀏覽器ViewML瀏覽網頁,下載安裝并運行MIDlet程序等一系列功能的比較完整的J2ME運行平臺的方案,并且通過修改Tiny-X圖形平臺的驅動,實現了該J2ME運行平臺的觸摸屏輸入操作。

      1 J2ME平臺
        J2ME是Java 2標準版本的微型版本。支持各種各樣的消費類產品和嵌入式設備,如移動電話、PDA、互聯網可視電話、數字機頂盒、車載娛樂和導航系統、網絡交換設備以及信息家電等。J2ME是為了那些使用有限的能源、有限的網絡連接(通常是無線連接)以及有限圖形用戶界面能力的設備開發的。它初的目標是16位或32位處理器,16M 時鐘頻率,512KB或更少內存的設備。J2ME用配置(Configuration)來封裝虛擬機。配置由一個虛擬機和一組支持的核心API組成。配置層上面是配置文件(Profile)。在一個配置上面可以有多個不同的配置文件。配置文件是在配置的基礎上進一步細分一組特定設備,并定義一組支持這類設備的類庫。鑒于應用J2ME的硬件平臺有著較大的差異,所以根據硬件的差異分成兩類:CLDC(Connected Limited Device Configuration)與基于其上的Foundation Profile和Personal Profile,以及CDC(Connected Device Configuration)與基于其上的MIDP(Mobile Information Device Profile)。
        J2ME的CLDC包括K虛擬機(KVM)和一組核心類庫,主要是針對用戶接口簡單、內存較小、網絡運行時連時斷以及帶寬較窄的小型無線設備。其中KVM是JVM的一個實現,特別用于如移動電話、PDA等設備。關于J2ME的配置及配置文件間的關系,如圖1所示。
                           
                       圖1 J2ME的配置及配置文件間的關系
        MIDP具體定義了J2ME適用的硬件和軟件框架,并提供了這個框架要實現的基本功能及標準接口;應用開發者可以基于這個框架開發出各種應用。MIDP 2.0定義了一系列軟件接口,包括基本輸入/輸出、圖形用戶接口、網絡、事件機制、文件系統、應用管理系統、游戲接口、聲音輸出接口和安全機制。

      2 J2ME運行平臺的總體構建
        整個J2ME運行平臺的總體結構如圖2所示。系統采用三星S3C2410芯片作為CPU構建成接有觸摸屏和LCD的硬件系統;通過串口連接GPRS無線通信模塊,為無線上網提供硬件條件。
                           
                           圖2 J2ME運行平臺的總體結構
        軟件部分,以運行在后臺的Tiny-X圖形界面服務器為MIDP界面提供服務。在完成GPRS接入網絡的情況下,使用嵌入式瀏覽器ViewML來瀏覽網頁,選擇J2ME應用程序。選定應用程序后,調用MIDP下載并安裝J2ME應用程序。,在J2ME運行時環境運行J2ME程序。圖3顯示了這個流程。
                           
                           圖3 下載并運行J2ME應用

      2.1 Tiny-X
        Sun公司發布的MIDP參考實現是針對i386的,其圖形界面使用X Window。要使MIDP能夠運行在嵌入式系統中,我們必須對MIDP的圖形界面作相應的移植。在這里,我們使用Tiny-X。
        Tiny-X——“極小的X”,是一個為嵌入式系統而開發的緊縮型的X Window服務器。它由SuSE贊助支援開發,由XFree86的核心小組成員Keith Packard一手設計開發。Tiny-X的設計目標是讓系統在極少內存的情況下良好運行,并且 Tiny-X采用的DDX技術,使整個X系統能在內存接近不足的情況下,仍然能夠保持穩定正常的工作。Tiny-X極小的體積和內存占用量,非常適合作為嵌入式系統來使用。

      2.2 GPRS無線通信模塊
        GPRS無線通信模塊采用SIEMENS公司的MC35IT。該模塊支持GSM/GPRS協議、支持標準RS-232接口,用串口通過AT命令集可以實現對模塊的控制操作,實現短信、電話以及GPRS訪問網絡等功能。

      2.3 ViewML
        ViewML是個開放源代碼,專為嵌入式Linux平臺設計和開發的瀏覽器。該瀏覽器能夠在占用少量RAM和ROM資源的情況下使用一個高品質的顯示引擎。Century Software公司對ViewML界面不夠友好的缺點進行了改進,使之能夠適應PDA的顯示特點。

      2.4 觸摸屏支持
        要讓MIDP支持觸摸屏操作,實際上就是讓Tiny-X支持觸摸屏輸入。需要在編譯Tiny-X時,將觸摸屏的編譯選項選上。在這個基礎上,再對觸摸屏作坐標校正。
      經過這兩步,對Tiny-X交叉編譯,得到的Tiny-X服務器就能用觸摸屏對MIDP進行操作了。

      3 J2ME的移植
        Sun公司在其網站上提供了J2ME參考實現的源程序包,所謂J2ME的移植,就是依據本身目標平臺的特性作相應的修改,使之終能運行在目標平臺上。J2ME的移植包括KVM的移植和MIDP的移植。

      3.1 KVM移植
        系統使用的版本是1.1,其參考實現的文件名為j2me_cldc-1_1-fcs-src-winunix.zip。根據CLDC的移植說明文件所說,如果目標平臺有支持足夠的底層API的話,幾乎可以不用作任何修改,就可以將整個KVM直接移植到您的操作系統上。但在實現時,由于底層操作系統的特性不同,需要修改一下KVM的原始程序。這些特性包括:如何開啟文件檔案、如何動態取得內存、如何將窗口系統移植上去、如何處理不同CPU之問的特性、如何處理64bits運算等。
      在移植過程中,主要涉及的問題有:對64bits長整數的支持、浮點數的支持、Endianness特性的考慮、類路徑的問題、內存管理問題、圖形用戶接口問題、平臺規格及特性問題以及中文化問題等。

      3.2 MIDP移植
        系統使用的MIDP版本是2.0。Sun在網上發布的參考實現名字是midp.2_0-src-linux-i686.zip。MIDP定義了一系列適用于移動通信設備之上的Java軟件接口。其中,有很多與系統平臺相關的接口。所謂MIDP移植,基本的就是修改MIDP參考實現里面與系統平臺不匹配的接口。換言之,就是用目標系統平臺的API替換MIDP參考實現中與之不匹配的API,使MIDP能在目標平臺上正確地執行所有要求的功能。當然,移植還包括對MIDP性能的優化。
        MIDP由多個不同的模塊組成,包括事件處理、記錄管理系統(RMS)、圖形用戶接口、安全機制、網絡、應用管理系統(AMS)、OTA支持、Push Functionality、游戲接口以及I18N。這些模塊中,基本上分成兩層來實現:①Java層。用Java編程語言編寫,與平臺無關。這部分可以不用修改。②本地層。用C編程語言實現,與平臺相關。這部分用到的API如果與系統平臺提供的API不一致,就需要作修改。

      3.3 J2ME的中文化
        J2ME運行平臺的中文化問題是比較難解決的,包括KVM和MIDP的中文化。不過,這兩者的中文化均可以歸結為雙字節問題。在SUN發布的CLDC和MIDP源代碼中,并沒有考慮雙字節字符問題,這是它不支持中文的重要原因。另外,J2ME里面以Unicode字符來處理中文,需要考慮字符轉換,以實現字符處理的本地化。

      4 利用GPRS模塊實現接入互聯網
        中國移動在GPRS與Internet網中間建立了許多相當于ISP的網關支持節點(GGSN),以連接GPRS網與外部的Internet網。GPRS模塊可以通過撥"*99***1#"登錄到GGSN上動態分配到Internet網的IP地址。其問GPRS模塊與網關的通信要符合點對點協議(Point to Point Protocol,PPP),其中身份驗證時用戶名、密碼均為空。使用PPP協議登錄后,則可以通過GGSN接上Internet。
        若要通過GPRS模塊進行網絡連接和傳輸數據,則需要建立PPP連接。若要建立PPP連接,可以通過串口向GPRS模塊發送相關AT命令,進行撥號。chat和pppd是兩個可以實現撥號自動化的程序。chat程序的用途是撥號,啟動對方pppd并等待提示,根據提示輸入用戶名和密碼等登錄信息。pppd的用途是建立并維持與服務器的PPP連接,傳輸數據。
        使用GPRS模塊撥號上網過程如下:由本地pppd調用chat程序;chat程序負責撥號登錄,啟動服務器端的pppd。然后chat結束;由本地pppd與服務器端的pppd進行握手,建立PPP連接。
        系統瀏覽器使用嵌入式瀏覽器ViewML,通過對ViewML的源程序作一定的修改,把ViewML的瀏覽功能和MIDP的下載、安裝MIDlet程序功能結合起來,實現通過GPRS無線通信模塊上網,下載、安裝并運行MIDlet程序等一系列的功能。

      5 結束語
        本文描述了在嵌入式Linux下支持觸摸屏操作的J2ME運行平臺的設計和實現,主要包括系統的實現方式、J2ME的移植、互聯網接入等問題。該平臺已經在獨立研發的多功能PDA上成功運行。

      免費預約試聽課

      亚洲另类欧美综合久久图片区_亚洲中文字幕日产无码2020_欧美日本一区二区三区桃色视频_亚洲AⅤ天堂一区二区三区

      
      

      1. 在线亚洲欧美动漫一区二区 | 婷婷精品视频在线中文字幕 | 中文字幕不卡二区 | 亚洲欧洲∨国产一区二区三区 | 亚洲国产精品综合久久网络 | 五月天天爽天天狠久久久综合 |