【正文】
sage(String type)—— 創(chuàng)建一個無線消息實例對象。如果當前無線連接中沒有消息到達,調(diào)用這個方法將阻塞當前線程。 i n t e r f a c e M e s s a g e C o n n e c t i o n i n t e r f a c e M e s s a g e i n t e r f a c e M e s s a g e L i s t e n e r i n t e r f a c e T e x t M e s s a g e i n t e r f a c e B i n a r y M e s s a g e i n t e r f a c e M u l t i p a r t M e s s a g eS i z e E x c e e d e d E x c e p t i o n M e s s a g e P a r t 圖 無線消息 API 在實現(xiàn)手機收發(fā) 文本 信息的設(shè)計過程中,用到了以下接口: ( 1) MessageConnection 接口 MessageConnection 擴展了通用連接框架中的 Connection 接口,提供了發(fā)送( send)、接收( receive) 文本 消息和創(chuàng)建 文本 消息實例( newMessage)的方法。在該包中定義了 6 個接口、 2個類,描述了無線短消息連接接口和類型。但是 WMA規(guī)范使得這些底層的傳輸細節(jié)對于應(yīng)用程序開發(fā)變得透明。至于信息具體如何傳輸是依賴底層的網(wǎng)絡(luò)通信機制,底層的傳輸機制可以是 GSM SMS(Short Message Service,短消息服務(wù) )、 GSM CBS(Cell Broadcast Service,小區(qū)廣播服務(wù) )、 CMDA SMS 或者 MMS(Multimedia Message Service,多媒體信息服務(wù) )。 WMA 概述 無線消息接口 函數(shù) WMA 規(guī)范設(shè)計的目標是那些能夠發(fā)送和接收 文本信 息的手機及其他移動信息設(shè)備。 [12] 江蘇大學本科畢業(yè)論文 12 第 四 章 手機 文本信息的 發(fā)送 和 接收 發(fā)送和接收文本消息是開發(fā) WMA接口規(guī)范的最初目的。 (4)與企業(yè)應(yīng)用的無縫結(jié)合 隨著 J2EE 中間 服務(wù)器的流行, Java 已成為創(chuàng)建 Web 應(yīng)用程序的第一選擇。 (3)強大的內(nèi)置安全模型 Java 提供了多級安全性,從類裝載器、字節(jié)碼驗證器到安全管理器,都可以保護客戶系統(tǒng)免受不安全程序的傷害。采用 Java 技術(shù)后,編寫應(yīng)用程序和提供服務(wù)的人就不必關(guān)系接收其服務(wù)的手機采用的是什么樣的操作系統(tǒng)和芯片,移動設(shè)備只要滿足支持特定配置和簡表的約束,就可以運行這些 Java 應(yīng)用。 [8] J2ME 優(yōu)勢 作為一種 移動設(shè)備上開發(fā)平臺, J2ME 相對其他開發(fā)平臺具有以下優(yōu)勢。此外, CDC 規(guī)范和 CLDC 規(guī)范中也都定義了基本的 API 集合,這些 API 提供 Java 的基本功能,例如: 、 、 、 ,這些包就是定義于 CDC 和 CLDC 中。 [11] 事實上,雖然配置的開發(fā) 由 Sun公司領(lǐng)導,但是許多簡表規(guī)范仍將繼續(xù)由特殊設(shè)備的供應(yīng)商領(lǐng)導。目前針對無線領(lǐng)域的可選包有:Wireless Messaging API(JSR120)、 Mobile Media API(JSR135)等。 [8] 第四, J2ME 可選包。簡表為相同消費電子設(shè)備的不同生產(chǎn)廠商提供標準化的Java 類庫。 J2ME 針對的設(shè)備主要是嵌入式和消費類的設(shè)備,因為這些設(shè)備內(nèi)存的處理器的限制,所以 J2ME 所包含的類庫也比較小一些,虛擬機的功能也相對簡單。 第二, J2ME 虛擬機。 (3)規(guī)定了所支持的基本 Java 類庫及其 API。對配置的說明如下: (1)規(guī)定了所支持的 Java 編程語言特征。 [8] J2ME 中的應(yīng)用是針對某個特定的簡表所寫的,而簡表又是基于某個特定配置的擴展,因此配置的所有特征都自動包括進簡表,然后被針對這個簡表所寫的應(yīng)用所使用。 J2ME 支持的硬件平臺中有比較高端的設(shè)備,例如,電視江蘇大學本科畢業(yè)論文 10 機的機頂盒、網(wǎng)絡(luò)電視等;也有比較 低端的,像手機、尋呼機等。在 J2ME 中還有一個重要的概念是可選包( Optional Package) ,它是針對特定設(shè)備提供的類庫。運行環(huán)境的核心是 Java 虛擬機,運行于設(shè)備的主機 操作系統(tǒng)之上,在往上是具 體 的 J2ME配置,包括根據(jù)設(shè)備的資源需要提供基本功能的編輯庫。 (3)一些可選包,包括設(shè)備廠商提供的 API。 [9] J2ME 的體系結(jié)構(gòu) 中 定義了如下組件: (1)一組 Java 虛擬機,每種都用于不同的小型設(shè)備,滿足不同的需求。作為 Java 2 平臺的一部分, J2ME與 J2SE、 J2EE 一起,為無線應(yīng)用的客戶端和服務(wù)器 建立了完整的開發(fā)、部署環(huán)境。 J2ME 的基本概念 J2ME 是 Sun 公司推出的一個專門面向小型設(shè)備應(yīng)用的“簡易”平臺,這里的小型設(shè)備包括移動電話、個人數(shù)字輔助設(shè)備( PDA)、網(wǎng)絡(luò)電話、數(shù)字電視上的機頂盒、自動娛樂系統(tǒng)、導航系統(tǒng)、網(wǎng)絡(luò)交換以及家用自動電器等。 [7] 江蘇大學本科畢業(yè)論文 9 第 三 章 Java 2 Micro Edition 概述 本章 主要介紹有關(guān) Java 和 J2ME 編程的一些基本概念和體系結(jié)構(gòu),并闡述了J2ME 體系結(jié)構(gòu)、配置、 簡表以及優(yōu)勢 等具體內(nèi)容。因此根據(jù)套接字描述符就可以找到其對應(yīng)的套接字數(shù)據(jù)結(jié)構(gòu)。 每個進程的進程空間里都有一個套接字描述符表,該表中存放著套接字描述符和套接字數(shù)據(jù)結(jié)構(gòu)的對應(yīng)關(guān)系。 套接字描述符就是一個整數(shù)類型的值,在 Windows 中的類型是 SOCKET。形象上說套接字就是進程的門戶。應(yīng)用程序通過 WinSock API 設(shè)計通信程序, WinSock 利用網(wǎng)絡(luò)通信協(xié)議和操作系統(tǒng)調(diào)用完成實際的通信工作。另外, SecureConnection 接口支持用戶定義一個安全的 Socket 流連接。 ( 3) StreamConnection StreamConnection 接口定義了流連接所需的能力,可以提供輸入流和輸出流,實際上是 InputConnection 和 OutputConnection 接口的封裝。 ( 2) InputConnection 和 OutputConnection InputConnection 和 OutputConnection 接口分別定義了輸入流和輸出流連接所需要的能力。 C o n n e c t io nS t r e a mC o n n e c t io n N o t if ie rO u t p u tC o n n e c t io nI n p u tC o n n e c t io nD a t a g r a mC o n n e c t io nS e r v e r S o c k e t C o n n e c t ionS t r e a m C o n n e c t ionU D P D a t a g r a m C o n n e c t io nC o m m C o n n e c t io nC o n t e n t C o n n e c t io nS o c k e t C o n n e c t ionS e c u r e C o n n e c t io nH t t p C o n n e c t io n H t t p s C o n n e c t io nC o n n e c t io n N o t F o u n d E x c e p t io nC o n n e c t o r D a t a g r a m圖 GCF的繼承體系 江蘇大學本科畢業(yè)論文 8 在下面的實驗設(shè)計中,主要用到以 幾種接口 : ( 1) Connection Connection 接口是最基本的通用連接類型,它是所有連接接口的根源,即 包中的所有接口都是基于 Connection 接口的。該框架是由一組定義在 包中的接口和若干個類構(gòu)成。這一設(shè)計大大提高了通用連接框架的適應(yīng)性和擴充性,移動設(shè)備制造商可以根據(jù)需要在簡表中擴充連接框架來對特定協(xié)議提供支持。 MIDP Profile 所包括的網(wǎng)絡(luò)支持源于 CLDC 規(guī)范中的通用連接框架 GCF (Generic Connection Framework)。 [3] 3. 通用連接框架 GCF 對于手機而言,能夠進行網(wǎng)絡(luò)通信是一個基本要求,那么在進行手機程序設(shè)計時就需要將聯(lián)網(wǎng)方面的能力考慮進去。通過 JAD 還可以提高 MIDlet 屬性而不需要修改JAR。 每個 MIDlets 都可以存在一個可選的應(yīng)用程序描述文件 JAD(Application Descriptor)。為了保證安全性和 MIDlets 提供者的原始意圖,套件中的 MIDlet、類 (Class)和其它資源文件,都不能單獨安裝、更新或者刪除, 必須作為一個整體來操作。如 MIDletName 屬性指明了 MIDlets江蘇大學本科畢業(yè)論文 7 的名稱, MIDletVersion 屬性表示 MIDlets 的版本號等等。 清單文件包括一系列的 MIDlet 屬性,表示為冒號隔開的名字值對。除了 Java 類以外,其他文件諸如圖像和應(yīng)用程序數(shù)據(jù) (即通常所說的資源 ),也可能是這個程序包的一部分,另外還包括描述JAR 內(nèi)容的清單文件 ()。MIDlet 類實現(xiàn)了與 AMS 交互的大部分功能,只把狀態(tài)轉(zhuǎn)換時需要調(diào)用的startApp()、 pauseApp()、 destroyApp()3 個方法留給開發(fā)者實現(xiàn)。 AMS調(diào)用 destroyApp()方法或者 MIDlet 自身調(diào)用 notifyDestroyed()方法, MIDlet進入 Destroyed 狀態(tài)。 MIDlet 創(chuàng)建后, AMS調(diào)用 startApp()方法,使 MIDlet 進入活動狀態(tài)。當 AMS 調(diào)用 pauseApp()方法或者MIDlet 自身調(diào)用 notifyPaused()方法后, MIDlet 進入 Paused 狀態(tài)。圖 表示了 MIDlet 狀態(tài)與狀態(tài)之間的轉(zhuǎn)換關(guān)系,由圖中可以看出 MIDlet 有以下3個狀態(tài): (1)Paused: MIDlet 已經(jīng)被初始化,并且不處于 Active 狀態(tài)。該軟件負責程序的安裝部署、啟動、停止以及從設(shè)備上刪除等等,并在此過程中負責錯誤處理和與用戶交互,為程序提供了 Java運行環(huán)境。在 CLDC 的頂部是兩類 API: MIDP 的 API 和特殊的OEM API。再上一級,從左到右是上一層的軟件 CLDC。在 MIDP 架構(gòu)中,最低級的塊 (MID)描述了設(shè)備的硬件。實現(xiàn) MIDP 規(guī)范的軟件運行于 CLDC 提供的 KVM 上,為使用 MIDP API 的應(yīng)用程序提供額外的功能。 江蘇大學本科畢業(yè)論文 5 圖 WTK的運行界面 MIDP 架構(gòu) 移動信息設(shè)備簡表 MIDP(Mobile Information Device Profile)是一個用于手機 /PDA 開發(fā)的 Profile,它以連接限制設(shè)備配置( CLDC)為基礎(chǔ),定義了一個體系架構(gòu)以及相應(yīng)的 API 庫,從而為第三方的移動信息設(shè)備 (MID)應(yīng)用的開發(fā)提供了一個開放的標準環(huán)境。例如 Nokia 提供的Developer’ s Suit SDK。在實際開 發(fā)時,也有可能針對某個具體設(shè)備開發(fā)應(yīng)用程序。 WTK 可以支持各種最新的技術(shù)規(guī)范,提供一個通用的模擬器在 PC 上測試所開發(fā)的應(yīng)用程序。 [2] Eclipse 的軟件界面如圖 所示。 這種平等和一致性并不僅限于 Java 開發(fā)工具。 Eclipse 還包括 插件開 發(fā)環(huán)境 ( Plugin Development Environment, PDE),這個組件主要針對希望擴展 Eclipse 的軟件開發(fā)人員,因為 其允許 構(gòu)建與 Eclipse 環(huán)境無縫集成的工具。幸運的是, Eclipse 附帶了一個標準的插件集,包括 Java 開發(fā)工具( Java Development Tools, JDT)。 開發(fā)環(huán)境 操作系統(tǒng): Microsoft Windows XP 開發(fā)平臺: Eclipse 架構(gòu)設(shè)計: MIDP 開 發(fā) 包: Java(TM) 2 Standard Edition () SunjavaWireless Tool Kit 程序語言: J2ME 開發(fā)技術(shù): windows 套接字編程 關(guān)于 Eclipse 及 Wireless Tool Kit Eclipse 是一個開放源代碼的、基于 Java 的 整合型 可擴展開發(fā)平臺。 (6)第六 章,總結(jié)與展望。 (4)第四 章,無線消息接口 WMA、 PUSH 注冊 的介紹及手機發(fā)送 和接收文本 信息功能的實現(xiàn)。 (2)第 二章, 開發(fā)環(huán)境與開發(fā)技術(shù)的介紹,即對 J2ME 開發(fā)環(huán)境的 Eclipse工作臺、 WTK開發(fā)包 、 MIDP 規(guī)范和應(yīng)用程序及套件、通