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

下載本文檔

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

文檔簡介

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

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

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

4、息?;谑謾C的天氣預(yù)報系統(tǒng)軟件可以使用戶對于各地的天氣情況的實時掌握,極大的方便了用戶的出行和行程安排,避免了不必要的麻煩,具有很強的實用性。</p><p>  關(guān)鍵詞:Android 手機天氣預(yù)報軟件系統(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移動平臺下的應(yīng)用研究10</p><p><b>  2.4小結(jié)11</b></p><p>  第三章 掌上手上天氣預(yù)報系統(tǒng)程序設(shè)計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)成為了生活中不可少的通讀設(shè)備,沒有手機有時會讓人覺得寸步難行,手機將脫離傳統(tǒng)的打電話,發(fā)短信等基本功能,而基于智能手機的處理能力和可擴展能力,基于3G網(wǎng)絡(luò)高速數(shù)據(jù)傳輸,越來越多的功能和業(yè)務(wù)將被開發(fā)出來并大規(guī)模的應(yīng)用。正基于此,當(dāng)全世界的目光聚集在此的時候,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)核作為基礎(chǔ),由C語言開發(fā),只提供基礎(chǔ)功能,中間層次包話函數(shù)庫和虛擬機,由C++開發(fā)。最上層是各種應(yīng)用軟件,包話通話程序,短信程序。應(yīng)用軟件由各公司自行

12、開發(fā),以JAVA編寫。</p><p>  Android作為一個操作系統(tǒng),它包話了:</p><p><b>  中介軟件:</b></p><p>  操作系統(tǒng)與應(yīng)用程序的溝通橋梁,應(yī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作為基礎(chǔ)多媒體框架。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功能相當(dāng),但相較于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è)應(yīng)用,必須移除被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)絡(luò)堆</p><p><b>  安全權(quán)限機制:</b></p><p>  Android本身是一個權(quán)限分立的操作系統(tǒng)。在這類操作系統(tǒng)中,每個應(yīng)

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

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

22、問、查看網(wǎng)絡(luò)狀態(tài),查看WiFi狀態(tài)、避免手機待機、修改系統(tǒng)全局設(shè)置、讀取同步設(shè)定、開機自啟動、重啟其他應(yīng)用、終止運行中的應(yīng)用、設(shè)定偏好應(yīng)用、震動控制、拍攝圖片等。一款應(yīng)用應(yīng)該根據(jù)自身提供的功能,要求合理的權(quán)限。用戶也可以分析一款應(yīng)用所需權(quán)限,從而簡單判定這款應(yīng)用是否安全。如一款應(yīng)用是不帶廣告的單機版,也沒有任何附加內(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ā)展趨勢,從而更好的適應(yīng)時代的需要。</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)上的手機天氣預(yù)報軟件系統(tǒng),本系統(tǒng)通過選擇城市來獲得天氣,風(fēng)向,風(fēng)向,溫度等信息?;谑謾C的天氣預(yù)報系統(tǒng)軟件可以使用戶對于各地的天氣情況的實時掌握,極大的方便了用戶的出行和行程安排,避免了不必要的麻煩。本次

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

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

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通過與動行商,通過與運營商,設(shè)備制造商,開發(fā)商和其他有關(guān)各方結(jié)成深層次的合作伙伴關(guān)系,希望借助建

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

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

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

36、用在線文件快速瀏覽數(shù)數(shù),類似于OSX Leopard的Quicklook特征,Android的在線文件夾可顯示的數(shù)據(jù)條目,比如聯(lián)系人,喜歡的應(yīng)用,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組件,我們可以很輕松地獲得設(shè)備當(dāng)前的位置等信息,讓導(dǎo)航等功能更加完善。</p><p>  9、Android系統(tǒng)硬件檢測,android可自動檢測和

39、修復(fù)SD卡的文件系統(tǒng),允許第三方應(yīng)用顯示Android系統(tǒng)的硬件特征,為了讓用戶下載到與自已的設(shè)備匹配的應(yīng)用,我們可以檢測用戶設(shè)備的硬件信息,讓滿足應(yīng)用要求的設(shè)備安裝該程序,當(dāng)更多的android設(shè)備建立在不同的硬件上時,這個功能顯得很實用。</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>  界面設(shè)計:作為一個手機軟件,其只能在極有限的區(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移動平臺下的應(yīng)用研究</p><p>  Android系統(tǒng)提供給應(yīng)用開發(fā)者本身就是一個框架,所有的應(yīng)用開發(fā)都必須遵守這個框架原則。我們在開發(fā)應(yīng)用時就是在這個框架上進行擴展,下面來看看android這個框架都有些什么功能可供我

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

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

46、roid.os:提供了系統(tǒng)服務(wù),消息轉(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提供基礎(chǔ)的用戶界面接口框架。</p><p>  Android.util:涉及工具性的方法,例如時間日期的操作。</p><p>  Addroid.webkit:默認瀏覽器操作接口。</p><p>  Android.widget包含各種UI元素在應(yīng)用程序的布局中使用。</p><p><b>  2.4小結(jié)&

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

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

50、稱,用戶單擊任意一個城市名,可獲得該城市的天氣實況預(yù)報信息。用戶也可以輸入城市名稱,點擊查詢獲得天氣預(yù)報信息。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 下面。這個目錄可包含所有應(yīng)用程序所需的非碼部分,比如圖片、字符串、xml 文件。當(dāng)要使用到這些資源時,在代碼目錄中打開R.java文件即可。在XML 文件里編輯界面的代碼,實現(xiàn)起來不僅方便,使用時也會更加靈活。</p><p>  在Android 程序設(shè)計中要用到一些基本的Android UI 元素,通過使用Views、View

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

53、上。</p><p>  在一個Android 應(yīng)用中,用戶界面由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)容。并負責(zé)它所轄的這個矩形區(qū)域之中所有測量、布局、焦點轉(zhuǎn)換、卷動以及按鍵/觸摸手勢的處理。作為一個用戶界面對象,View 同時也擔(dān)任著用戶交互關(guān)鍵點以及交互事件接受者的角色。天氣實況預(yù)報系統(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 更靈活,可以設(shè)定各個控件之間的對齊和排列關(guān)系,適合定制復(fù)雜的界面。有了Layout 的存在,控件和控件之間不再是割裂地存在,而是更有機地結(jié)合在一起,設(shè)定起來也更為方便。在main.xml 文件中主要是添加一些界面的布局設(shè)置,例如如下代碼:</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,并且設(shè)置了相關(guān)的參數(shù)。在Android 中,控件最重要的大小屬性是width/height,開發(fā)者可以指明控件的大小,控件的寬、高以及在屏幕中的顯示位置等,可以設(shè)定成為fill_parent 和wrap_content.另外,還可以設(shè)置相應(yīng)的文本信息,并可通過android:text="@string/cityText

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

63、,并在用戶界面上呈現(xiàn)出來。為此,需要解決的問題是手機終端從Web 服務(wù)器獲取了所有類型的數(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 應(yīng)用程序。在GoogleCode 上有一個項目ksoap2-android(http://code.google.com/p/ksoap2-android/)可用在Android

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

66、個國家城市的方法GetCitiesByCountry,通過http://www.webservicex.net/globalweather.asmx 上的WebService 可提供天氣預(yù)報服務(wù)。譬如,通過Constant.java 中的public class Constant{},設(shè)置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 字符串?dāng)?shù)據(jù)的操作功能很強,提供了dom、sax 以及xmlpul 3

82、種方式。Android SDK 提供了android.sax 包以方便SAX Handler 的開發(fā),可用來解析xml 結(jié)果字符串。在本設(shè)計實例的CitiesWeatherForecast.java 文件中,解析xml 數(shù)據(jù)時,先通過RootElement root=new RootElement("NewDataSet")獲得xml 數(shù)據(jù)的根節(jié)點;然后再尋找其子節(jié)點直到找到City 子節(jié)點,并設(shè)置一個監(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>  當(dāng)獲得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>  本章我將手機天氣預(yù)報系統(tǒng)在電腦模擬環(huán)境下測試的方案,

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

89、所要查詢的城市名稱,單擊"查詢"同樣會獲得相應(yīng)城市的天氣預(yù)報信息。</p><p>  在工程名WeathForecastweather上點右鍵,然后選擇“Run As”,然后選擇“Android Application”。進入界面后,點文件名weather如圖(2)所示進入手機天氣預(yù)報系統(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)的天氣信息,包括日期、時間、城市、最高溫度、最低溫度、當(dāng)前溫度等。</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 智能手機應(yīng)用程序的開發(fā)涉及了它的整個體系結(jié)構(gòu),是一項非常復(fù)雜的工程。本文在介紹基于Android 平臺的應(yīng)用程序設(shè)計原理的基礎(chǔ)上,提出了Android 用戶界面設(shè)計、獲取并解析城市列表數(shù)據(jù)的一種方法,給出了在用戶界面上呈現(xiàn)數(shù)據(jù)的原理與設(shè)計過程,最后通過模擬器進行了應(yīng)用程序的調(diào)試。當(dāng)然,基

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

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

96、便地被應(yīng)用領(lǐng)域這個最終目的下,隨著對這門學(xué)科的認識加深,到達了拓展的程度,我想這個目的將在不遠的時期內(nèi)被實現(xiàn)。</p><p>  總之,這次設(shè)計從軟件編寫、調(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è)設(shè)計也接近了尾聲。經(jīng)過幾周的奮戰(zhàn)我的畢業(yè)設(shè)計終于完成了。在沒有做畢業(yè)設(shè)計以前覺得畢業(yè)設(shè)計只是對這幾年來所學(xué)知識的單純總結(jié),但是通過這次做畢業(yè)設(shè)計發(fā)現(xiàn)自己的看法有點太片面。畢業(yè)設(shè)計不僅是對前面所學(xué)知識的一種檢驗,而且也是對自己能力的一種提高。通過這次畢業(yè)設(shè)計使我明白了自己原來知識還比較欠缺。自己要學(xué)習(xí)的東西還太多,以

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

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

100、老師請教等方式,使自己學(xué)到了不少知識,也經(jīng)歷了不少艱辛,但收獲同樣巨大。在整個設(shè)計中我懂得了許多東西,也培養(yǎng)了我獨立工作的能力,樹立了對自己工作能力的信心,相信會對今后的學(xué)習(xí)工作生活有非常重要的影響。而且大大提高了動手的能力,使我充分體會到了在創(chuàng)造過程中探索的艱難和成功時的喜悅。雖然這個設(shè)計做的也不太好,但是在設(shè)計過程中所學(xué)到的東西是這次畢業(yè)設(shè)計的最大收獲和財富,使我終身受益。</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應(yīng)用開發(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)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 眾賞文庫僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論