歡迎您光臨本站 登入註冊首頁

概述

   隨著移動終端設備的蓬勃發展,市場上出現了各式各樣的硬體設備和軟體平台。如何使業務的設計者從網路運營商中獨立出來以便設計出可以跨平台的應用程序,將其置於業務提供商(或……

    隨著移動終端設備的蓬勃發展,市場上出現了各式各樣的硬體設備和軟體平台。如何使業務的設計者從網路運營商中獨立出來以便設計出可以跨平台的應用程序,將其置於業務提供商(或設備生產商)的網路中,從而可供各種移動終端的用戶下載和安裝,目前這一模式已成為一種新型的商業模式。鑒於此,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上成功運行。


[admin via 研發互助社區 ] 基於GPRS的J2ME運行平台在嵌入式Linux下的實現已經有2075次圍觀

http://cocdig.com/docs/show-post-42226.html