2023年全國碩士研究生考試考研英語一試題真題(含答案詳解+作文范文)_第1頁
已閱讀1頁,還剩25頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)

文檔簡介

1、<p><b>  畢業(yè)論文/設計</b></p><p>  題 目: 手機天氣預報系統(tǒng) </p><p>  姓 名: </p><p>  系 別: 信息工程系 </p><p>  專 業(yè):

2、 計算機應用技術(shù) </p><p>  班 級: </p><p>  指導老師: </p><p>  日 期: 2012年4月20日 </p><p><b>  摘 要&

3、lt;/b></p><p>  隨著移動通信技術(shù)的發(fā)展和無線數(shù)據(jù)業(yè)務的進步,手機已被賦予了除通話以外的其它許多功能。全新的手機軟件領(lǐng)域已逐漸聚焦了眾多軟件開發(fā)商的目光,軟件開發(fā)者和軟件用戶將共同面臨這個振奮人心的新境界。</p><p>  本設計使用Android設計技術(shù)開發(fā)了一種運用在Android系統(tǒng)上的手機天氣預報軟件系統(tǒng),本系統(tǒng)通過選擇城市來獲得天氣,風向,風向,溫度等信

4、息?;谑謾C的天氣預報系統(tǒng)軟件可以使用戶對于各地的天氣情況的實時掌握,極大的方便了用戶的出行和行程安排,避免了不必要的麻煩,具有很強的實用性。</p><p>  關(guān)鍵詞:Android 手機天氣預報軟件系統(tǒng) </p><p><b>  目 錄</b></p><p><b>  摘 要3</b><

5、/p><p><b>  第一章 緒論5</b></p><p>  1.1系統(tǒng)開發(fā)的背景介紹:5</p><p>  1.2系統(tǒng)開發(fā)的摘要7</p><p>  1.3系統(tǒng)開發(fā)的目的7</p><p>  1.4系統(tǒng)研究內(nèi)容8</p><p>  1.5項目需求分析

6、8</p><p>  第二章Google android移動平臺的相關(guān)理論8</p><p>  2.1 Goolge android 移動平臺的概述8</p><p>  2.1.1 Android系統(tǒng)的特點:9</p><p>  2.1.2Android的功能:9</p><p>  2.2 Goog

7、le android移動平臺開發(fā)過程研究10</p><p>  2.3 Google android移動平臺下的應用研究10</p><p><b>  2.4小結(jié)11</b></p><p>  第三章 掌上手上天氣預報系統(tǒng)程序設計11</p><p>  3.1 Android平臺的用戶界面實現(xiàn)12<

8、;/p><p>  3.2 創(chuàng)建中國城市列表數(shù)據(jù)13</p><p>  3.2.1 獲取城市列表數(shù)據(jù)14</p><p>  3.2.2解析數(shù)據(jù)列表15</p><p>  3.2.3在UI上呈現(xiàn)城市列表數(shù)據(jù)16</p><p>  第四章 系統(tǒng)測試16</p><p><

9、;b>  第五章 結(jié)論19</b></p><p><b>  致謝:20</b></p><p><b>  參考文獻21</b></p><p><b>  第一章 緒論</b></p><p>  1.1系統(tǒng)開發(fā)的背景介紹:</p>

10、<p>  手機是已經(jīng)成為了生活中不可少的通讀設備,沒有手機有時會讓人覺得寸步難行,手機將脫離傳統(tǒng)的打電話,發(fā)短信等基本功能,而基于智能手機的處理能力和可擴展能力,基于3G網(wǎng)絡高速數(shù)據(jù)傳輸,越來越多的功能和業(yè)務將被開發(fā)出來并大規(guī)模的應用。正基于此,當全世界的目光聚集在此的時候,Google于2007年11月5日宣布推出基于linux平臺的開源手機操作系統(tǒng),號稱首個為移動終端打造的真正開發(fā)和完整的移動軟析------androi

11、d.</p><p>  Android是基于Linux內(nèi)核的軟件平臺和操作系統(tǒng),早期由Googel開發(fā),后由開放手機聯(lián)盟(Open handset Alliance)開發(fā)。它采用了軟件層(Software stack)的構(gòu)架,主要分為三個部分。底層以Linux為內(nèi)核作為基礎,由C語言開發(fā),只提供基礎功能,中間層次包話函數(shù)庫和虛擬機,由C++開發(fā)。最上層是各種應用軟件,包話通話程序,短信程序。應用軟件由各公司自行

12、開發(fā),以JAVA編寫。</p><p>  Android作為一個操作系統(tǒng),它包話了:</p><p><b>  中介軟件:</b></p><p>  操作系統(tǒng)與應用程序的溝通橋梁,應用分為兩層:函數(shù)層(Library)和虛擬機(Virtual Machine)。 Bionic是 Android 改良libc的版本。Android 同時包含

13、了Webkit,所謂的Webkit 就是Apple Safari 瀏覽器背后的引擎。Surface flinger 是就2D或3D的內(nèi)容顯示到屏幕上。Android使用工具鏈(Toolchain)為Google自制的Bionic Libc。 Android采用OpenCORE作為基礎多媒體框架。OpenCORE可分7大塊:PVPlayer、PVAuthor、Codec、PacketVideo Multimedia Framework(P

14、VMF)、Operating System Compatibility Library(OSCL)、Common、OpenMAX。 Android 使用skia 為核心圖形引擎,搭配OpenGL/ES。skia與Linux Cairo功能相當,但相較于Linux Cairo, skia 功能還只是雛形的。2005年Skia公司被Google收購,2007年初,Skia</p><p><b>  硬件抽

15、像層:</b></p><p>  Android 的 HAL(硬件抽像層)是能以封閉源碼形式提供硬件驅(qū)動模塊。HAL 的目的是為了把 Android framework 與 Linux kernel 隔開,讓 Android 不至過度依賴 Linux kernel,以達成 kernel independent 的概念,也讓 Android framework 的開發(fā)能在不考量驅(qū)動程序?qū)崿F(xiàn)的前提下進行

16、發(fā)展。HAL stub 是一種代理人(proxy)的概念,stub 是以 *.so 檔的形式存在。Stub 向 HAL“提供”操作函數(shù)(operations),并由 Android runtime 向 HAL 取得 stub 的 operations,再 callback 這些操作函數(shù)。HAL 里包含了許多的 stub(代理人)。Runtime 只要說明“類型”,即 module ID,就可以取得操作函數(shù)</p><

17、p><b>  編程語言:</b></p><p>  Android 是運行于 Linux kernel之上,但并不是GNU/Linux。因為在一般GNU/Linux 里支持的功能,Android 大都沒有支持,包括Cairo、X11、Alsa、FFmpeg、GTK、Pango及Glibc等都被移除掉了。Android又以bionic 取代Glibc、以Skia 取代Cairo、再以

18、opencore 取代FFmpeg 等等。Android 為了達到商業(yè)應用,必須移除被GNU GPL授權(quán)證所約束的部份,例如Android將驅(qū)動程序移到 userspace,使得Linux driver 與 Linux kernel徹底分開。bionic/libc/kernel/ 并非標準的kernel header files。Android 的 kernel header 是利用工具由 Linux kernel header 所產(chǎn)生

19、的,這樣做是為了保留常數(shù)、數(shù)據(jù)結(jié)構(gòu)與宏。目前Android 的 Linux kernel控制包括安全(Security),存儲器管理(Memory Management),程序管理(Process Management),網(wǎng)絡堆</p><p><b>  安全權(quán)限機制:</b></p><p>  Android本身是一個權(quán)限分立的操作系統(tǒng)。在這類操作系統(tǒng)中,每個應

20、用都以唯一的一個系統(tǒng)識別身份運行(Linux用戶ID與群組ID)。系統(tǒng)的各部分也分別使用各自獨立的識別方式。Linux就是這樣將應用與應用,應用與系統(tǒng)隔離開。 </p><p>  系統(tǒng)更多的安全功能通過權(quán)限機制提供。權(quán)限可以限制某個特定進程的特定操作,也可以限制每個URI權(quán)限對特定數(shù)據(jù)段的訪問。Android安全架構(gòu)的核心設計思想是,在默認設置下,所有應用都沒有權(quán)限對其他應用、系統(tǒng)或用戶進行較大影響的操作。這其

21、中包括讀寫用戶隱私數(shù)據(jù)(聯(lián)系人或電子郵件),讀寫其他應用文件,訪問網(wǎng)絡或阻止設備待機等。安裝應用時,在檢查程序簽名提及的權(quán)限,且經(jīng)過用戶確認后,軟件包安裝器會給予應用權(quán)限。從用戶角度看,一款Android應用通常會要求如下的權(quán)限。撥打電話、發(fā)送短信或彩信、修改/刪除SD卡上的內(nèi)容、讀取聯(lián)系人信息、讀取日程信息,寫入日程數(shù)據(jù)、讀取電話狀態(tài)或識別碼、精確的(基于GPS)地理位置、模糊的(基于網(wǎng)絡獲?。┑乩砦恢谩?chuàng)建藍牙連接、對互聯(lián)網(wǎng)的完全訪

22、問、查看網(wǎng)絡狀態(tài),查看WiFi狀態(tài)、避免手機待機、修改系統(tǒng)全局設置、讀取同步設定、開機自啟動、重啟其他應用、終止運行中的應用、設定偏好應用、震動控制、拍攝圖片等。一款應用應該根據(jù)自身提供的功能,要求合理的權(quán)限。用戶也可以分析一款應用所需權(quán)限,從而簡單判定這款應用是否安全。如一款應用是不帶廣告的單機版,也沒有任何附加內(nèi)容需要下</p><p>  1.2系統(tǒng)開發(fā)的摘要</p><p>  A

23、ndroid這個平臺對于Gooleg對于大眾的意義不在于手機本身,Android存在的目的也不在于挑起手機操作系統(tǒng)之間的混戰(zhàn),而在于推動移動互聯(lián)網(wǎng)產(chǎn)業(yè)鏈的迅速成型。</p><p>  具在開源性的Android平臺打破了之前symbina,widows,mobile等操作系統(tǒng)收取高額的授權(quán)費用的模式,使得只能手機成來大大下降。同時,合作方能在這里得到利潤或者創(chuàng)造價值,手機軟件行業(yè)得到維護協(xié)調(diào)發(fā)展。</p&

24、gt;<p>  以Google,蘋果和諾基亞為中心各自形成的生態(tài)鏈將以原來數(shù)倍的速度推動移動互聯(lián)網(wǎng)的發(fā)展,這正是Google發(fā)布Android平臺的意義,也是Android平臺存在的使命所在,而作為Android平臺成員之一的中國移動也投資成立了一家通訊公司,專門從事Google手機平臺上添加飛信,輸入法等一系列符合國內(nèi)用戶使用特色的功能。國內(nèi)眾多個業(yè)也將目光投入了Android上面,并啟動了相關(guān)的計劃來深入地理解并發(fā)展

25、android。更多的手機軟件開發(fā)企業(yè)已經(jīng)或者籌備著將公司進行轉(zhuǎn)型,從其主向的開發(fā)轉(zhuǎn)向到android的開發(fā)。</p><p>  綜上所述,無論是國內(nèi)還是在國外,Android平臺對手機軟件行業(yè)和移動手機平臺將發(fā)揮極大的推動作用,而在未來的幾年或者一段時間內(nèi),Android將越來越顯示出自已的重要性。</p><p>  基于此,我們有必要通過進行相關(guān)的研究來了解Android平臺,來了

26、解開發(fā)Android的那一大批人的先進的理念和思想,并通過這些來了解手機軟件行業(yè),進而了解未來移動互聯(lián)網(wǎng)的發(fā)展趨勢,從而更好的適應時代的需要。</p><p>  1.3系統(tǒng)開發(fā)的目的</p><p>  在科技日益發(fā)達的今天,社會競爭越來越激烈,這要求人們不斷的攝取信息,同時手機發(fā)展到現(xiàn)在已經(jīng)成為廣大人民群眾的日常使用的通讀工具,手機的功能也日趨完善。我國的通讀移動通訊功能同樣得到了很大

27、的提高。手機軟件可以安裝在手機上的軟件,完善原始系統(tǒng)的不足與個性化。隨著科技的發(fā)展,現(xiàn)在手機的功能也越來越多,越來越強大。經(jīng)濟發(fā)展和社會進步,人們的出行更加頻繁,對于天氣的關(guān)注更加強烈,基于這種原因我們開發(fā)了一種運用在Android系統(tǒng)上的手機天氣預報軟件系統(tǒng),本系統(tǒng)通過選擇城市來獲得天氣,風向,風向,溫度等信息?;谑謾C的天氣預報系統(tǒng)軟件可以使用戶對于各地的天氣情況的實時掌握,極大的方便了用戶的出行和行程安排,避免了不必要的麻煩。本次

28、設計在Android手機系統(tǒng)可以準確預測包括:時間,溫度,風向等,并顯示在手機界面上,方便準確地了解天氣信息。</p><p><b>  1.4系統(tǒng)研究內(nèi)容</b></p><p><b>  數(shù)據(jù)源的選取</b></p><p><b>  界面的設計</b></p><p&g

29、t;<b>  代碼的設計</b></p><p><b>  程序的測試</b></p><p><b>  產(chǎn)品的發(fā)布</b></p><p><b>  1.5項目需求分析</b></p><p>  能夠查詢數(shù)據(jù)庫存中城市的天氣情況。</p&

30、gt;<p>  系統(tǒng)能通過手機查看并顯示天氣數(shù)據(jù)。</p><p>  系統(tǒng)必須具有安全性,可靠性,獨立性。</p><p>  第二章Google android移動平臺的相關(guān)理論 </p><p>  2.1 Goolge android 移動平臺的概述</p><p>  Android 是 Goolge公司于07年11

31、月5日宣布的基于LINUX平臺開源手機操作系統(tǒng),該平臺由操作系統(tǒng),中間件,用戶界面和應用軟件組成,Android是Goolge開發(fā)的基于linux平臺的開源手機操作系統(tǒng)。它包括操統(tǒng),用戶界面和應用程序--------移動電話工作所需的全部軟件,而且不存在任何以往阻礙移動產(chǎn)業(yè)創(chuàng)新的專有權(quán)障礙,谷歌與開放手機聯(lián)盟合作開發(fā)了Android,這個聯(lián)盟由包括中國移動,摩托羅拉,高通,宏達在內(nèi)的30多家技術(shù)和無線應用的領(lǐng)軍企業(yè)組成。通過與運營商,設

32、備制造商,開發(fā)商和其他有關(guān)各方結(jié)成深層次的合作伙伴關(guān)系,希望借助建立標準化,開放式的移動電話軟件平臺,在移動產(chǎn)業(yè)內(nèi)形成一個開放式生態(tài)系統(tǒng)</p><p>  2.1.1 Android系統(tǒng)的特點:</p><p>  1、開放性。Google與開放性手機聯(lián)盟合作開發(fā)了android,Google通過與動行商,通過與運營商,設備制造商,開發(fā)商和其他有關(guān)各方結(jié)成深層次的合作伙伴關(guān)系,希望借助建

33、立標準化,開放式的移動電話軟件平臺,在移動產(chǎn)業(yè)內(nèi)形成一個開放式生態(tài)系統(tǒng)。</p><p>  2、應用程序無界限。Android上的應用可以通過標準API訪問核心移動設備功能。通過互聯(lián)網(wǎng),應用程序可以聲明它們的功能可提供其它應用程序使用。</p><p>  3、應用程序是在平等的條件下創(chuàng)建的,移動設備上的應用程序可以被替換或擴展,即使是撥號或主屏幕這樣的核心組件。</p>

34、<p>  4、應用程序可以輕松地嵌入網(wǎng)絡。應用程序可以輕松地嵌入HTML,javascript和樣式表,還可以通過Webview顯示內(nèi)容。</p><p>  5、應用程序可以并行運行。Android是一種完整的多任務環(huán)境,應用程序可以在其中并行運行,在后臺運行時,應用程序可以生成通知引起注意。</p><p>  2.1.2Android的功能:</p><

35、;p>  1、支持虛擬鍵盤。虛擬鍵盤的出現(xiàn)意味著基于Android1.5或以上的版本的移動設備可以同時支持特理鍵盤和虛擬鍵盤。</p><p>  2、使用widget實現(xiàn)桌面的個性化??梢杂脀idget修飾自已的桌面。大多數(shù)小的Web應用都是從網(wǎng)絡上獲得實時數(shù)據(jù)并展示給用戶的,android預裝了5個桌機Widget,包括數(shù)字時鐘,日歷,音樂播放器,相框。</p><p>  3、

36、用在線文件快速瀏覽數(shù)數(shù),類似于OSX Leopard的Quicklook特征,Android的在線文件夾可顯示的數(shù)據(jù)條目,比如聯(lián)系人,喜歡的應用,E-mail信息,播放列表,書簽,RSS源等,并不需要運行系統(tǒng)程序處理特定的數(shù)據(jù)條目。</p><p>  4、視頻錄制和分享。Android還有錄制和分享視頻的功能,對回放和MPEG-4,3GP等視頻也有了更好的支持。可以通過E-mail,MMS或直接上傳到y(tǒng)outu

37、be等方式來分享視頻。</p><p>  5、更快,更兼容的瀏覽器,Android的基于Webkit內(nèi)核的瀏覽器帶來了重要的調(diào)速半置,這得益于新的Wenkit渲染引擎和優(yōu)化的JAVA腳本編譯器。</p><p>  6、Voice search語音搜索。帶有語音識別技術(shù)的Google手機已于2008年11月面世,它支持語音搜索功能,該功能增強了默認的搜索能力,已超過了純文本搜索。<

38、/p><p>  7、立體藍牙和免提電話。除了增強的免提電話體驗,Android還支持立體藍牙(A2Dphe和AVCRP),并有自動配對功能。</p><p>  8、強大的GPS技術(shù).Android內(nèi)部提供了大量的GPS組件,我們可以很輕松地獲得設備當前的位置等信息,讓導航等功能更加完善。</p><p>  9、Android系統(tǒng)硬件檢測,android可自動檢測和

39、修復SD卡的文件系統(tǒng),允許第三方應用顯示Android系統(tǒng)的硬件特征,為了讓用戶下載到與自已的設備匹配的應用,我們可以檢測用戶設備的硬件信息,讓滿足應用要求的設備安裝該程序,當更多的android設備建立在不同的硬件上時,這個功能顯得很實用。</p><p>  2.2 Google android移動平臺開發(fā)過程研究</p><p>  Android移動平臺作為21世紀的新秀,受到了越

40、來越多的開發(fā)者的鐘愛,在這股開發(fā)的浪潮中,逐漸形成了具有Android一套具有Android特色的開發(fā)流程。</p><p>  由于Android的優(yōu)越性,其開發(fā)顯得非常的有規(guī)律可尋。大致的開發(fā)流程如下:</p><p>  需求分析:作為一個軟件,它必須有其存在的意義和價值,而這個價值和意義就需要靠需求分析來確定。</p><p>  功能分析。作為一個手機軟件

41、,它的使命就是給用戶使用的。如何提供用戶最好的用戶體驗就值得每一個程序員的深思,這也是確保一個程序成功的關(guān)鍵所在。</p><p>  界面設計:作為一個手機軟件,其只能在極有限的區(qū)域中顯示自已,如何在有限的空間里更完美的展現(xiàn)出自已的獨特之處就顯得更為重要了。</p><p>  測試:在任何一個軟件開發(fā)行業(yè)中,無論是J2EE,J2SE,J2ME等等其他開發(fā)中,測試時必不可少的一環(huán),在An

42、droid開發(fā)中,由于手機的搞頻率使用,和硬件系統(tǒng)上的不足,使得對軟件的要求更加的嚴格,這就要求在開發(fā)完成后,再對其進行嚴格的測試,而測試又包括了:單元測試,系統(tǒng)測試等等方面的測試。</p><p>  系統(tǒng)開發(fā):作為一個軟件的主體部分,系統(tǒng)開發(fā)的好壞直接決定了該系統(tǒng)的性能和壽命。</p><p>  發(fā)布:在完成一個系統(tǒng)的開發(fā)后,就要對其發(fā)布,經(jīng)過廣大用戶的考驗,只有經(jīng)過這個過程,才算是

43、一個合格的產(chǎn)品,在Android平臺中,Google提供了完整的發(fā)布機制------Google maket</p><p>  2.3 Google android移動平臺下的應用研究</p><p>  Android系統(tǒng)提供給應用開發(fā)者本身就是一個框架,所有的應用開發(fā)都必須遵守這個框架原則。我們在開發(fā)應用時就是在這個框架上進行擴展,下面來看看android這個框架都有些什么功能可供我

44、們使用。</p><p>  Android.app:提供高層的程序模型和基本的運行環(huán)境</p><p>  Android.content:包含對各種設備上的數(shù)據(jù)進行訪問和發(fā)布</p><p>  Android.database:通過內(nèi)容提供者瀏覽的操作數(shù)據(jù)庫</p><p>  Android.graphics:地層的圖形庫,包含畫布,

45、顏色過濾,點,矩形,可以將它們直接繪制到屏幕上。</p><p>  Android.location:定位和相關(guān)服務的類</p><p>  Android.net: 提供幫助網(wǎng)絡訪問類,超過通常的java.net*接口。</p><p>  Android.media: 提供一些類管理多種音頻,視頻的媒體接口。</p><p>  And

46、roid.os:提供了系統(tǒng)服務,消息轉(zhuǎn)輸和IPC機制。</p><p>  Android.opngl:提供OpenGL的工具。</p><p>  Android.provider:提供訪問Android的內(nèi)容提供者的類。</p><p>  Android.telephony:提供與撥打電話相關(guān)的API交互。</p><p>  Andr

47、oid.view提供基礎的用戶界面接口框架。</p><p>  Android.util:涉及工具性的方法,例如時間日期的操作。</p><p>  Addroid.webkit:默認瀏覽器操作接口。</p><p>  Android.widget包含各種UI元素在應用程序的布局中使用。</p><p><b>  2.4小結(jié)&

48、lt;/b></p><p>  本單主要通過三個方面:1.Google android移動平臺的概述:2.google android移動平臺開發(fā)過程的研究:3.google android移動平臺下的應用研究,概要的介紹了Google android移動平臺相關(guān)知識,對google android移動平臺有初步的認識和了解,為后面的開發(fā)做了堅實的基礎。</p><p>  第三章

49、 掌上手上天氣預報系統(tǒng)程序設計</p><p>  基于Android 平臺的智能手機訪問服務器的主要技術(shù)是數(shù)據(jù)交互方法。基于Android 操作系統(tǒng)的天氣實況預報系統(tǒng)設計的核心是通過調(diào)用通信協(xié)議SOAP(Simple Object AccessProtocol)的接口,從Web Service 提供商中提取天氣預報的數(shù)據(jù)信息,為客戶端服務。其基本功能是當用戶運行天氣預報系統(tǒng)程序時,在手機屏幕上顯示出中國的城市名

50、稱,用戶單擊任意一個城市名,可獲得該城市的天氣實況預報信息。用戶也可以輸入城市名稱,點擊查詢獲得天氣預報信息。WeatherForecast 工程目錄結(jié)構(gòu)及其源代碼文件如圖1所示</p><p><b>  圖1</b></p><p>  3.1 Android平臺的用戶界面實現(xiàn)</p><p>  Android 提供的可變化的用戶界面(U

51、I)開發(fā)模塊是基于XML 文件的。這些XML 文件放在工程/res/layout 下面。這個目錄可包含所有應用程序所需的非碼部分,比如圖片、字符串、xml 文件。當要使用到這些資源時,在代碼目錄中打開R.java文件即可。在XML 文件里編輯界面的代碼,實現(xiàn)起來不僅方便,使用時也會更加靈活。</p><p>  在Android 程序設計中要用到一些基本的Android UI 元素,通過使用Views、View

52、Groups 和layouts 可為Activity 創(chuàng)建功能性的、富有直觀力的UI.通常是使用Android SDK 中提供的一些控件,進行布局、擴展和定制這些控件,并使用ViewGroups 去組合Views,創(chuàng)建由相互作用的子控件組成的原子的、重復利用的UI 元素。也可以創(chuàng)建自己的Views,來實現(xiàn)顯示數(shù)據(jù)和與用戶交互的新途徑;或使用一些繼承自View Group 的Layout 管理器來組織Android UI中的單個元素到屏幕

53、上。</p><p>  在一個Android 應用中,用戶界面由View 和View Group對象構(gòu)建。View 與View Group 有很多種類,而它們都是View類的子類。View 對象是Android 平臺中用戶界面的基本單元。View 類是widgets(工具)類的父類,它們提供了諸如文本輸入框和按鈕之類的UI 對象的完整實現(xiàn)。View Group 類是Layouts(布局)類的父類,它們提供了諸如

54、流式布局、表格布局以及相對布局之類的布局架構(gòu)。</p><p>  View 對象是一個數(shù)據(jù)體,它的屬性存儲了用于屏幕上一塊矩形區(qū)域的布局參數(shù)及內(nèi)容。并負責它所轄的這個矩形區(qū)域之中所有測量、布局、焦點轉(zhuǎn)換、卷動以及按鍵/觸摸手勢的處理。作為一個用戶界面對象,View 同時也擔任著用戶交互關(guān)鍵點以及交互事件接受者的角色。天氣實況預報系統(tǒng)程序功能比較單一,其UI 也相對比較簡單,只要有一個輸入框、一個查詢按鈕以及一個

55、顯示所有中國城市信息的列表即可。為了建立Android 平臺的用戶界面,首先要在Package Explorer 窗口中展開Layout 后新建。xml 文件,用來對窗口界面進行布局,主要有系統(tǒng)運行的主配置文件main.xml 和result.xml.</p><p>  Layout 是一類特殊的ViewGroup 控件,它們本身沒有任何可顯示內(nèi)容,存在的惟一原因就是其中的內(nèi)部結(jié)構(gòu),能夠更好地擺放它的子控件。比

56、如Linearlayout,可將子控件按水平或垂直方向按順序排列下去;Tablelayout,可以將子控件按照表格的形式,一枚枚放置好;Relativelayout 更靈活,可以設定各個控件之間的對齊和排列關(guān)系,適合定制復雜的界面。有了Layout 的存在,控件和控件之間不再是割裂地存在,而是更有機地結(jié)合在一起,設定起來也更為方便。在main.xml 文件中主要是添加一些界面的布局設置,例如如下代碼:</p><p&

57、gt;  <LinearLayout</p><p>  android:orientation="horizontal"</p><p>  android:layout_width="fill_parent"</p><p>  android:layout_height="wrap_content&quo

58、t;</p><p><b>  ></b></p><p>  android:layout_width="wrap_content"</p><p>  android:layout_height="wrap_content"</p><p>  android:text

59、="@string/cityText"/></p><p>  <Button android:id="@+id/searchBtn" </p><p>  <Button android:id="@+id/searchBtn"</p><p>  android:layout_width

60、="wrap_content"</p><p>  android:layout_height="wrap_content"</p><p>  android:text="@string/searchBtn"/></p><p>  </LinearLayout></p>

61、<p>  上述代碼生成了一個Linearlayout,定義了一個EditText 和Button,并且設置了相關(guān)的參數(shù)。在Android 中,控件最重要的大小屬性是width/height,開發(fā)者可以指明控件的大小,控件的寬、高以及在屏幕中的顯示位置等,可以設定成為fill_parent 和wrap_content.另外,還可以設置相應的文本信息,并可通過android:text="@string/cityText

62、"/>進行引用(string 文件存放在工程的res/values 中)。按照這種方法,還可以依據(jù)需要定義相應的布局控件,譬如定義用來呈現(xiàn)天氣實況信息的UI等。</p><p>  3.2 創(chuàng)建中國城市列表數(shù)據(jù)</p><p>  根據(jù)天氣預報系統(tǒng)功能需求分析,系統(tǒng)啟動后,應在主界面上呈現(xiàn)出中國國內(nèi)所有城市的列表數(shù)據(jù),因此需要創(chuàng)建中國城市列表數(shù)據(jù),包括獲取、解析城市列表數(shù)據(jù)

63、,并在用戶界面上呈現(xiàn)出來。為此,需要解決的問題是手機終端從Web 服務器獲取了所有類型的數(shù)據(jù)之后,將這些數(shù)據(jù)進一步交給Android 手機終端View 組件,在手機界面上顯示給用戶。</p><p>  3.2.1 獲取城市列表數(shù)據(jù)</p><p>  Android 沒有提供Web Service 的組件庫,但可以通過修改在PC 或J2ME 上使用的開源Web Service

64、Java 庫作為AndroidWeb Servic 庫使用。kSOAP2(http://ksoap2.sourceforge.net)是一個在智能手機上的SOAP Web Service 客戶端包,可用于資源受限制的Java 環(huán)境如Applets 或J2ME 應用程序。在GoogleCode 上有一個項目ksoap2-android(http://code.google.com/p/ksoap2-android/)可用在Android

65、平臺上實現(xiàn)輕量級的SOAP 庫,即使用ksoap2-android 的API 來調(diào)用遠端Web Service 的服務。</p><p>  因此需要在CitiesWeatherForecast.java 的onCreate()中進行數(shù)據(jù)獲取的初始化工作。通過定義一個方法public List<String>getAllCitiesNAMEs()可獲得中國城市名稱列表。也就是說,采用它提供的獲得全球各

66、個國家城市的方法GetCitiesByCountry,通過http://www.webservicex.net/globalweather.asmx 上的WebService 可提供天氣預報服務。譬如,通過Constant.java 中的public class Constant{},設置SOAP Action 要調(diào)用的方法名、命名空間以及Web Service URL值,其源代碼為:</p><p>  imp

67、ort android.graphics.Bitmap;</p><p>  public class ConstData {</p><p>  static final String[] mCities={</p><p><b>  "北京",</b></p><p><b>  &q

68、uot;上海",</b></p><p><b>  "廣州",</b></p><p><b>  "陽江",</b></p><p><b>  "湛江",</b></p><p><b

69、>  "珠海",</b></p><p><b>  "中山",</b></p><p><b>  "佛山",</b></p><p><b>  "東莞",</b></p><p&

70、gt;<b>  "汕頭",//</b></p><p><b>  "汕尾",//</b></p><p><b>  "惠州",//</b></p><p><b>  "大連",//</b>&l

71、t;/p><p><b>  "哈爾濱",//</b></p><p><b>  "???quot;,//</b></p><p><b>  "長春",//</b></p><p><b>  "長沙&quo

72、t;,//</b></p><p><b>  "成都",//</b></p><p><b>  "福州",//</b></p><p><b>  "昆明",//</b></p><p><b&g

73、t;  "南京",//</b></p><p><b>  "南寧",//</b></p><p><b>  "青島",//</b></p><p><b>  "深圳",//</b></p>

74、<p><b>  "沈陽",//</b></p><p><b>  "太原",//</b></p><p><b>  "烏魯木齊",//</b></p><p><b>  "西安",//<

75、/b></p><p><b>  "西寧",//</b></p><p><b>  "廈門",//</b></p><p><b>  "徐州",//</b></p><p><b>  "

76、;銀川",//</b></p><p><b>  "鄭州",//</b></p><p><b>  "香港"};</b></p><p>  static final String[] pCities={</p><p>  &quo

77、t;beijing","shanghai","guangzhou","jiangmen","nanchang","jiujiang","wuhan","ganzhou",</p><p>  "tianjin","chongqing&q

78、uot;,"tangshan","shijiazhuang","dalian","haerbin","haikou","chuangchun",</p><p>  "changsha","chengdu","fuzhou","

79、;kunming","nanjing","nanning","qingdao","shenzhen","shenyang",</p><p>  "taiyuan","wulumuqi","xian","xining",&qu

80、ot;xiamen","xuzhou","yinchuan","zhengzhou","hongkong"</p><p><b>  };</b></p><p><b>  //圖片緩存</b></p><p>  public

81、static HashMap<String,SoftReference<Bitmap>> imageCache;</p><p><b>  }</b></p><p>  3.2.2解析數(shù)據(jù)列表</p><p>  Android 操作系統(tǒng)對xml 字符串數(shù)據(jù)的操作功能很強,提供了dom、sax 以及xmlpul 3

82、種方式。Android SDK 提供了android.sax 包以方便SAX Handler 的開發(fā),可用來解析xml 結(jié)果字符串。在本設計實例的CitiesWeatherForecast.java 文件中,解析xml 數(shù)據(jù)時,先通過RootElement root=new RootElement("NewDataSet")獲得xml 數(shù)據(jù)的根節(jié)點;然后再尋找其子節(jié)點直到找到City 子節(jié)點,并設置一個監(jiān)聽器setE

83、ndTextElementListener()來獲得City 子節(jié)點的值;最后使用org.xml.sax 的SAXParser 來解析xml 數(shù)據(jù),把數(shù)據(jù)存入List<String>并返回:</p><p>  SAXParserFactory factory=SAXParserFactory.newInstance();</p><p>  SAXParser parser=

84、factory.newSAXParser();</p><p>  XMLReader xmlreader=parser.getXMLReader();</p><p>  xmlreader.setContentHandler(root.getContentHandler());</p><p>  InputSource is=new InputSource&l

85、t;/p><p> ?。╪ew StringBufferInputStream(xmlStr));</p><p>  xmlreader.parse(is);</p><p>  3.2.3在UI上呈現(xiàn)城市列表數(shù)據(jù)</p><p>  當獲得List<String>類型的數(shù)據(jù)之后,就可以把它綁定到main.xml 定義的ListVi

86、ew 組件上,然后使用ListActivity 呈現(xiàn)列表數(shù)據(jù)。在WeatherForecast.java 中的代碼段為:</p><p>  List<String> cityList=getAllCitiesNames();</p><p>  setListAdapter(new ArrayAdapter<String>(this,</p><

87、;p>  android.R.layout.simple_list_item_1, cityList));</p><p>  即使用方法setListAdapter()把一個ListActivity 填充進去。</p><p><b>  第四章 系統(tǒng)測試</b></p><p>  本章我將手機天氣預報系統(tǒng)在電腦模擬環(huán)境下測試的方案,

88、以下是分模塊對系統(tǒng)進行測試。城市天氣實況預報系統(tǒng)的測試結(jié)果如下。在Eclipse 的Package Explorer 窗口中用鼠標右鍵選擇WeatherForecast工程名,在彈出的窗口中選擇"Run As"→"Android Application"安裝該應用程序到Android 模擬器并啟動它。然后單擊所要查詢的城市名稱列表項,稍等片刻便會顯示出該城市的天氣實況信息。也可以在文本框中直接輸入

89、所要查詢的城市名稱,單擊"查詢"同樣會獲得相應城市的天氣預報信息。</p><p>  在工程名WeathForecastweather上點右鍵,然后選擇“Run As”,然后選擇“Android Application”。進入界面后,點文件名weather如圖(2)所示進入手機天氣預報系統(tǒng)。</p><p><b>  圖(2)</b></

90、p><p>  如圖(3)中顯示的是一列城市列表,這個效果需要在WeatherForecast.java 的onCreate()中進行數(shù)據(jù)獲取的初始化工作。通過定義一個方法public List<String>getAllCitiesNAMEs()可獲得中國城市名稱列表。</p><p><b>  圖(3)</b></p><p> 

91、 如圖(4)中顯示的是我們選擇一個城市點查詢鍵,然后可以通過UI顯示這個城市一周內(nèi)的天氣信息,包括日期、時間、城市、最高溫度、最低溫度、當前溫度等。</p><p><b> ?。▓D4)</b></p><p>  查詢完廣州這個城市之后,我們再點另外一個城市進行查詢,如選擇北京和湛江,操作步驟和上面一樣。如圖(5)圖(6)所示。</p><p&g

92、t;<b>  圖(5)(6)</b></p><p>  與中央氣象臺公布的天氣信息相比較,通過對比,本系統(tǒng)的數(shù)據(jù)與中央氣象臺公布的數(shù)據(jù)基本一致,證明本系統(tǒng)數(shù)據(jù)具有準確,及時的特點。如圖(7)所示。</p><p><b>  圖(7)</b></p><p><b>  第五章 結(jié)論</b><

93、;/p><p>  Android 平臺具有極大的開放性和兼容性,并且本身大量使用了開源代碼庫,深為開發(fā)人員所喜愛。Android 智能手機應用程序的開發(fā)涉及了它的整個體系結(jié)構(gòu),是一項非常復雜的工程。本文在介紹基于Android 平臺的應用程序設計原理的基礎上,提出了Android 用戶界面設計、獲取并解析城市列表數(shù)據(jù)的一種方法,給出了在用戶界面上呈現(xiàn)數(shù)據(jù)的原理與設計過程,最后通過模擬器進行了應用程序的調(diào)試。當然,基

94、于Android 平臺的開發(fā)技術(shù)還需要進一步完善,需要在日后的工作中不斷探索、研究,以建立實用的城市天氣實況預報系統(tǒng)。</p><p>  Andriod的設計至今為止已經(jīng)進入了令人鼓舞的階段,在進行了長達兩個多月的時間的摸索與實驗,使我不僅僅是對于andriod常用設計與功能,還使我對于一項設計研究的制作過程所需要的詳細步驟和具體的實現(xiàn)方法的力度的掌握?;诖俗髌纷鳛楫厴I(yè)設計的創(chuàng)作成果,在當其中軟件的功能等方面

95、并非處于一個成熟的階段,而且僅僅是因為向老師的要求以及我們的初步嘗試,當中的缺點是無可非議地存在著。</p><p>  當然在這次寶貴的畢業(yè)設計活動中,經(jīng)驗才是對于我們最大的收獲,而且還增強了自身對未知問題以及對知識的深化認識的能力,用受益匪淺這個詞語來概括這次難忘的活動我覺得再合適不過了。但是,光是完成了作品還是不可以自我滿足的,在從一開始的時候就懷著將作品制作得更加人性化,更加令人滿意,更加地使功能完美又方

96、便地被應用領(lǐng)域這個最終目的下,隨著對這門學科的認識加深,到達了拓展的程度,我想這個目的將在不遠的時期內(nèi)被實現(xiàn)。</p><p>  總之,這次設計從軟件編寫、調(diào)試到軟硬件聯(lián)機調(diào)試,我傾注了大量的時間和心血。真是曾經(jīng)為程序的編寫而冥思查找過,曾經(jīng)為無法找出錯誤而郁悶苦惱過,也曾經(jīng)為某一功能不能實現(xiàn)而猶豫彷徨過,但最終我成功了。因為我不僅品味到了結(jié)果的喜悅,更明白了過程的彌足珍貴。</p><p&

97、gt;<b>  致謝:</b></p><p>  隨著畢業(yè)日子的到來,畢業(yè)設計也接近了尾聲。經(jīng)過幾周的奮戰(zhàn)我的畢業(yè)設計終于完成了。在沒有做畢業(yè)設計以前覺得畢業(yè)設計只是對這幾年來所學知識的單純總結(jié),但是通過這次做畢業(yè)設計發(fā)現(xiàn)自己的看法有點太片面。畢業(yè)設計不僅是對前面所學知識的一種檢驗,而且也是對自己能力的一種提高。通過這次畢業(yè)設計使我明白了自己原來知識還比較欠缺。自己要學習的東西還太多,以

98、前老是覺得自己什么東西都會,什么東西都懂,有點眼高手低。通過這次畢業(yè)設計,我才明白學習是一個長期積累的過程,在以后的工作、生活中都應該不斷的學習,努力提高自己知識和綜合素質(zhì)。</p><p>  在這次畢業(yè)設計中也使我們的同學關(guān)系更進一步了,同學之間互相幫助,有什么不懂的大家在一起商量,聽聽不同的看法對我們更好的理解知識,所以在這里非常感謝幫助我的同學。</p><p>  我的心得也就這

99、么多了,總之,不管學會的還是學不會的的確覺得困難比較多,真是萬事開頭難,不知道如何入手。最后終于做完了有種如釋重負的感覺。此外,還得出一個結(jié)論:知識必須通過應用才能實現(xiàn)其價值!有些東西以為學會了,但真正到用的時候才發(fā)現(xiàn)是兩回事,所以我認為只有到真正會用的時候才是真的學會了。</p><p>  在此要感謝我的指導老師對我悉心的指導,感謝老師給我的幫助。在設計過程中,我通過查閱大量有關(guān)資料,與同學交流經(jīng)驗和自學并向

100、老師請教等方式,使自己學到了不少知識,也經(jīng)歷了不少艱辛,但收獲同樣巨大。在整個設計中我懂得了許多東西,也培養(yǎng)了我獨立工作的能力,樹立了對自己工作能力的信心,相信會對今后的學習工作生活有非常重要的影響。而且大大提高了動手的能力,使我充分體會到了在創(chuàng)造過程中探索的艱難和成功時的喜悅。雖然這個設計做的也不太好,但是在設計過程中所學到的東西是這次畢業(yè)設計的最大收獲和財富,使我終身受益。</p><p><b>

101、  參考文獻</b></p><p>  1.專著: [1]鄧凡平.深入理解Android[M].機械工業(yè)出版社,2011-09-01.</p><p>  [2]哈希爾.精通Android3[M].人民郵電出版社:2011-10-02.</p><p>  [3]馬超,孫仁貴.Android應用開發(fā)全程實錄[M]. 人民郵電出版社,2012-01-01

102、.</p><p>  [4]柯元旦.Android內(nèi)核剖析[M].電子工業(yè)出版社,2011-09-01</p><p>  2.論文集 [1] 楊豐成.Android開發(fā)揭秘[C]:機械工業(yè)出版社,2010-01-01。</p><p>  [2] 李寧.Androidt移植與調(diào)試[C] 機械工業(yè)出版社社,2011-02-06。</p><p&

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 眾賞文庫僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
  • 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論