版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
1、<p> 本 科 畢 業(yè) 設(shè) 計</p><p> 基于J2ME環(huán)境的手機功能軟件開發(fā)</p><p> 所在學(xué)院 </p><p> 專業(yè)班級 電子與信息工程 </p><p> 學(xué)生姓名 學(xué)號
2、 </p><p> 指導(dǎo)教師 職稱 </p><p> 完成日期 年 月 </p><p><b> 摘要</b></p><p> Java語言經(jīng)過十多年的發(fā)展和應(yīng)用,如今的技術(shù)日漸成熟。直至現(xiàn)在,Java已經(jīng)成為當今網(wǎng)
3、絡(luò)計算機平臺的標準,也成為全球程序員的首選開發(fā)平臺。放眼當今的電子市場,Java技術(shù)已無處不在,小至信用卡,大到企業(yè)級應(yīng)用系統(tǒng)等。而J2ME作為Java的微型版,主要用于開發(fā)具有有限連接、內(nèi)存以及用戶界面能力的設(shè)備應(yīng)用程序,推動著整個移動網(wǎng)絡(luò)技術(shù)的發(fā)展。</p><p> 在小型電子設(shè)備上,J2ME以它在無線編程上的獨特作用為創(chuàng)建性能卓越的網(wǎng)絡(luò)應(yīng)用提供了一套完整的解決方案。其中以手機的應(yīng)用軟件最為普及現(xiàn)今人們的
4、生活。一款優(yōu)秀的手機應(yīng)用軟件可以為現(xiàn)在的人們帶來更方便、更現(xiàn)代化、更優(yōu)質(zhì)的生活。</p><p> 當今的手機應(yīng)用軟件市場五花八門,本論文選擇了設(shè)計比較普遍的手機音樂軟件。MusicOnline屬于在線音樂軟件。設(shè)計過程中為了保證設(shè)計時的思路清晰,邏輯正確,本文主要采取MVC的模式設(shè)計這款音樂軟件,將程序分為控制器類、視圖類和模型類三大模塊。控制器為單一控制器UIController,設(shè)計中在視圖界面方面主要實
5、現(xiàn)了音樂列表和音樂播放時的視圖,通過LCDUI體系中的高級用戶界面組件和低級用戶界面組件分別對兩個視圖進行了不同的設(shè)計;在通信方面實現(xiàn)網(wǎng)絡(luò)通信和在數(shù)據(jù)處理方面實現(xiàn)XML的解析等。其中各種類和方法的使用與功能在正文中將會詳細介紹。本文的著重點在于客戶端設(shè)計的過程和思路上,在介紹這些的同時也會介紹一些開發(fā)軟件及開發(fā)環(huán)境的使用情況。最后還會稍微介紹一下測試的結(jié)果與軟件其他可能的改進。由于程序過長,客戶端的主要程序置于最后附錄一項。</p
6、><p> 關(guān)鍵字:J2ME;音樂軟件;移動網(wǎng)絡(luò) </p><p><b> Abstract</b></p><p> Java language after more than ten years of development and application, today's technology to mature. Until
7、 now, Java has become the most standard network computer platform, also become the preferred global programmers development platform. Look to today's electronic market, Java technology has been everywhere, it is smal
8、l 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 </p><p> In small electronic
9、equipment, with its in J2ME wireless programming to create a unique role performance a network of excellence application provides a set of complete solutions. Which is the most popular mobile phone applications today peo
10、ple's lives. One excellent mobile application software can be for people of now bring more convenient, more modern, better quality of life.</p><p> Today's cell phone is multifarious applications ma
11、rket, 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
12、 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
13、 music lis</p><p> Key word: J2ME,Music software,Mobile network</p><p><b> 目錄</b></p><p><b> 第一章 緒論1</b></p><p> 1.1 手機軟件現(xiàn)狀1</p>&
14、lt;p> 1.2 J2ME介紹1</p><p> 第二章 J2ME相關(guān)技術(shù)概覽3</p><p> 2.1 Java語言特點3</p><p> 2.2 關(guān)于ECLIPSE3</p><p> 2.3 關(guān)于SDK4</p><p> 第三章 程序結(jié)構(gòu)及其實現(xiàn)5</p>
15、<p> 3.1 MusicOnline5</p><p> 3.2 MVC模式5</p><p> 3.3 服務(wù)器端程序6</p><p> 3.4 音樂列表的實現(xiàn)6</p><p> 3.5 音樂播放的實現(xiàn)7</p><p> 3.5 網(wǎng)絡(luò)通信的實現(xiàn)7</p>&l
16、t;p> 3.6 XML解析的實現(xiàn)7</p><p> 3.7 文件管理的實現(xiàn)7</p><p> 3.8 各個功能模塊的控制8</p><p> 第四章 程序流程和具體分析9</p><p> 4.1 程序分析9</p><p> 4.2 MusicItem9</p>&
17、lt;p> 4.3 MusicListUI10</p><p> 4.4 MusicPlayerUI11</p><p> 4.5 HTTPManager12</p><p> 4.6 XMLmanager12</p><p> 4.7 FileManager12</p><p> 4.8
18、UIController12</p><p> 4.9 MusicListEntity12</p><p> 第五章 測試與改進14</p><p> 5.1測試與打包14</p><p> 5.2程序的改進15</p><p><b> 總結(jié)17</b></p>
19、;<p><b> 總結(jié)與感想17</b></p><p><b> 致 謝17</b></p><p><b> 參考文獻18</b></p><p><b> 第一章 緒論</b></p><p> 1.1 手機軟
20、件現(xiàn)狀</p><p> 隨著3G無線網(wǎng)絡(luò)的飛速發(fā)展,使用手機上網(wǎng)的用戶越來越多。手機在人們生活中的普及也越來越廣泛。至2008年,全球已有超過15億臺手機和手持設(shè)備應(yīng)用Java技術(shù)。伴隨著這個巨大的市場,手機應(yīng)用軟件的發(fā)展也變得迅猛無比。而Java在手機軟件發(fā)展方面更是擁有巨大的優(yōu)勢和發(fā)展?jié)摿Α?</p><p> 回望幾年前的老版手機,老版手機的程序有很大的使用限制,手機里的程序不
21、會自動更新,有了錯誤也不能更新和修改,如果想要增加新功能那估計就得換一部手機了。老版手機訪問互聯(lián)網(wǎng)的收費很高,這是因為老版手機在連接無線網(wǎng)絡(luò)時所使用的網(wǎng)絡(luò)資源必須連接網(wǎng)絡(luò)在線訪問,這樣上網(wǎng)的耗時和費用之大可想而知。</p><p> 而相對于老版手機,如今的智能手機可以通過移植J2ME來實現(xiàn)智能化,但是需要向J2ME的開發(fā)商購買使用版權(quán)[1]。Java的應(yīng)用程序兼容性強,適用范圍廣,用J2ME編寫的手機軟件可以
22、在大部分的Java手機上使用,安裝后的手機軟件會自動更新,增加新功能只要通過安裝新的軟件就能達成。而且Java技術(shù)在網(wǎng)絡(luò)帶寬的應(yīng)用方面的提升更加明顯,Java應(yīng)用程序下載到手機上安裝之后,可以在本地運行,只會在連接到服務(wù)器時才會占用網(wǎng)絡(luò)帶寬。</p><p> 這幾年的Java技術(shù)發(fā)展迅速, JAVA已經(jīng)從一種最初用來編寫與硬件無關(guān)的嵌入式系統(tǒng)的編程語言變成了一種與廠商、硬件無關(guān)的強大的服務(wù)器端技術(shù),它使手機應(yīng)
23、用軟件在無線移動方面得以飛速的發(fā)展。隨著JAVA技術(shù)的繼續(xù)發(fā)展,J2ME技術(shù)將會不斷完善,將會有越來越多的智能手機應(yīng)用軟件被開發(fā)出來被廣大的用戶使用。而且J2ME強大的跨平臺性將漸漸使它奪得開發(fā)軟件王者的地位。</p><p> 下面在本篇文章中就將詳細的介紹基于J2ME環(huán)境下手機應(yīng)用程序制作的具體過程以及其重要的作用。</p><p> 1.2 J2ME介紹</p>&
24、lt;p> 在1999年,Sun公司宣布了以Java 2平臺為核心的J2EE、J2SE和J2ME三大平臺。其中J2ME被稱為Java微型版,主要用于開發(fā)具有有限連接、內(nèi)存以及用戶界面能力的設(shè)備應(yīng)用程序,即被定為在消費性的電子產(chǎn)品應(yīng)用上。J2ME版本為資源有限的消費性電子產(chǎn)品設(shè)置了精簡核心類庫,并提供了一些模塊化的架構(gòu)用來開發(fā)軟件,使得開發(fā)軟件時的思路更明確。由于J2ME應(yīng)用程序驚人的廣泛性,使它將會成為未來Java技術(shù)發(fā)展的重點
25、。</p><p> J2ME在首次亮相的時候就很明確地將目標指向智能無線設(shè)備和小型計算機設(shè)備的開發(fā)。它在開發(fā)時有一個明顯的優(yōu)點,就是它兼容于所有支持Java的設(shè)備。所謂支持Java的設(shè)備,簡單來說就是任何能運行Java虛擬機器的計算機。在如今的電子市場中,幾家大型電子產(chǎn)品公司例如Motorola、Nokia等都在生產(chǎn)支持Java的設(shè)備。</p><p> J2ME的硬件平臺與其它Ja
26、va平臺的相比有很大的差異。在J2ME的硬件設(shè)備中,根據(jù)其性能主要可以分為連接設(shè)備和受限連接設(shè)備兩種。J2ME的體系結(jié)構(gòu)也是基于這個設(shè)備的類別的[2]。其中連接設(shè)備相對高端,具體例子有電視機的機頂盒等。受限連接設(shè)備相對低端,例如尋呼機、手機等。由于有兩種不同的設(shè)備,它們的開發(fā)需求也不一樣,為了解決這方面問題。J2ME提出了配置(configuration)的概念,它是提供給設(shè)備使用的最小類庫集合,這個概念對不同級別的硬件所使用的JVM和
27、基礎(chǔ)API集合方面做了規(guī)定。如較高端的連接設(shè)備會采用CDC(Connected Device Configuration),所使用的JVM被稱為CVM;而對于低端的受限連接設(shè)備,則會采用CLDC(Connected Limited Device Configuration),并且由于受到內(nèi)存資源和執(zhí)行速度的影響,使用的虛擬機為KVM。</p><p> 在實際應(yīng)用中,雖然CDC和CLDC為那些各類設(shè)備中最具共性
28、的配置提供了基本的功能集合,但在不同的設(shè)備之間仍存在著很大的差異。為了解決這個問題,開發(fā)人員在原來配置的基礎(chǔ)上,又提出了簡表(Profile)的概念,與配置類似的簡表即是一系列針對特定設(shè)備的類庫。簡表在不同級別硬件的基礎(chǔ)上,又針對某一類設(shè)備制訂了規(guī)范和API,這個概念提出之后,開發(fā)人員終于可以建立一個相對完善的J2ME開發(fā)環(huán)境。第一個可供使用的J2ME應(yīng)用程序運行環(huán)境為MIDP(Mobile Information Device Pro
29、file),同時它也是第一個制訂完成的簡表。</p><p> 手機屬于受限連接設(shè)備,因此手機上的J2ME程序是基于CLDC和MIDP的,這些程序也被稱為MIDlet(Mobile Information Devices applet)。MIDlet是近年來應(yīng)用最廣的J2ME應(yīng)用程序,主要運行于各種移動終端中[3]。</p><p> 第二章 J2ME相關(guān)技術(shù)概覽</p>
30、<p> 2.1 Java語言特點</p><p> Java語言無疑是一種優(yōu)秀且功能強大的編程語言,它與平臺無關(guān)的特性使它擁有巨大的普及率和廣泛性。與其它開發(fā)程序語言相比,Java語言有許多特有的性質(zhì)和優(yōu)點使得它更適于程序的開發(fā)。對軟件開發(fā)人員來說,它主要有以下幾個優(yōu)勢[4]:</p><p> 易于學(xué)習(xí)開發(fā)。Java程序設(shè)計語言是一種強大的面向?qū)ο蟮恼Z言,但是學(xué)習(xí)
31、起來卻有著平緩的學(xué)習(xí)曲線,對廣大新開發(fā)技術(shù)人員來說上手極快。</p><p> 代碼量更少。從編寫一個程序時使用的方法和類的數(shù)量上進行比較的話,用Java語言編寫同樣的一個程序的代碼量通常比用C++編寫的少75%左右。</p><p> 代碼更健壯。Java語言會使用泛型等的方式進行編寫程序,使得程序出現(xiàn)BUG的概率更低。Java軟件附帶大量的包和類,程序開發(fā)人員在編寫程序時可以不斷重
32、用這些已經(jīng)經(jīng)過測試的類和方法,從而減少了程序的錯誤率。</p><p> 開發(fā)程序速度更快。Java編程語言相對C++來說更簡易,當用它編寫程序時,開發(fā)人員的開發(fā)實踐的速度將會快兩倍,而要求的代碼量卻更少。</p><p> 強大的跨平臺性.Java程序可以很輕松地在不同的平臺上進行移植。在Windows、Linux、Solaris、MacOS等平臺上都能使用同樣的代碼。</p&
33、gt;<p> 輕易地移植或遷移。用Java語言編寫的應(yīng)用程序被編譯到機器獨立的平臺上,這讓系統(tǒng)的移植和平臺的遷移變得非常簡單。</p><p> 軟件升級更容易。如果使用Java編寫的軟件,用戶可以只用鼠標單擊這樣簡單的操作啟動Java應(yīng)用程序。Java應(yīng)用程序在啟動時會自行檢查當前版本,如果有Java軟件的其他最新版本,軟件將自動地下載更新并進行安裝。</p><p>
34、; 2.2 關(guān)于ECLIPSE</p><p> Eclipse 是一個開放源代碼的強大的Java開發(fā)平臺,與它相關(guān)的許可證大多都是基于CPL(Common Public License),CPL是一個被OSI(Open Source Initiative)認可的許可證。Eclipse是和Sun ONE Studio、NetBeans、Borland JBuilder類似的一種整合型可擴展開發(fā)平臺,它是目前
35、最著名的開源項目之一[6]。Eclipse是用Java語言編寫的,它本身只是一個框架和一組服務(wù),通過插件組件來構(gòu)建開發(fā)環(huán)境。但是Eclipse還附帶了一個標準的插件集,其中就包括了Java開發(fā)工具(Java Development Tools,JDT)。Eclipse 還包括插件開發(fā)環(huán)境(Plug-in Development Environment,PDE),這個組件允許那些希望擴展 Eclipse 的軟件開發(fā)人員構(gòu)建與 Eclips
36、e 環(huán)境無縫集成的工具。</p><p> Eclipse未來的發(fā)展目標不只是成為專門開發(fā)Java程序的IDE環(huán)境,根據(jù)它的體系結(jié)構(gòu),通過一些開發(fā)插件,它能擴展到任何語言的開發(fā),甚至能成為圖片繪制工具[7]。由于 Eclipse 中基本上都是插件,各種不同類型的插件讓各種工具開發(fā)人員都可以在Eclipse這個場所中有所發(fā)揮。雖然 Eclipse 是使用 Java 語言開發(fā)的,但它的用途卻不限于 Java 語言,
37、它還支持C/C++、COBOL 和 Eiffel 等編程語言,只要安裝相應(yīng)插件即可。</p><p><b> 2.3 關(guān)于SDK</b></p><p> SDK(Software Development Kit),即軟件開發(fā)工具包,對于開發(fā)J2ME程序來說是必不可少的。選擇一款合適的SDK對開發(fā)軟件來說是十分重要的,而本次設(shè)計選擇的是Nokia S40 5th
38、 FP1 SDK。</p><p> SDK簡單來說就是Eclipse Platform、JDT和PDE所生產(chǎn)的組件的合并,這些組件組合之后將提供一個具有豐富特性的開發(fā)環(huán)境,并允許開發(fā)者建造一些可以無縫集成到Eclipse Platform中的工具。Eclipse SDK由Eclipse項目生產(chǎn)的軟件和第三方插件組合而成。其中Eclipse項目生產(chǎn)的軟件以 GPL發(fā)布,而第三方插件有其自身的許可協(xié)議。</
39、p><p> SUN公司作為Java技術(shù)的先行開發(fā)者和主要的推廣者,它開發(fā)的WTK集成的JSR規(guī)范最多,功能也最全面[8]。但是各大手機廠商為了產(chǎn)品的獨特性都自行開發(fā)了屬于自己的J2ME開發(fā)包,所以WTK開發(fā)包在實際中的應(yīng)用性會差很多。因為在WTK中調(diào)試正常的程序,卻不一定能夠放到真機中正常運行,有些甚至根本無法啟動。所以在實際的工作中,為了使辛苦開發(fā)的軟件最后不至于落得一無是處的下場,在開發(fā)軟件的初始階段就要根據(jù)
40、目標機型選好合適的SDK。</p><p> 第三章 程序結(jié)構(gòu)及其實現(xiàn)</p><p> 3.1 MusicOnline</p><p> 本設(shè)計的程序是一個手機音樂應(yīng)用程序,名為MusicOnline,中文名即在線聽歌。由于是一款音樂軟件,所以在設(shè)計的初始階段首先考慮到的便是音樂列表和音樂播放時的界面,然后在邏輯模型上,需要處理音樂數(shù)據(jù),連接網(wǎng)絡(luò)等,仔細思
41、考后,發(fā)現(xiàn)客戶端程序需要涵蓋UI組件設(shè)計、RMS管理、HTTP通信、XML解析等多個與J2ME相關(guān)的技術(shù)。而且在實現(xiàn)網(wǎng)絡(luò)模擬時還要設(shè)計服務(wù)器端的程序,將兩者放在一起,整個MusicOnline程序就是一個以C/S模式開發(fā)的商務(wù)軟件系統(tǒng),它主要實現(xiàn)的功能為:軟件的客戶端可以從服務(wù)器端下載音樂的詳細信息,將信息存儲在本地后并展示給用戶。當用戶選擇列表中某一首音樂后,軟件的客戶端能夠連接到服務(wù)器端進行在線播放音樂。</p>&l
42、t;p> 為了將這些功能完全的實現(xiàn),需要進行進一步的流程分析。最后決定的具體程序流程大致如下:首先是要實現(xiàn)客戶端從服務(wù)器端下載一些音樂的詳細信息。如果是文字信息就將以XML格式組織,這些文字信息具體包括音樂的標題、簡介、圖片ID和音樂ID等;接著軟件的客戶端完成解析后,需要將下載的信息保存到RMS中。另外根據(jù)圖片ID下載的圖片可以選擇保存在本地;然后是客戶端以列表的形式展示音樂信息;最后是當用戶選擇某一首音樂后,進入音樂播放界面
43、,顯示音樂信息的同時進行在線播放。</p><p> 分好詳細的步驟之后,就可以開始架構(gòu)每一步程序的具體結(jié)構(gòu)了。</p><p><b> 3.2 MVC模式</b></p><p> MVC(Model-View-Controller)中文翻譯為“模型-視圖-控制器”。使用MVC模式設(shè)計程序的核心思想就是將設(shè)計程序的主體分離成模型和視圖
44、兩個部分,其中模型部分的程序?qū)崿F(xiàn)了邏輯處理,視圖部分程序?qū)崿F(xiàn)了用戶界面展示,然后兩者通過控制器來實現(xiàn)同步。采用MVC模式有眾多優(yōu)點,主要為:高重用性、低耦合性、可適用性、較低的生命周期成本以及快速的開發(fā)和部署。當然,采用MVC模式來設(shè)計程序也會帶來一些麻煩。但總的來說MVC設(shè)計模式是一個創(chuàng)建應(yīng)用程序的很好途徑,它所提倡的一些原則,例如用戶界面和邏輯處理互相分離的概念非常容易理解,可以幫組軟件開發(fā)者理清思路。并且使用MVC可以使軟件程序在
45、代碼健壯性、代碼重用以及程序結(jié)構(gòu)方面變得更加完善[5]。</p><p> 本設(shè)計程序的客戶端就是采用MVC設(shè)計模式。主程序根據(jù)MVC模式分成視圖和模型兩個部分,加上控制器一共分為三個模塊。各個模塊的具體分類如下:</p><p> 視圖模塊:本設(shè)計中主要實現(xiàn)了兩個視圖,即音樂列表視圖(MusicListUI)和音樂播放視圖(MusicPlayerUI)。</p><
46、;p> 控制器模塊:本設(shè)計采用的是單控制器模式,只有一個控制器類(UIController)。</p><p> 模型模塊:設(shè)計中實現(xiàn)了多個模型類,其中包括XMLManager、RMSManager、RMSManager、HTTPManager等。</p><p> 分配完類之后,整個MusicOnline程序的類框架也出來了,如圖3.1所示。</p><p
47、> 圖 3.1 MusicOnline設(shè)計框架</p><p> 3.3 服務(wù)器端程序</p><p> 本次設(shè)計的軟件與移動互聯(lián)網(wǎng)有關(guān),為了方便開發(fā)及測試,我們需要搭建自己的服務(wù)器。這樣做有兩方面好處:一方面是在通信協(xié)議確定的情況下,可以同步開發(fā)客戶端程序和服務(wù)器端程序,從而縮短項目周期;另一方面,擁有自己搭建的服務(wù)器非常便于客戶端程序的調(diào)試[9]。</p>&
48、lt;p> Oracle的WebLogic是近年來世界上市場份額最大的應(yīng)用服務(wù)器,而緊追其后的就是IBM的WebSphere。不過這兩款軟件都是收費的,對于我們?nèi)粘W(xué)習(xí)或開發(fā)來說很不適用。除此之外比較常見的開源應(yīng)用程序有Tomcat,JBoss等。本設(shè)計的服務(wù)器端程序是采用Tomcat+Servlet來實現(xiàn)的。</p><p> 根據(jù)設(shè)計要求分析,服務(wù)器端需要實現(xiàn)兩種服務(wù):一種服務(wù)是服務(wù)器端在接收客戶端
49、發(fā)送的下載請求時,需要將服務(wù)器中相關(guān)的資源發(fā)送給客戶端。另一種服務(wù)是當服務(wù)器端收到播放請求時發(fā)布相應(yīng)的音樂文件,使得客戶端能實現(xiàn)在線播放。</p><p> 3.4 音樂列表的實現(xiàn)</p><p> 在啟動程序后,首先會顯示歡迎語句,然后就展示音樂列表界面。音樂列表界面展示的是以列表的形式排列的保存在本地的音樂信息。如果當前沒有任何音樂信息,那么就會只展示歡迎信息。</p>
50、<p> 實現(xiàn)歡迎信息的過程比較簡單,只需在Form中添加一個字符串救能實現(xiàn)。而音樂列表的實現(xiàn)是我通過在Form中添加若干個Customltem來實現(xiàn)的。模擬器顯示出的界面左邊是一排固定大小的圖片,每個圖片后面有兩行文字,上面一行文字用來展示音樂的標題,下面一行文字用來展示音樂的簡介。其中Customltem要實現(xiàn)兩個功能:一個功能是獲取要展示的音樂信息并按照上述布局繪制圖形界面。而另一個功能是在程序啟動時讀取了存儲在R
51、MS中的音樂信息,然后實例化相應(yīng)數(shù)量的Customltem添加到Form中,從而生成所需的音樂列表界面。</p><p> 3.5 音樂播放的實現(xiàn)</p><p> 實現(xiàn)音樂列表視圖之后,接著要實現(xiàn)的就是在音樂播放時的音樂視圖MusicPlayerUI,MusicPlayerUI是使用低級UI組件實現(xiàn)的。它需要實現(xiàn)的主要功能為繪制音樂圖片、顯示音樂信息以及在線播放音樂和關(guān)閉播放器。描繪
52、音樂的圖片和標題是在音樂播放器界面中的Canvas可繪制區(qū)域里繪制的,繪制出的圖片差不多占滿整個手機屏幕。而在播放界面中顯示音樂信息的方式我選擇了以Ticker的形式在繪制圖片的上方位置展示。最后的在線播放歌曲程序需要在選中某一首歌曲之后運行,運行后連接服務(wù)器端網(wǎng)絡(luò)進行在線播放,當返回音樂列表會退出程序的時候關(guān)閉播放器。</p><p> 3.5 網(wǎng)絡(luò)通信的實現(xiàn)</p><p> 設(shè)計
53、中的網(wǎng)絡(luò)通信采用的是所有Java手機都支持的HTTP(Hypertext Transfer Protocol)協(xié)議,它是近年來Internet上最流行的應(yīng)用級數(shù)據(jù)協(xié)議[10]。程序類在運行之后,當客戶端與服務(wù)器成功進行連接后,HTTPManager通過設(shè)置靜態(tài)請求參數(shù)ResponseObject向服務(wù)器請求下載信息。如果從服務(wù)器端下載的數(shù)據(jù)是文字信息(ResponseObject的值為XML),那就需要調(diào)用XML解析器XMLManage
54、r來組織信息;如果從服務(wù)器端下載的是圖片信息(ResponseObject的值為該圖片的ID),那就會調(diào)用文件儲存器FileManager來管理圖片的存儲。</p><p> 3.6 XML解析的實現(xiàn)</p><p> XML(Extensible Markup Language)中文翻譯為可擴展標記語言,它是用來存儲數(shù)據(jù)的。XML是一種簡單的數(shù)據(jù)存儲語言,它的功能是用一些簡單的標記來
55、描述數(shù)據(jù)。XML可以將數(shù)據(jù)和格式從網(wǎng)頁上分離出來,并在存儲數(shù)據(jù)的同時共享數(shù)據(jù)。它擁有極其出色的可擴展性,這使得它能夠在任何應(yīng)用程序中讀寫程序,因此XML也是唯一的數(shù)據(jù)交換公用語言。XML功能強大,但是它和Java語言一樣,易于理解和掌握。</p><p> 本設(shè)計中在文字信息解析部分時會利用XML進行實現(xiàn),實現(xiàn)解析功能的是開源的解析器KXML2。KXML2是一種只占很小存儲內(nèi)存的XML語法分析程序,在程序中的具
56、體運行流程為:當客戶端程序下載了來自服務(wù)器的文字信息(XML數(shù)據(jù),字節(jié)數(shù)組的形式)后,通過MusicListEntity類將數(shù)據(jù)轉(zhuǎn)換成輸入流(InputStreamReader)的形式,并且送給XMLManager。解析器會將解析出來的數(shù)據(jù)以Music對象為單位進行轉(zhuǎn)換成動態(tài)數(shù)組的對象,最后將數(shù)據(jù)返回給MusicListEntity,用來提取圖片ID和存儲。</p><p> 3.7 文件管理的實現(xiàn)</p
57、><p> 在設(shè)計中除了文字信息使用XML解析后保持在RMS以外,對圖片存儲是通過一個文件管理的類來實現(xiàn)管理的,這個類命名為FileManager。在存入時,F(xiàn)ileManager會將MusicListEntity類傳入的圖片ID和內(nèi)容,以文件形式存儲在指定的目錄UIController.ImageStorePath下。除了存儲功能之外,在設(shè)計時我又考慮到可能需要刪除圖片的功能,于是在FileManager中我利用
58、方法clear()實現(xiàn)刪除所有的圖片文件。</p><p> 3.8 各個功能模塊的控制</p><p> 在本設(shè)計中使用MVC模式設(shè)計程序時,是通過控制器來實現(xiàn)視圖類和模型類之間的映射的。這種功能如果出現(xiàn)在J2EE語言編寫的程序中那就會被嚴格執(zhí)行,可是在J2ME的程序中,那就需要根據(jù)實際得應(yīng)用情況來對模型類的控制進行設(shè)計,以減少多余的代碼。</p><p>
59、 于是我利用單一控制器實現(xiàn)視圖之間的切換和程序的網(wǎng)絡(luò)通信的控制功能。在實際運行中,控制器控制兩個視圖之間的切換與展示,還控制程序先清空本地音樂數(shù)據(jù)后再進行更新;并且在更新時會展示進度條,在更新完成后會提示更新完成。</p><p> 我在設(shè)計模型類的過程中,曾想到如果一些模型類只是用來實現(xiàn)一點簡單的功能的話,那么是否可以直接利用視圖模型類來控制這些簡單模型類的功能的實現(xiàn)。隨后在設(shè)計MusicListEntity
60、的過程中我嘗試了一下這個想法。于是這個MusicListEntity類又新增了一些功能,原來它本身只是服務(wù)于視圖類的一個模型類,不過現(xiàn)在它也可以直接調(diào)用網(wǎng)絡(luò)通信、XML解析器等功能模塊一起為那些音樂列表視圖提供服務(wù)。</p><p> 第四章 程序流程和具體分析</p><p><b> 4.1 程序分析</b></p><p> 整個
61、MusicOline程序使用MVC模式設(shè)計,因此由一個控制器類和若干視圖類以及若干模型類組成。其中控制類為UICotroller;模型類有FileManager、HTTPManager、Music、MusicListEntity、RMSManager、Util、XMLManager;而視圖類包括MusicItem、MusicListUI、MusicPlayerUI。</p><p> 在電腦中調(diào)試的過程中,主要
62、程序類的使用和流程大致如下:</p><p> 首先是控制器類UIController,設(shè)計中使用的是一個控制器,主要控制視圖之間的切換和顯示以及視圖與模型類間的映射關(guān)系。</p><p> 程序開始運行之后,會在電腦上彈出模擬器的窗口,模擬器屏幕上首先會展示出歡迎的語句。然后點擊update,程序會調(diào)用MusicManagerEntity中的update方法。該方法會繼續(xù)調(diào)用HTTP
63、Manager類與服務(wù)器之間進行通信。在通信的過程中,程序會下載XML中的文件,文件中記錄了音樂的詳細信息。而這個過程是由XMLManager來對XML進行的解析。</p><p> 完成解析工作之后,程序會將解析到的信息文件存入RMS中,這個存入的過程是通過調(diào)用RMSManager來實現(xiàn)的。然后根據(jù)獲得的圖片ID下載相應(yīng)的圖片。下載時調(diào)用HTTPManager,將圖片以文件的形式存儲。整個存儲過程由FileM
64、anager來管理實現(xiàn)。</p><p> 完成以上的步驟后,會顯示界面MusicListUI,在選擇一首歌曲播放之后,界面會進入MusicPlayerUI。在這個界面中會播放音樂,并且在旁展示音樂的詳細信息,這些信息都來自于RMS中,由RMSManager中的ReadMusic方法讀出。</p><p> 4.2 MusicItem</p><p> 在實現(xiàn)
65、音樂列表的編寫過程中,我想到可以在Form中添加若干個Customltem控件來實現(xiàn)。為此構(gòu)思了MusicItem類。MusicItem類的實現(xiàn)需要引用UIController類、Music類和Util類。MusicItem類是繼承于CustomItem類的子類。Item的寬度itemWidth、高度itemHeight等參數(shù)都是用private定義的,只能在它的類內(nèi)部訪問該字段。</p><p> 在實現(xiàn)獲取
66、音樂對象的信息時,用的是setMusic()方法,具體程序如下:</p><p> public void setMusic(Music music) {</p><p> this.music = music;</p><p> musicTitle = music.getTitle();</p><p> musicSummary
67、 = music.getSummary();</p><p> setImage(music.getImageID());</p><p><b> }</b></p><p> 如上所示,方法主要通過賦值和調(diào)用music類中的方法,將Music中的數(shù)據(jù)賦予MusicItem的變量中。從而得到音樂信息。</p><p&
68、gt; 而在實現(xiàn)獲取當前音樂對象圖片并進行縮放時,使用的是方法setImage()。方法調(diào)用了Util類中的scaleImage()方法對圖片的長度進行了處理。并且在方法運行的過程中還調(diào)用了UIController類中的參數(shù)進行運算來獲取圖片鏈接信息。而在后面的設(shè)置當前選中的音樂對象和繪制當前Item中,分別使用了traverse()方法和paint()方法。方法traverse()很簡單,因為主要功能是實現(xiàn)設(shè)置功能,所以程序的主要內(nèi)
69、容是對數(shù)據(jù)的設(shè)定。具體如下:</p><p> protected boolean traverse(int dir,</p><p> int viewportWidth,</p><p> int viewportHeight,</p><p> int[] visRect_inout) {</p><p>
70、; UIController.setCurrentMusic(music);</p><p> return false;</p><p><b> }</b></p><p> 而方法paint()實現(xiàn)的是繪圖功能,程序的主要內(nèi)容就是調(diào)用擴展包中的繪圖類的方法來進行繪圖。因此整個方法也比較簡單,都是一些調(diào)用語句。</p>
71、<p> 4.3 MusicListUI</p><p> MusicListUI類也是為了實現(xiàn)音樂列表的實現(xiàn),其主要功能是展示載入音樂信息后的音樂列表。在MusicListUI類中,也調(diào)用了其他的程序類,其中包括UIController類、Music類和MusicListEntity類。而擴展包中的類主要有Command、CommandListener、Displayable和Form,它們都是
72、屬于lcdui繪圖包中的類。主程序MusicListUI是繼承CommandListener的子類。</p><p> 在程序的一開始,先用MusicListUI()調(diào)用父類構(gòu)造器進行初始化。然后是對列表數(shù)據(jù)的初始化,使用的是initView()方法,initView()方法利用UIController類和Music類來完成程序的流程。運行后如果列表中沒有音樂數(shù)據(jù),那么就會先顯示歡迎信息。具體程序如下:<
73、/p><p> public void initView() {</p><p> loadMusicList();</p><p> this.deleteAll();</p><p> if(musicList == null || musicList.size() == 0) {</p><p> this
74、.deleteAll();</p><p> this.append(WelcomeContent);</p><p> this.removeCommand(UIController.okCommand);</p><p> this.removeCommand(UIController.clearCommand);</p><p>
75、<b> } else {</b></p><p> this.addCommand(UIController.okCommand);</p><p> this.addCommand(UIController.clearCommand);</p><p> int size = musicList.size();</p>
76、<p> int width = this.getWidth();</p><p> int height = this.getHeight()/4;</p><p> UIController.setScreenWidth(width);</p><p> for(int i = 0; i < size; i++){</p>
77、<p> MusicItem item = new MusicItem(width, height);</p><p> Music music = (Music)musicList.elementAt(i);</p><p> item.setMusic(music);</p><p> this.append(item);</p>
78、<p><b> }</b></p><p><b> }</b></p><p><b> }</b></p><p> 而在載入音樂數(shù)據(jù)列表時使用了兩個方法,分別是loadMusicList()和commandAction(),它們分別調(diào)用的是MusicListEntity類
79、和UIController類。loadMusicList()實現(xiàn)的功能是加載音樂,說簡單點就是為音樂列表賦值,因此程序主內(nèi)容的實現(xiàn)很簡單,只需要一句調(diào)用賦值就能實現(xiàn)。而commandAction()程序的主體主要使用if和else if循環(huán)實現(xiàn),通過調(diào)用UIController中的方法間接實現(xiàn)功能。</p><p> 4.4 MusicPlayerUI</p><p> MusicPl
80、ayerUI類是使用低級UI組件實現(xiàn)的,它的主要功能是在播放音樂時顯示播放器的界面。它調(diào)用的同程序類為UIController類和Music類。它不是繼承子類。</p><p> 在主函數(shù)MusicPlayerUI中,因為要實現(xiàn)音樂信息的展示,并且展示方法選擇了使用ticker滾動的方式,所以在一開始便使用new運算符構(gòu)造一個新的Ticker。而且調(diào)用了UIController中的getScreenWidth(
81、)方法來獲得屏幕寬度。</p><p> 接下來便要初始化播放視圖,設(shè)計中利用了initView()方法來實現(xiàn)這個功能。在方法中先是對視圖的數(shù)值進行設(shè)置,最后調(diào)用后面的playMusic()方法直接播放音樂。程序具體如下:</p><p> public void initView(Music music) {</p><p> currentMusic =
82、music;</p><p> image = currentMusic.getImage();</p><p> startImageX = (width - image.getWidth())/2;</p><p> title = currentMusic.getTitle();</p><p> startTitleX = (
83、width - titleFont.stringWidth(title))/2;</p><p> String summary = currentMusic.getSummary();</p><p> ticker.setString(summary);</p><p> this.setTicker(ticker);</p><p&g
84、t; playMusic();</p><p><b> }</b></p><p> 而繪制音樂播放視圖時又重新定義了一個paint()方法來實現(xiàn),方法中也是通過調(diào)用一系列的繪圖類來完成程序。最后使用了commandAction()方法,調(diào)用了UIController進行條件設(shè)定,來實現(xiàn)關(guān)閉播放器的功能。</p><p> 4.5 H
85、TTPManager</p><p> 為了實現(xiàn)采用HTTP協(xié)議的網(wǎng)絡(luò)通信而編寫的HTTPManager,與其它程序類之間相對獨立,因此除了調(diào)用一些JavaIO包中的類等以外沒有調(diào)用同程序的其他類。HTTPManager是繼承Runnable類的子類,整個類程序由一個run()方法包括。整個程序流程大致為:請求對象,申請Servlet服務(wù)的URL,設(shè)置最大下載數(shù)據(jù)量,設(shè)置當前申請對象,最后連接服務(wù)器,下載數(shù)據(jù)。
86、</p><p> 4.6 XMLmanager</p><p> XMlManager類與HTTPManager類相似,都是比較獨立的程序類,在程序中沒有引用其它的同程序類。在程序開始的時候先是構(gòu)造一個解析器,用new運算符完成。接著載入XML文檔數(shù)據(jù)并獲取當前解析器事件,在沒有到達文檔結(jié)束事件前,通過循環(huán)處理數(shù)據(jù)。獲取下一個事件后開始處理起始標識符,其它的當解析器位于元素內(nèi)容時,讀
87、取標識內(nèi)容;當解析器位于標識結(jié)束時,顯示讀取的標識內(nèi)容。</p><p> 4.7 FileManager</p><p> FileManager類是模型類中的一個類,主要功能是管理存儲文件。其存儲圖片的過程是通過方法storeImage()來實現(xiàn)的。而刪除目錄下的所有圖片是通過方法clear()來實現(xiàn)的。兩個方法在運行的過程中都調(diào)用了UIController類。</p>
88、<p> 4.8 UIController</p><p> UIController作為本設(shè)計的唯一控制器,主要功能自然也是控制各個視圖類和模型類。在程序中,它的主要控制功能和流程大致如下:定義各種菜單命令,定義各種視圖類,展示音樂列表視圖,展示音樂播放視圖,更新本地音樂信息并彈出進度條,提示更新完成,清空本地音樂數(shù)據(jù)。在定義各種菜單命令時,全部都是用public定義的,為了方便被其他類調(diào)用。
89、展示音樂列表視圖是通過方法showMusicListUI()實現(xiàn)的,展示音樂播放視圖是通過方法showMusicPlayerUI()實現(xiàn)的,而更新本地音樂信息并彈出進度條自然是使用重新定義的update()方法實現(xiàn)的,updateFinish()實現(xiàn)了更新完成時的實現(xiàn),最后用clear()方法實現(xiàn)清空本地音樂數(shù)據(jù)的操作。由于是主控制程序,調(diào)用的同程序類相對也比較多,調(diào)用的程序類有Music類、MusicListEntity類、RMSMa
90、nager類、MusicListUI類以及MusicPlayerUI類,而且還調(diào)用了構(gòu)造器startMIDlet。</p><p> 4.9 MusicListEntity</p><p> MusicListEntity類屬于模型類,它的本身是服務(wù)于音樂列表視圖的一個模型類。MusicListEntity類只調(diào)用了UIController類,但是在程序運行時,MusicListEnt
91、ity類可以調(diào)用網(wǎng)絡(luò)通信。XML解析等功能 模塊來共同為音樂列表視圖提供服務(wù)。程序的主要流程大致為:載入音樂列表數(shù)據(jù);啟動音樂數(shù)據(jù)更新;解析下載的XML數(shù)據(jù);下載圖片;清空所有的音樂數(shù)據(jù)。當然實現(xiàn)這些的方法都被MusicListEntity類包括,實現(xiàn)載入音樂列表數(shù)據(jù)的是方法loadMusicList(),實現(xiàn)啟動音樂數(shù)據(jù)更新的是新定義的update()方法:</p><p> public void upda
92、te() {</p><p> Thread t = new Thread(HTTPManager.getInstance());</p><p> HTTPManager.getInstance().setResponseType("XML");</p><p><b> t.run();</b></p>
93、<p><b> }</b></p><p> 如上所示,可以看出方法很明顯的直接調(diào)用了HTTPManager中的run()方法來實現(xiàn)連接網(wǎng)絡(luò)更新數(shù)據(jù)的功能。而方法parse()實現(xiàn)了解析下載的XML數(shù)據(jù),downloadImage實現(xiàn)了下載圖片的功能等,也都是通過直接調(diào)用來實現(xiàn)具體功能的。最后清空所有的音樂數(shù)據(jù)時使用了方法clear()來實現(xiàn)。</p>&l
94、t;p> 第五章 測試與改進</p><p><b> 5.1測試與打包</b></p><p> 測試過程相對比較簡單,在Eclipse中選中要運行的文件,選擇菜單Run,就會啟動默認SDK的模擬器。此時在控制臺會首先輸出一些模擬器啟動的信息,然后顯示結(jié)果。</p><p> 在運行剛開始的時候,模擬器的手機屏幕上會顯示歡迎語
95、句,如圖5.1所示。將光標點擊確定按鈕選中update,模擬器就會進行更新,如果更新成功,模擬器上就會先顯示更新成功的語句(如圖5.2),然后馬上跳轉(zhuǎn)界面,展示出更新的音樂列表(如圖5.3)。音樂列表的控制主要有上下方向鍵,確定鍵和退出鍵。使用確定鍵選中其中一首歌曲,界面就會再度跳轉(zhuǎn)到MusicPlayerUI的界面。這個界面就是所說的音樂播放時的界面,在這個界面中模擬器會顯示歌曲的相應(yīng)圖片,如果沒有就顯示默認圖片。除此之外,界面還會顯
96、示音樂的詳細信息,并以Ticker的方式滾動展示,具體如圖5.4所示。</p><p> 當然也可以用其他的模擬器測試結(jié)果,更換模擬器只要先下好相應(yīng)的SDK,導(dǎo)入Eclipse。然后在運行RUN旁的小菜單中選擇Run Configurations進入其界面,再選擇Emulation,在當前界面選擇自己要替換的SDK,最后別忘了點擊下Apply,再點擊Run就可以了。不過更換SDK可能會造成結(jié)果錯誤,所以要小心選
97、擇SDK。</p><p> 圖5.1 手機初始界面 圖5.2 更新成功界面</p><p> 圖 5.3 音樂列表界面 圖 5.4 音樂播放界面</p><p> 開發(fā)的J2ME程序最后是要在移動設(shè)備上運行的,所以我們需要打包開發(fā)完畢的工程項目(也就是將程序做成Midlet Suite)。如果在Ecli
98、pse中已經(jīng)安裝過EclipseME插件,那么打包的方法就變得非常簡單。只要在Eclipse界面中右擊工程項目,選擇J2ME—Create Package,系統(tǒng)就會自行完成打包。完成打包后,你可以在項目的deployed目錄下找到JAR包和JAD文件兩個生成文件。把它們同時安裝到相應(yīng)的手機上,就可以在手機上運行項目了。</p><p><b> 5.2 程序的改進</b></p>
99、;<p> 在完成軟件程序的設(shè)計之后,發(fā)現(xiàn)其實還有很多地方可以改進。大部分的地方還能進行功能擴展。</p><p> 在音樂列表方面,其實還能將下載的音樂進行分類,比如搖滾、輕音樂等。這需要在XML文件中額外增加一個類型標簽用來說明音樂的分類。而在界面實現(xiàn)上,可以利用一個列表將各種分類羅列出來,當點擊某一個分類時,就會進入分類界面。</p><p> 在控制方面,可以增
100、加一個讓用戶設(shè)置的界面,這個新增功能能讓用戶自己進行字體、顏色、背景圖片等參數(shù)的調(diào)節(jié)。設(shè)置完成后程序?qū)延脩舻膮?shù)設(shè)置保存下來,當下一次啟動程序的時侯程序就會自動載入之前用戶的設(shè)置。</p><p> 在設(shè)計界面外觀上,可以為每個視圖設(shè)置一些精致華麗的背景顏色及背景圖片,而字體的顏色也可以修改的絢麗點,文字的動態(tài)效果可以改用計時器Timer進行實現(xiàn)等。如果這些還是不能滿足用戶要求,那還可以考慮利用一些當前開源
101、的UI框架,例如LWUIT,J4ME等。</p><p> 在讀取音樂數(shù)據(jù)方面,本設(shè)計的程序是一次性將所有的音樂數(shù)據(jù)都讀入了內(nèi)存。但是在實際應(yīng)用當中,手機的內(nèi)存資源通常十分有限,如果音樂數(shù)據(jù)的數(shù)量太多的話,很可能會造成手機內(nèi)存不足。為了解決這個問題,在讀取數(shù)據(jù)方面可以進一步設(shè)置一個讀入內(nèi)存的音樂數(shù)據(jù)上限。這樣每次讀取音樂數(shù)據(jù)時只會讀取幾首歌曲,而且只有當使用光標下移的時候,程序才會刪除原來的音樂列表數(shù)據(jù)并下載新
102、的數(shù)據(jù)。當然,如果日后的手機內(nèi)存發(fā)展的非常大,那又另當別論了。</p><p><b> 總結(jié)</b></p><p><b> 總結(jié)與感想</b></p><p> 本設(shè)計實現(xiàn)了手機上以J2ME為平臺的在線音樂軟件的開發(fā),如今手機軟件發(fā)展迅速,手機軟件的種類和數(shù)量越來越多,鋪天蓋地般遍及各個手機平臺。本設(shè)計選擇了比
103、較普遍的手機音樂軟件。</p><p> 這款手機軟件作為我的畢業(yè)設(shè)計,是本人目前做過的最有意義的程序,這期間對J2ME的學(xué)習(xí),使我又嘗到了學(xué)習(xí)的快樂。在數(shù)據(jù)庫、各種應(yīng)用軟件和游戲中,我覺得對軟件的設(shè)計有極大的熱情。因為自己本身的手機中也有大量五花八門的手機軟件,各種軟件功能強大且界面美觀,不由讓人萌生自己開發(fā)的沖動;而且開發(fā)軟件的自由度大,目標只是為了方便用戶使用而盡可能的編寫功能程序,當經(jīng)過無數(shù)次的調(diào)試、修
104、改后,最終看到了成品,也算是很有成就感的一件事。雖然和自己手機上的成品軟件還是有一定的差距,有點小遺憾,但本設(shè)計卻是盡了自身的水平開發(fā)的全力之作,還是讓人感到欣慰。</p><p> 學(xué)習(xí)J2ME比想象中困難多了,在設(shè)計初期,為了構(gòu)思并解決視圖的實現(xiàn)和控制,真是花費了不少時間。在設(shè)計模型的時候,曾想過用一個程序就一步到位,但后來發(fā)現(xiàn)這樣在修改程序和邏輯整理上會產(chǎn)生相當大的難度。在閱讀了部分書籍之后,便決定改用M
105、VC模式來設(shè)計程序。還有模型類設(shè)計等等,都需要大量的時間和精力去編排和調(diào)試。在這個過程中,前人的開發(fā)經(jīng)驗所著的書籍和文章對我的幫助頗大,讓我得以在學(xué)習(xí)J2ME的崎嶇道路上匍匐前行。</p><p><b> 參考文獻</b></p><p> 古長龍. 手機軟件開發(fā)中的程序加載方法研究及應(yīng)用. 中文期刊數(shù)據(jù)庫. 2009.05.20.</p><
106、;p> 陳粵. 基于J2ME平臺的手機應(yīng)用程序研究與開發(fā). 中文期刊數(shù)據(jù)庫. 2003.04.18.</p><p> 吳小娟. 基于J2ME的移動商務(wù)系統(tǒng)的安全設(shè)計與實現(xiàn). 中文期刊數(shù)據(jù)庫. 2009.04.</p><p> 辛立偉,張帆,等. Java從初學(xué)到精通. 電子工業(yè)出版社. 2010.06 31.</p><p> 黃正環(huán). Jav
107、a ME 手機應(yīng)用開發(fā)大全. 科學(xué)出版社. 2010.06. 395~415</p><p> 廩生利,劉華軍編著. 精通J2ME無線編程[M]. 中國鐵道出版社. 2004.11.</p><p> 何峰賦. 淺談J2ME技術(shù)在移動信息終端上的應(yīng)用. 中國科技信息. 2004. 120~121</p><p> 周緒宏,梁阿磊,威正偉. 基于嵌入式Linux
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 眾賞文庫僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- j2me畢業(yè)論文-- j2me手機彩票軟件開發(fā)
- 電子與信息工程畢業(yè)論文基于j2me環(huán)境的手機游戲軟件的開發(fā)
- 基于j2me環(huán)境的手機功能軟件開發(fā)【文獻綜述】
- 基于j2me環(huán)境的手機功能軟件開發(fā)【開題報告】
- 畢業(yè)論文---- 基于j2me的手機游戲開發(fā)
- 基于j2me平臺的手機應(yīng)用開發(fā)-畢業(yè)論文
- 基于j2me平臺的手機應(yīng)用開發(fā)-畢業(yè)論文
- 畢業(yè)論文范文——基于j2me的手機游戲開發(fā) (2)
- 基于j2me環(huán)境的手機游戲軟件的開發(fā)【文獻綜述】
- 基于j2me環(huán)境的手機游戲軟件的開發(fā)【開題報告】
- 畢業(yè)設(shè)計---基于j2me的手機游戲開發(fā)
- 畢業(yè)論文——基于gprs網(wǎng)絡(luò)的j2me應(yīng)用開發(fā)
- 基于j2me平臺的手機游戲開發(fā)
- 基于j2me平臺的手機游戲開發(fā)
- 基于j2me的手機定時系統(tǒng)的設(shè)計與實現(xiàn)畢業(yè)論文
- 畢業(yè)論文基于j2me的手機定時系統(tǒng)的設(shè)計與實現(xiàn)
- 基于j2me手機推箱子游戲的設(shè)計與實現(xiàn)[畢業(yè)論文]
- 基于J2ME的手機應(yīng)用軟件的研究與開發(fā).pdf
- j2me游戲畢業(yè)論文
- java基于j2me的手機游戲開發(fā)(論文+源代碼)
評論
0/150
提交評論