【正文】
的限制, KVM 因此缺乏一些完整 JVM 所提供的特性,因此在編程方面和 Java編程有所不同,并且使用 CLDC 的開發(fā)者在編譯程序之后必須預(yù)先 用 J2ME 開發(fā)工具包所提供的一些檢查工具對(duì)它們的源代碼進(jìn)行預(yù)校驗(yàn)。 KVM 的實(shí)現(xiàn)所需要的最小內(nèi)存大約為 128KB,包括虛擬機(jī),最小的庫和運(yùn)行 Java 應(yīng)用程序所需的堆空間。 ● 高度可移植和可擴(kuò)展的,特定于機(jī)器或平臺(tái)的代碼總量很少 。虛擬機(jī)的優(yōu)點(diǎn)很多,例如:移植方便,只需要移植虛擬機(jī)和相關(guān)的程序庫到新的硬件構(gòu)架上,所有的上層的應(yīng)用程序都不需要更新就完成移植;另外在計(jì)算機(jī)硬件間加了一層抽象分離和保護(hù),從而具有良好的網(wǎng)絡(luò)安全性。 Java 虛擬機(jī)是 Java 程序語言的核心,是實(shí)際 Java 程序的引擎,也是 Java語言具有這么多優(yōu)良特性的關(guān)鍵所在。其中由 CLDC 和 MIDP 組成的 J2ME 平臺(tái)得到了各大手機(jī)廠商的支持,是目前流行的 J2ME 平臺(tái)。目前SUN公司已經(jīng)提出的 Profile 有構(gòu) 建 于 CDC 基礎(chǔ) 上 的 Foundation Profile 及建立在 Foundation 之上的 RMI Profile 和 Personal Profile。 一個(gè) Profile 既可以建立在 Configuration上也可以直接建立在另外一個(gè) Profile 上。然而,各種消費(fèi)類和嵌入式設(shè)備的特殊性是不容忽視 的。 Profile Profile 是建立在 Configuration 上的特定的 API 集合。 Configuration 定義了設(shè)備制造商和內(nèi)容提供商應(yīng)該在相同類別的所有設(shè)備中都 需要 實(shí)現(xiàn) 的 最小 Java 平臺(tái) ——Java 虛擬機(jī)和核心庫。 CLDC 被定義為針對(duì)內(nèi)存教少且只有簡單網(wǎng)絡(luò)連接的設(shè)備,例如: PDA、移動(dòng)電話、雙相傳呼機(jī)等設(shè)備。 CDC 被定義為針對(duì)內(nèi)存比較富裕,而且有間歇 性連接到網(wǎng)絡(luò)的強(qiáng)大嵌入式設(shè)備 ,例如: 數(shù)字電視、機(jī)頂盒、網(wǎng)絡(luò) 電話、車載計(jì)算設(shè)備等。 每一個(gè) Configuration 都對(duì)應(yīng)于一組具有相同或類似計(jì)算能力的設(shè)備。 J a v a 應(yīng) 用 P r o f i l e 簡 表 C o n f i g u r a t i o n 配 置 核 心 類 庫 J a v a 虛 擬 機(jī) 操 作 系 統(tǒng)系 統(tǒng) 硬 件 圖 31 J2ME 高層體系結(jié)構(gòu) Configuration Configuration 是個(gè)規(guī)范,它定義了基本的 J2ME 運(yùn)行環(huán)境,包括虛擬機(jī)和一組 來自 J2SE 的核心類子集。 面對(duì)上面的需求,這就使得 J2ME 需要有不同的層次和類別來適應(yīng)這個(gè)復(fù)雜的領(lǐng)域。 ● 在消費(fèi)和嵌入式設(shè)備領(lǐng)域中,各種設(shè)備的硬件存在相當(dāng)大 的差異。它整 合 了以下三個(gè)方面的需求: ● 消費(fèi) 者 和設(shè)備制造商都希望生產(chǎn)多樣性的信息設(shè)備。這五部分是 Java 虛擬機(jī)的邏輯成份 ,不依賴任何實(shí)現(xiàn)技術(shù)或組織方式 ,但它們的功能必須在真實(shí)機(jī)器上以某種方式實(shí)現(xiàn)。它主要支持 byte、 short、 int、 long、 float、 double、char 等 Java 語言的基本數(shù)據(jù)類型 。而引入 Java 語言虛擬機(jī)后 ,Java 語言在不同平臺(tái)上運(yùn)行時(shí)不需要重新編譯 。 Java 語言的一個(gè)非常重要的特點(diǎn)就是與平臺(tái)的無關(guān)性。 Java 虛擬機(jī) Java 虛擬機(jī)是一個(gè)想象中的機(jī)器 ,在實(shí)際的計(jì)算機(jī)上通過軟件模擬來實(shí)現(xiàn)。若干個(gè)系統(tǒng)線程運(yùn)行負(fù)責(zé)必要的無用單元回收 以及 系統(tǒng)維護(hù)等系統(tǒng)級(jí) 的 操作;另一方面, Java 語言內(nèi)置多線程控制,可以大大簡化多線程應(yīng)用程序開發(fā)。 Java 在兩方面支持多線程。 ● 多線程 線程是操作系統(tǒng)的一種新概念,它又被稱作輕量進(jìn)程,是比傳統(tǒng)進(jìn)程更小的可并發(fā)執(zhí)行的單位。最后,客戶端用戶還可以限制從網(wǎng)絡(luò)上裝載的類只能訪問某些文件系統(tǒng)。 Java通過自己的安全機(jī)制防止了病毒程序的產(chǎn)生和下載程序?qū)Ρ镜叵到y(tǒng)的威脅破壞。首先, Java 是強(qiáng)類型的語言,要求顯式的方法聲明,這保證了編譯器可以發(fā)現(xiàn)方法調(diào)用錯(cuò)誤,保證程序更加可靠;其次, Java 不支持指針,這杜絕了內(nèi)存的非法訪問;第三, Java 的自動(dòng)單元收集防止了內(nèi)存丟失等 由 動(dòng)態(tài)內(nèi)存分配導(dǎo)致的問題;第四, Java 解釋器運(yùn)行時(shí)實(shí)施檢查,可以發(fā)現(xiàn)數(shù)組和字符串訪問的越界,最后, Java 提供了異常處理機(jī)制,程序員可以把一組錯(cuò)誤代碼放在一個(gè)地方,這樣可以簡化錯(cuò)誤處理任務(wù)便于恢復(fù)。 ● 可靠性 Java 最初設(shè)計(jì) 的 目的是應(yīng)用于電子類消費(fèi)產(chǎn)品,因此要求較高的可靠性。 Java 編程人員在編寫完軟件后,通過 Java 編譯器將 Java 源程序編譯為 JVM 的字節(jié)代碼。 Java 主要靠 Java 虛擬機(jī)( JVM)在目標(biāo)碼級(jí)實(shí)現(xiàn)平臺(tái)無關(guān)性。 ● 平臺(tái)無關(guān)性 Java 有句名言: “ 編寫一次,隨處運(yùn)行 ” ( Write Once, Run Anywhere),這句話 反 映了 Java 的平臺(tái)無關(guān)性。多態(tài)性的概念通常被說成是“ 一個(gè)對(duì)外接口,多個(gè)內(nèi)在實(shí)現(xiàn)方法 ”。繼承性和封裝性相互作用,如果一個(gè)給定的類封裝 了某個(gè) 類一些屬性,那么它的任何子類將具有同樣的屬性, 并 且還添加了子類自己特有的屬性。繼承支持了按層分類的概念。一個(gè)給定類的每個(gè)對(duì)象都包含這個(gè)類定義的行為和結(jié)構(gòu),好 像 他們是從同一個(gè)類的模子中鍛造出來的,所以類是一種邏輯結(jié)構(gòu),而對(duì)象是真正存在的物理實(shí)體。 Java 封裝的基本單元是類。現(xiàn)實(shí)世界中的對(duì)象均有屬性和行為,映射到計(jì)算機(jī)程序上,屬性則表示對(duì)象的數(shù)據(jù),行為表示對(duì)象的方法(其作用是處理數(shù)據(jù)或同外界交互)。 Java 的程序設(shè)計(jì)集中于對(duì)象及其接口,它提供了簡單的類機(jī)制以及動(dòng)態(tài)的接口模型,實(shí)現(xiàn)了模塊化和信息封裝。 ● 面向?qū)ο? Java 是一種面向?qū)ο蟮恼Z言。 Java 語言的眾多特點(diǎn)使得它有著廣泛的用途,它與 Web 和Inter 緊密的結(jié)合,并且在移動(dòng)設(shè)備中被廣泛使用, 具體說來它有以下主要特點(diǎn): ● 簡單性 Java 是一種簡單的語言。主要有: MIDP 應(yīng)用模型 MIDlet, Eclipse 開發(fā) 環(huán)境以及利用 WTK 開發(fā)包開發(fā)的過程等詳細(xì)內(nèi)容 。但是由于受到無限移動(dòng)設(shè)備內(nèi)存、 CPU、輸出 /輸入設(shè)備等資源的限制,使得無線應(yīng)用開發(fā)與桌面或企業(yè)應(yīng)用開發(fā)有很大的不同。 課題的研究內(nèi)容及預(yù)期效果 自 SUN 公司發(fā)布 J2ME 無線開發(fā)平臺(tái)以來,基于 J2ME 的無線應(yīng)用得到了很大的發(fā)展。 電子商務(wù) 無線電子商務(wù)通過 J2ME 提供的信息安全、傳輸技術(shù),實(shí)現(xiàn)手機(jī)銀行、無線交易、股票查詢等應(yīng)用系統(tǒng),當(dāng)前由于消費(fèi)市場信用度,同時(shí)涉及 到銀行和通信兩個(gè)領(lǐng)域的合作還有很多問題沒有解決,因而沒有得到大力的發(fā)展。 信息服務(wù) 信息服務(wù)是通過 HTTP 連接服務(wù),以 J2ME 應(yīng)用實(shí)現(xiàn)新聞、證券信息、天氣預(yù)報(bào)、生活、公共設(shè)施等信息資訊的點(diǎn)播服務(wù),這一類服務(wù)也成為運(yùn)營商大力推廣的業(yè)務(wù)模式之一。通過GRPS 網(wǎng)絡(luò),可以讓支持 Java 的 手機(jī)用戶下載各種小游戲、視頻、圖片、 音樂、電子小說等。分析當(dāng)今主流的應(yīng)用成果,大致可歸納為娛樂游戲、信息服務(wù)、電子商務(wù)、武漢大學(xué)學(xué)士論文 前言 3 企業(yè)應(yīng)用等幾大類。 J2ME 為移動(dòng)互聯(lián)引入了一種新的模型,即允 許手機(jī)、 PDA 等便攜 設(shè)備可以從 Inter 上下載各種應(yīng)用程序,這將使設(shè)備的功能可以無限擴(kuò)展,并且可以離線運(yùn)行應(yīng)用程序。 目前,針對(duì)手機(jī)、 PDA 等移動(dòng)信息設(shè)備的 J2ME 技術(shù) 由 KVM( K Virtual Machine )和一組 API 組成,這組 API 適合于為手機(jī)、 PDA 等一定信息設(shè)備提供經(jīng)過剪裁的運(yùn)行環(huán)境。它定義了一組 Java 虛擬機(jī),每種用 于 不同的小型設(shè)備,滿足不同的需求;還定義了一組可以運(yùn)行在各種虛擬機(jī)上的庫和API; 同時(shí)還提供了部署設(shè)備 配置 需要的各種工具。該平臺(tái)的缺點(diǎn)是,主要是用 C 語言來開發(fā),而且,全球 34 家運(yùn)營商采用了 Java ,而只有 8家運(yùn)營商采用 BREW,它的應(yīng)用范圍相對(duì)較小。 無線應(yīng)用開發(fā)平臺(tái)簡介 BREW( Binary Runtime Environment For Wireless)平臺(tái)是美國高通公司為無線設(shè)備提供的開放式標(biāo)準(zhǔn)平臺(tái),是 無線應(yīng)用程序開發(fā)、設(shè)備配置、應(yīng)用程序發(fā)布以及記費(fèi)和支付的完整的端到端的解決方案的一部分。目前,在針對(duì)無線設(shè)備的應(yīng)用 開發(fā)時(shí),開發(fā) 者 面臨三個(gè)主要問題: ●開發(fā)工具的適用性 ●實(shí)際的無線測試環(huán)境 ●可靠 的 和可伸縮的服務(wù)支持 造成這些問題的部分原因是缺少針對(duì)無線設(shè)備的開發(fā)和一致性的應(yīng)用開發(fā)環(huán)境,以及缺少適當(dāng)?shù)臒o線應(yīng)用基礎(chǔ)設(shè)施。對(duì)桌面和企業(yè)計(jì)算應(yīng)用來說,開發(fā)平臺(tái)通常與部署環(huán)境相同,可以通過高速有線網(wǎng)絡(luò)與應(yīng)用系統(tǒng)建立聯(lián)系。 自從 J2ME 推出后,得到了廣大的消費(fèi) 類和 嵌入式設(shè)備制造商,服務(wù)提供商和程序開發(fā)者的支持。 J2ME 擁有 Java 技術(shù)本身的各種特點(diǎn):平臺(tái)無關(guān)性、網(wǎng)絡(luò)安全性等 等 。 ● Java2 平臺(tái)企業(yè)版 ( Java 2 Platform ,Enterprise Edition, J2EE)它是 J2SE的擴(kuò)展集,主要用于在服務(wù)器開發(fā)可伸縮、可遷移、以數(shù)據(jù)庫為核心的企業(yè)應(yīng)用。到20 世紀(jì) 90 年代末,隨著小型消費(fèi)類和嵌入式設(shè)備市場發(fā)展成熟, SUN 公司針對(duì)小型消費(fèi)類和嵌入式設(shè)備的 Java 應(yīng)用開發(fā)、運(yùn)行平臺(tái) —— J2ME。 無線 Java 技術(shù) Java 技術(shù)起源于 20 世紀(jì) 90 年代初期 SUN 公司的 Green Project 和 Oak編程語言,這種語言后來被重新命名為 Java。s corporate mantra is not knowledge is power but Timely knowledge is power. People want information on the go and want to be connected all the time to the Inter. The rapid advancement of Technology in the field of miniaturization and that of munications has introduced a lot of roaming devices for people to connect through to the work like, PDA, mobile phones and many embedded devices. Programming for these devices were cumbersome and limited since each device supported their own standard I/O ports, screen resolution and had specific configurations. The introduction of Java 2 Micro Edition (J2ME) has solved this problem to some extent. J2ME is a kind of software development mode, which uses Java language in the embedded systems. It is divided into configuration and profiles, which provide specific information to a group of related devices. Mobile devices can be programmed using J2ME. This paper introduces the architecture of J2ME and features of each module firstly. Then an example application——Personal Canvas Management be discussed with the special concerns about the problems during the design and the development. Keywords: J2ME ; MIDP ; CLDC; Personal Canvas Management武漢大學(xué)學(xué)士論文 目錄 IV 目 錄 摘 要 ............................................................................................. III 目 錄 .............................................................................................IV 第 1 章 前言 ....................................................................................