電子與信息工程畢業論文:基于J2ME環境的手機功能軟件開發.doc
本 科 畢 業 設 計 基于 J2ME 環境的手機 功能 軟件開發 所在學院 專業班級 電子與信息工程 學生姓名 學號 指導教師 職稱 完成日期 年 月 I 摘要 Java 語言經過十多年的發展和應用,如今的技術日漸成熟。直至現在, Java 已經成為當今網絡計算機平臺的標準,也成為全球程序 員的首選開發平臺。放眼當今的電子市場, Java技術已無處不在,小至信用卡,大到企業級應用系統等。而 J2ME 作為 Java 的微型版,主要用于開發具有有限連接、內存以及用戶界面能力的設備應用程序,推動著整個移動網絡技術的發展。 在小型電子設備上, J2ME 以它在無線編程上的獨特作用為創建性能卓越的網絡應用提供了一套完整的解決方案。其中以手機的應用軟件最為普及現今人們的生活。一款優秀的手機應用軟件可以為現在的人們帶來更方便、更現代化、更優質的生活。 當今的手機應用軟件市場五花八門,本論文選擇了設計比較普遍的手機音樂軟 件。MusicOnline 屬于在線音樂軟件。設計過程中為了保證設計時的思路清晰,邏輯正確,本文主要采取 MVC 的模式設計這款音樂軟件,將程序分為控制器類、視圖類和模型類三大模塊。控制器為單一控制器 UIController,設計中在視圖界面方面主要實現了音樂列表和音樂播放時的視圖 ,通過 LCDUI 體系中的高級用戶界面組件和低級用戶界面組件分別對兩個視圖進行了不同的設計 ; 在通信方面實現網絡通信和 在數據處理方面實現 XML 的解析等。其中各種類和方法的使用與功能在正文中將會詳細介紹。本文的著重點在于客戶端設計的過程和思路上,在介紹這些的同時也會介紹一些開發軟件及開發環境的使用情況。最后還會稍微介紹一下測試的結果與軟件其他可能的改進。由于程序過長,客戶端的主要程序置于最后附錄一項。 關 鍵 字: J2ME;音樂軟件;移動網絡 II Abstract Java language after more than ten years of development and application, today s technology to mature. Until now, Java has become the most standard network computer plat, also become the preferred global programmers development plat. Look to today s electronic market, Java technology has been everywhere, it is small to credit card, big to enterprise applications system, etc. But the miniature version of the J2ME as Java, mainly for the development with limited connection, memory, and the user interface, the equipment application ability to push the whole mobile network technology development. In small electronic equipment, with its in J2ME wireless programming to create a unique role perance a network of excellence application provides a set of complete solutions. Which is the most popular mobile phone applications today people s lives. One excellent mobile application software can be for people of now bring more convenient, more modern, better quality of life. Today s cell phone is multifarious applications market, this paper chose design is universal mobile music software. Online music software MusicOnline belong to. The design process to ensure that the design of clear thinking, logic, this paper mainly adopts correctly the pattern design of this MVC music software, procedures into controller type, view class and model class three modules. Controller for a single controller UIController, design in view interface aspects mainly realizes the music list and music play when views, through the advanced user interface LCDUI system components and low-level user interface components of two views respectively different design; In communications network communication and in data processing aspect analytical etc. Realize XML Including all kinds of classes and s of using and function in the text will be introduced in detail. This paper is emphasized by the client design process and thinking, in the meanwhile will also introduce these introduced some development software and development environment use. Finally will also introduce a little test results and software other possible improvements. Due to the program is too long, client main program in a given at the end. Key word: J2ME,Music software,Mobile network III 目錄 第一章 緒論 1 1.1 手機軟件現狀 . 1 1.2 J2ME 介紹 1 第二章 J2ME 相關技術概覽 . 3 2.1 Java 語言特點 3 2.2 關于 ECLIPSE . 3 2.3 關于 SDK . 4 第三章 程序結構及其實現 5 3.1 MusicOnline 5 3.2 MVC 模式 . 5 3.3 服務器端程序 . 6 3.4 音樂列表的實現 . 6 3.5 音樂播放的實現 . 7 3.5 網絡通信的實現 . 7 3.6 XML 解析的實現 . 7 3.7 文件管理的實現 . 7 3.8 各個功能模塊的控制 . 8 第四章 程序流程和具體分析 9 4.1 程序分析 . 9 4.2 MusicItem 9 4.3 MusicListUI. 10 4.4 MusicPlayerUI. 11 4.5 HTTPManager. 12 4.6 XMLmanager 12 4.7 FileManager. 12 4.8 UIController 12 4.9 MusicListEntity. 12 第五章 測試與改進 . 14 IV 5.1 測試與打包 14 5.2 程序的改進 15 總結 . 17 總結與感想 17 致 謝 . 17 參考文獻 . 18 1 第一章 緒論 1.1 手機軟件現狀 隨著 3G 無線網絡的飛速發展,使用手機上網的用戶越來越多。手機在人們生活中的普及也越來越廣泛。至 2008 年,全球已有超過 15 億臺手機和手持設 備應用 Java 技術。伴隨著這個巨大的市場,手機應用軟件的發展也變得迅猛無比。而 Java 在手機軟件發展方面更是擁有巨大的優勢和發展潛力。 回望幾年前的老版手機,老版手機的程序有很大的使用限制,手機里的程序不會自動更新,有了錯誤也不能更新和修改,如果想要增加新功能那估計就得換一部手機了。老版手機訪問互聯網的收費很高,這是因為老版手機在連接無線網絡時所使用的網絡資源必須連接網絡在線訪問,這樣上網的耗時和費用之大可想而知。 而相對于老版手機,如今的智能手機可以通過移植 J2ME來實現智能化,但是需要向 J2ME的開發 商購買使用版權 [1]。 Java 的應用程序兼容性強,適用范圍廣,用 J2ME 編寫的手機軟件可以在大部分的 Java 手機上使用,安裝后的手機軟件會自動更新,增加新功能只要通過安裝新的軟件就能達成。而且 Java 技術在網絡帶寬的應用方面的提升更加明顯, Java 應用程序下載到手機上安裝之后,可以在本地運行,只會在連接到服務器時才會占用網絡帶寬。 這幾年的 Java 技術發展迅速, JAVA 已經從一種最初用來編寫與硬件無關的嵌入式系統的編程語言變成了一種與廠商、硬件無關的強大的服務器端技術,它使手機應用軟件在無線移動方面得以飛 速的發展。隨著 JAVA 技術的繼續發展, J2ME 技術將會不斷完善,將會有越來越多的智能手機應用軟件被開發出來被廣大的用戶使用。而且 J2ME 強大的跨平臺性將漸漸使它奪得開發軟件王者的地位。 下面在本篇文章中就將詳細的介紹基于 J2ME 環境下手機應用程序制作的具體過程以及其重要的作用。 1.2 J2ME 介紹 在 1999 年, Sun 公司宣布了以 Java 2 平臺為核心的 J2EE、 J2SE 和 J2ME 三大平臺。其中 J2ME 被稱為 Java 微型版,主要用于開發具有有限連接、內存以及用戶界面能力的設備應用程序,即被定為在消費性的電 子產品應用上。 J2ME 版本為資源有限的消費性電子產品設置了精簡核心類庫,并提供了一些模塊化的架構用來開發軟件,使得開發軟件時的思路更明確。由于 J2ME 應用程序驚人的廣泛性,使它將會成為未來 Java 技術發展的重點。 J2ME 在首次亮相的時候就很明確地將目標指向智能無線設備和小型計算機設備的開發。它在開發時有一個明顯的優點,就是它兼容于所有支持 Java 的設備。所謂支持 Java的設備,簡單來說就是任何能運行 Java 虛擬機器的計算機。在如今的電子市場中,幾家大型電子產品公司例如 Motorola、 Nokia 等都在生產 支持 Java 的設備。 J2ME 的硬件平臺與其它 Java 平臺的相比有很大的差異。在 J2ME 的硬件設備中 ,根據其性能主要可以分為連接設備和受限連接設備兩種。 J2ME 的體系結構也是基于這個設備的類2 別的 [2]。其中連接設備相對高端,具體例子有電視機的機頂盒等。受限連接設備相對低端,例如尋呼機、手機等。由于有兩種不同的設備,它們的開發需求也不一樣,為了解決這方面問題。 J2ME 提出 了 配置( configuration) 的概念, 它是提供給設備使用的最小類庫集合,這個概念 對不同級別的硬件所使用的 JVM 和基礎 API 集合方面做了 規定。 如較高端的連接設備會采用 CDC( Connected Device Configuration),所使用的 JVM 被 稱為 CVM; 而 對于低端 的受限連接 設備,則 會 采用 CLDC( Connected Limited Device Configuration), 并且由于受到內存資源和執行速度的影響,使用的虛擬機為 KVM。 在實際應用中,雖然 CDC 和 CLDC 為那些 各類設備中最具共性的配置提供了基本的功能集合 ,但在不同的設備之間仍存在著很大的差異。為了解決這個問題,開發人員在原來配置的基礎上, 又 提出了 簡表( Profile) 的概念 ,與配置類似的簡表即是一系列針對特定設備的類庫 。 簡表在不同級別硬件的基礎上,又 針對某一類設備制訂 了 規范和 API,這個概念提出之后,開發人員終于可以建立一個相對完善的 J2ME 開發環境。 第一個可供使用的 J2ME應用程序運行環境 為 MIDP( Mobile Ination Device Profile) ,同時它也是 第一個制訂完成 的簡表。 手機屬于受限連接設備,因此手機上的 J2ME 程序是基于 CLDC 和 MIDP 的,這些程序也被稱為 MIDlet( Mobile Ination Devices applet)。 MIDlet 是近年來應用最廣的 J2ME應用程序,主要運行于各種移動終端中 [3]。 3 第二章 J2ME相關技術概覽 2.1 Java 語言特點 Java 語言無疑是一種優秀且功能強大的編程語言,它與平臺無關的特性使它擁有巨大的普及率和廣泛性。與其它開發程序語言相比, Java 語言有許多特有的性質和優點使得它更適于程序的開發。對軟件開發人員來說,它主要有以下幾個優勢 [4]: 易于學習開發。 Java 程序設計語言是一種強大的面向對象的語言,但是學習起來卻有著平緩的學習曲線,對廣大新開發技術人員來說上手極快。 代碼量更少。從編寫一個程序時使用的方法和類的數量上進行比較的話,用 Java 語言編寫同樣的一個程序的代碼量通常比用 C++編寫的少 75%左右。 代碼更健壯。 Java 語言會使用泛型等的方式進行編寫程序,使得程序出現 BUG 的概率更低。 Java 軟件附帶大量的包和類,程序開發人員在編寫程序時可以不斷重用這些已經經過測試的類和方法,從而減少了程序的錯誤率。 開發程序速度更快。 Java 編程語言相對 C++來說更簡易,當用它編寫程序時,開發人員的開發實踐的速度將會快兩倍,而要求的代碼量卻更少。 強大的跨平臺性 .Java程序可 以很輕松地在不同的平臺上進行移植。在 Windows、 Linux、Solaris、 MacOS 等平臺上都能使用同樣的代碼。 輕易地移植或遷移。用 Java 語言編寫的應用程序被編譯到機器獨立的平臺上,這讓系統的移植和平臺的遷移變得非常簡單。 軟件升級更容易。如果使用 Java 編寫的軟件,用戶可以只用鼠標單擊這樣簡單的操作啟動 Java 應用程序。 Java 應用程序在啟動時會自行檢查當前版本,如果有 Java 軟件的其他最新版本,軟件將自動地下載更新并進行安裝。 2.2 關于 ECLIPSE Eclipse 是一個開放源 代碼的 強大的 Java 開發平臺,與它相關的許可證大多都是基于CPL(Common Public License), CPL 是一個被 OSI( Open Source Initiative)認可的許可證。 Eclipse 是和 Sun ONE Studio、 NetBeans、 Borland JBuilder 類似的一種整合型可擴展開發平臺,它是目前最著名的開源項目之一 [6]。 Eclipse 是用 Java 語言編寫的,它本身只是一個框架和一組服務,通過插件組件來構建開發環境。但是 Eclipse 還附帶了一個標準的插件集,其中就包括了 Java 開發工具( Java Development Tools,JDT) 。 Eclipse 還包括插件開發環境( Plug-in Development Environment, PDE),這個組件允許 那些 希望擴展 Eclipse 的軟件開發人員構建與 Eclipse 環境無縫集成的工具。 Eclipse 未來的發展目標不只是成為專門開發 Java 程序的 IDE 環境,根據它的體系結構,通過一些開發插件,它能擴展到任何語言的開發,甚至能成為圖片繪制工具 [7]。 由于 Eclipse 中 基本上 都是插件, 各種不同類型的插件讓各 種 工具開發人員都 可以在 Eclipse這個 場所 中有所發揮。雖然 Eclipse 是使用 Java 語言開發的,但它的用途 卻 不限于 Java 4 語言 ,它還 支持 C/C++、 COBOL 和 Eiffel 等編程語言, 只要安裝相應插件即可。 2.3 關于 SDK SDK(Software Development Kit),即軟件開發工具包,對于開發 J2ME 程序來說是必不可少的。選擇一款合適的 SDK 對開發軟件來說是十分重要的, 而本次設計選擇的是 Nokia S40 5th FP1 SDK。 SDK 簡單來說就 是 Eclipse Plat、 JDT 和 PDE 所生產的組件 的 合并, 這些組件組合之后將 提供一個具有豐富特性的開發環境, 并 允許開發者建造 一些 可以無縫集成到 Eclipse Plat 中的工具。 Eclipse SDK 由 Eclipse 項目生產的 軟件 和 第三方插件 組合而成。 其中 Eclipse 項目生產的軟件以 GPL 發布, 而 第三方 插件 有 其 自身的許可協議。 SUN 公司作為 Java 技術的先行開發者和主要的推廣者,它開發的 WTK 集成的 JSR 規范最多,功能也最全面 [8]。但是各大手機廠商為了產品的獨特性都自行開發了屬于自己的J2ME 開發包 ,所以 WTK 開發包在實際中的應用性會差很多。因為在 WTK 中調試正常的程序,卻不一定能夠放到真機中正常運行,有些甚至根本無法啟動。所以在實際的工作中,為了使辛苦開發的軟件最后不至于落得一無是處的下場,在開發軟件的初始階段就要根據目標機型選好合適的 SDK。 5 第三章 程序結構及其實現 3.1 MusicOnline 本設計的程序是一個手機音樂應用程序,名為 MusicOnline,中文名即在線聽歌。由于是一款音樂軟件,所以在設計的初始階段首先考慮到的便是音樂列表和音樂播放時的界面,然后在邏輯模型上,需要處理音樂 數據,連接網絡等,仔細思考后,發現客戶端程序需要涵蓋 UI 組件設計、 RMS 管理、 HTTP 通信、 XML 解析等多個與 J2ME 相關的技術。而且在實現網絡模擬時還要設計服務器端的程序,將兩者放在一起,整個 MusicOnline 程序就是一個以C/S 模式開發的商務軟件系統,它主要實現的功能為:軟件的客戶端可以從服務器端下載音樂的詳細信息,將信息存儲在本地后并展示給用戶。當用戶選擇列表中某一首音樂后,軟件的客戶端能夠連接到服務器端進行在線播放音樂。 為了將這些功能完全的實現,需要進行進一步的流程分析。最后決定的具體程序流程 大致如下:首先是要實現客戶端從服務器端下載一些音樂的詳細信息。如果是文字信息就將以XML 格式組織,這些文字信息具體包括音樂的標題、簡介、圖片 ID 和音樂 ID 等;接著軟件的客戶端完成解析后,需要將下載的信息保存到 RMS 中。另外根據圖片 ID 下載的圖片可以選擇保存在本地;然后是客戶端以列表的形式展示音樂信息;最后是當用戶選擇某一首音樂后,進入音樂播放界面,顯示音樂信息的同時進行在線播放。 分好詳細的步驟之后,就可以開始架構每一步程序的具體結構了。 3.2 MVC 模式 MVC( Model-View-Controller)中文翻譯為“模型 -視圖 -控制器”。使用 MVC 模式設計程序的核心思想就是將設計程序的主體分離成模型和視圖兩個部分,其中模型部分的程序實現了邏輯處理,視圖部分程序實現了用戶界面展示,然后兩者通過控制器來實現同步。采用MVC 模式有眾多優點,主要為:高重用性、低耦合性、可適用性、較低的生命周期成本以及快速的開發和部署。當然,采用 MVC 模式來設計程序也會帶來一些麻煩。但總的來說 MVC設計模式是一個創建應用程序的很好途徑,它所提倡的一些原則,例如用戶界面和邏輯處理互相分離的概念非常容易理解,可以幫組軟件開發者理清思 路。并且使用 MVC 可以使軟件程序在代碼健壯性、代碼重用以及程序結構方面變得更加完善 [5]。 本設計程序的客戶端就是采用 MVC 設計模式。主程序根據 MVC 模式分成視圖和模型兩個部分,加上控制器一共分為三個模塊。各個模塊的具體分類如下: 視圖模塊:本設計中主要實現了兩個視圖,即音樂列表視圖( MusicListUI)和音樂播放視圖( MusicPlayerUI)。 控制器模塊:本設計采用的是單控制器模式,只有一個控制器類( UIController)。 模型模塊:設計中實現了多個模型類,其中包括 XMLManager、 RMSManager、 RMSManager、HTTPManager 等。 分配完類之后,整個 MusicOnline 程序的類框架也出來了,如圖 3.1 所示。