已閱讀5頁,還剩54頁未讀, 繼續(xù)免費閱讀
版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
I基于ANDROID的天氣預(yù)報軟件的設(shè)計與實現(xiàn)摘要本課題研究基于ANDROID平臺上的天氣預(yù)報軟件,該工具可以為用戶提供最新的天氣預(yù)報信息,以便用戶及時了解最新的天氣狀況。本論文對基于ANDROID平臺的天氣預(yù)報軟件的開發(fā)技術(shù)進行了分析和研究。先簡要介紹了ANDROID開發(fā)必備基礎(chǔ)知識,再切入軟件的具體實現(xiàn)過程。軟件的實現(xiàn)是利用網(wǎng)絡(luò)接口和中國天氣網(wǎng)獲取網(wǎng)絡(luò)XML文件,然后通JSON解析取得城市天氣信息。本論文首先介紹系統(tǒng)的開發(fā)背景和意義,接著詳細介紹系統(tǒng)設(shè)計以及實現(xiàn)的過程,最后介紹了系統(tǒng)測試和本軟件的測試用例以及總結(jié)了本次畢業(yè)設(shè)計整個過程。關(guān)鍵詞ANDROID;天氣預(yù)報;WEBSERVICEIIDESIGNANDIMPLEMENTATIONOFWEATHERFORECASTBASEDONANDROIDABSTRACTTHISTOPICRESEARCHBASEDONWEATHERFORECASTSOFTWAREONTHEANDROIDPLATFORMWHICHCANPROVIDESUSERSWITHTHELATESTWEATHERFORECASTINFORMATION,SOTHATUSERSCANUNDERSTANDTHELATESTWEATHERCONDITIONSINATIMELYMANNERINTHISPAPER,THEWEATHERFORECASTSOFTWAREDEVELOPMENTTECHNOLOGYBASEDONTHEANDROIDPLATFORMISANALYZEDANDSTUDIEDITFIRSTBRIEFLYINTRODUCESTHEANDROIDDEVELOPMENTESSENTIALBASICKNOWLEDGE,THENCUTINTOTHESOFTWAREIMPLEMENTATIONPROCESSTHEREALIZATIONOFTHESOFTWAREISTHEUSEOFTHENETWORKINTERFACEANDCHINESEWEATHERNETACCESSNETWORKXMLFILE,ANDTHENPASSTHEXMLDOCUMENTPARSEDBYJSONTOGETCITYWEATHERINFORMATIONTHISPAPERFIRSTLYINTRODUCESTHEDEVELOPMENTOFTHESYSTEMBACKGROUNDANDSIGNIFICANCE,THENINTRODUCESSYSTEMDESIGNANDIMPLEMENTATIONPROCESS,FINALLYINTRODUCESTHESYSTEMTESTINGANDTHESOFTWARETESTCASESANDSUMMARIZESTHEWHOLEPROCESSOFTHEGRADUATIONDESIGNKEYWORDSANDROIDWEATHERFORECASTWEBSERVICEIII目錄摘要IABSTRACTII1緒論111課題研究背景和研究意義112當(dāng)前研究現(xiàn)狀113課題的研究內(nèi)容114論文框架安排22開發(fā)語言說明321開發(fā)語言簡介3211ANDROID簡介3212ANDROID系統(tǒng)特性3213ANDROID基本框架(ANDROIDARCHITECTURE)3214ANDROID系統(tǒng)的四大組件5215SQLITE簡介622搭建ANDROID開發(fā)環(huán)境623了解JASON的相關(guān)知識924HANDLER、INTENT和監(jiān)聽器123概要設(shè)計1531概述15311系統(tǒng)分析的原則15312系統(tǒng)分析的方法1532系統(tǒng)可行性分析1533系統(tǒng)需求分析1634性能需求分析17341實用性原則17342可擴展性與可維護性原則17343安全可靠性原則17344用戶界面美觀原則17IV345準確性原則17346易用性原則1735系統(tǒng)流程分析1736項目模塊劃分184詳細設(shè)計1941設(shè)計目標1942總體結(jié)構(gòu)設(shè)計1943文件結(jié)構(gòu)設(shè)計1944各模塊設(shè)計21441主界面模塊設(shè)計21442更換城市界面模塊設(shè)計23443網(wǎng)絡(luò)接口模塊設(shè)計25444自動定位模塊設(shè)計2545數(shù)據(jù)庫設(shè)計265系統(tǒng)實現(xiàn)與測試2951系統(tǒng)實現(xiàn)29511天氣主界面實現(xiàn)29512更改城市模塊實現(xiàn)3052系統(tǒng)測試31521軟件測試31522測試用例31523測試總結(jié)366總結(jié)37參考文獻38致謝39外文文獻原文40外文文獻譯文48V01緒論11課題研究背景和研究意義隨著科技的發(fā)展,ANDROID在中國的前景十分廣闊。國內(nèi)廠商和許多大運營商也紛紛加入了ANDROID的陣營,不斷的推出了ANDROID系統(tǒng)的產(chǎn)品。ANDROID是一種以LINUX為基礎(chǔ)的開放源碼操作系統(tǒng),主要使用于便攜設(shè)備。ANDROID操作系統(tǒng)最初由ANDYRUBIN開發(fā),最初主要支持手機。2005年由GOOGLE收購注資并組建開放手機聯(lián)盟開發(fā)改良,逐漸擴展到平板電腦及其他領(lǐng)域上。2011年第一季度,ANDROID在全球的市場份額首次超過塞班系統(tǒng),躍居全球第一。2012年第三季度,安卓的市場份額高達748,一年前則為574。2013年第一季度,它的市場份額繼續(xù)增加,達到75。ANDROID平臺的天氣預(yù)報軟件的開發(fā)可以進一步擴大天氣信息的覆蓋面,以便提前預(yù)防,使得廣大公眾能夠在第一時間方便且快捷地獲取最新的天氣預(yù)報信息。同時也可以完善公共服務(wù)體系,提高公共服務(wù)質(zhì)量,更好地發(fā)揮氣象事業(yè)對經(jīng)濟社會發(fā)展的現(xiàn)實性作用。這款天氣預(yù)報軟件給人們帶來方便快捷的全天候天氣信息,必將成為人們?nèi)粘I钪斜夭豢缮俚囊徊糠?。本系統(tǒng)界面明了,操作簡單,適合所有年齡段的使用。對于人們生活水平的提高有一定的促進作用。12當(dāng)前研究現(xiàn)狀A(yù)NDROID是GOOGLE開發(fā)的基于LINUX平臺的開源手機操作系統(tǒng)。它包括操作系統(tǒng)、用戶界面和應(yīng)用程序移動電話工作所需的全部軟件。作為谷歌企業(yè)戰(zhàn)略的重要組成部分,ANDROID將進一步推進“隨時隨地為每個人提供信息”這一企業(yè)目標的實現(xiàn)。國內(nèi)外的基于ANDROID的天氣預(yù)報軟件相當(dāng)多,這些軟件都具有的最基本的功能,當(dāng)然就是提供當(dāng)前天氣狀況,包括實時溫度,當(dāng)天最高溫和最低溫,風(fēng)向風(fēng)速以及未來若干天的天氣概況,數(shù)據(jù)來源都是各個國家或地區(qū)的氣象局或天氣開放平臺。而現(xiàn)在大多數(shù)天氣預(yù)報軟件都具有強大且豐富的附加功能,且界面美觀人性化。在國內(nèi)做的比較好的天氣軟件當(dāng)屬墨跡天氣。這款軟件功能相當(dāng)豐富,可以添加多個城市并通過左右滑動切換城市;提供所選城市的實時天氣情況,包括當(dāng)前天氣狀況,實時溫度,當(dāng)天最高溫和最低溫,濕度值,PM25值,風(fēng)向風(fēng)速;可以查看未來一周的溫度趨勢圖;可以查看生活貼士,包括穿衣指數(shù),運動指數(shù),洗車指數(shù)等;城市實景天氣,每個軟件用戶都可以查看其他用戶上傳的其所在地的圖片;另外,其界面非常美觀且人性化,比如軟件的背景圖片就是動態(tài)天氣壁紙,可以隨著天氣的變化而變化。ANDROID的一大特色就是支持各種桌面插件,而墨跡天氣充分利用了這一點,提供了非常豐富的桌面天氣插件,顯示的信息也可由用戶設(shè)置。總之,目前墨跡天氣是國內(nèi)做的非常出色的一款天氣軟件。113課題的研究內(nèi)容本課題要在ANDROID平臺上借助網(wǎng)絡(luò)接口完成天氣預(yù)報軟件的設(shè)計與實現(xiàn),本軟件具有城市選擇、查詢結(jié)果顯示等功能。本課題所用到的開發(fā)工具為GOOGLE為ANDROID開發(fā)者提供的開發(fā)工具包ADT(ANDROIDDEVELOPERTOOLS),包括ECLIPSE和SDK,并用JAVA語言完成。本課題遵循了軟件工程面向?qū)ο蟮幕驹恚迷湍P?,將需求分析、設(shè)計、實現(xiàn)和測試過程進行反復(fù)迭代,完成了界面、邏輯功能和數(shù)據(jù)庫的設(shè)計與實現(xiàn),最終得到了符合設(shè)計要求的軟件。本系統(tǒng)研究的是ANDROID平臺天氣預(yù)報軟件的實現(xiàn)過程,通過移動網(wǎng)絡(luò)的支持以及ANDROID平臺提供的網(wǎng)絡(luò)服務(wù)支持,通過HTTP的方式獲取來自中國天氣網(wǎng)最新的天氣預(yù)報數(shù)據(jù),中國天氣網(wǎng)免費為用戶提供天氣預(yù)報接口,開發(fā)者可以獲取國內(nèi)各個城市的實時天氣情況,獲取地址為HTTP/MWEATHERCOMCN/DATA/101280101HTML。14論文框架安排本文詳細介紹了基于ANDROID平臺的天氣預(yù)報軟件的設(shè)計實現(xiàn)全過程。從開始到程序設(shè)計的實現(xiàn),將在以下的幾章中予以介紹第1章緒論,這一章主要講述了課題研究的背景、意義、內(nèi)容和當(dāng)前研究現(xiàn)狀以及論文框架的安排。第2章開發(fā)語言簡介,對涉及到的理論知識和使用到的開發(fā)工具做相關(guān)介紹。第3章概要設(shè)計,主要分析了本軟件開發(fā)的可行性和需求分析等。第4章詳細設(shè)計,主要介紹了本軟件各模塊的實現(xiàn)過程以及數(shù)據(jù)庫的設(shè)計。第5章系統(tǒng)實現(xiàn)與測試,主要介紹了本軟件的實現(xiàn)結(jié)果和各模塊的測試用例以及測試總結(jié)。第6章總結(jié),總結(jié)近三個多月做畢業(yè)設(shè)計過程中的心得和體會。22開發(fā)語言說明21開發(fā)語言簡介211ANDROID簡介ANDROID本義指“機器人”,同時也是GOOGLE于2007年11月5日宣布的基于LINUX平臺的開源手機操作系統(tǒng)的名稱,該平臺由操作系統(tǒng)、中間件、用戶界面和應(yīng)用軟件組成。ANDROID是一種基于LINUX的自由及開放源代碼的操作系統(tǒng),主要使用于移動設(shè)備,如智能手機和平板電腦,由GOOGLE公司和開放手機聯(lián)盟領(lǐng)導(dǎo)及開發(fā)。ANDROID操作系統(tǒng)最初由ANDYRUBIN開發(fā),主要支持手機。2005年8月由GOOGLE收購注資。2007年11月,GOOGLE與84家硬件制造商、軟件開發(fā)商及電信營運商組建開放手機聯(lián)盟共同研發(fā)改良ANDROID系統(tǒng)。隨后GOOGLE以APACHE開源許可證的授權(quán)方式,發(fā)布了ANDROID的源代碼。第一部ANDROID智能手機發(fā)布于2008年10月。2013年的第四季度,ANDROID平臺手機的全球市場份額已經(jīng)達到781。2013年09月24日谷歌開發(fā)的操作系統(tǒng)ANDROID在迎來了5歲生日,全世界采用這款系統(tǒng)的設(shè)備數(shù)量已經(jīng)達到10億臺。ANDROID采用了軟件堆層的架構(gòu),低層以LINUX內(nèi)核工作為基礎(chǔ),只提供基本功能,其他的應(yīng)用軟件則由各公司自行開發(fā)。目前最新SDK版本為ANDROID442。212ANDROID系統(tǒng)特性ANDROID系統(tǒng)有如下的幾大特性(1)應(yīng)用程序框架,支持組件的重用與替換;(2)DALVIK虛擬機,專門為移動設(shè)備做了優(yōu)化;(3)內(nèi)部集成瀏覽器,該瀏覽器基于開源的WEBKIT引擎;(4)優(yōu)化的圖形庫,包括2D和3D圖形庫;(5)SQLITE,用作結(jié)構(gòu)化的數(shù)據(jù)存儲;(6)多媒體支持,包括常見的音頻、視頻和靜態(tài)印象文件格式;(7)豐富的開發(fā)環(huán)境,包括設(shè)備模擬器,調(diào)試工具,內(nèi)存及性能分析圖表和ECLIPSE集成開發(fā)環(huán)境插件。213ANDROID基本框架(ANDROIDARCHITECTURE)ANDROID平臺的基本框架如圖21所示3圖21ANDROID基本框架圖1應(yīng)用程序?qū)覣NDROID會同一個核心應(yīng)用程序包一起發(fā)布,該應(yīng)用程序包包括EMAIL客戶端,SMS短消息程序,日歷,地圖,瀏覽器,聯(lián)系人管理程序等。所有的應(yīng)用程序都是用JAVA編寫的。2應(yīng)用程序框架層開發(fā)人員也可以完全訪問核心應(yīng)用程序所使用的API框架。該應(yīng)用程序的架構(gòu)設(shè)計簡化了組件的重用任何一個應(yīng)用程序都可以發(fā)布它的功能塊并且任何其它的應(yīng)用程序都可以使用其所發(fā)布的功能塊(不過得遵循框架的安全性)。同樣,該應(yīng)用程序重用機制也使用戶可以方便的替換程序組件。隱藏在每個應(yīng)用后面的是一系列的服務(wù)和系統(tǒng),其中包括豐富而又可擴展的視圖,可以用來構(gòu)建應(yīng)用程序,它包括列表,網(wǎng)格,文本框,按鈕,甚至可嵌入的WEB瀏覽器。A內(nèi)容提供器使得應(yīng)用程序可以訪問另一個應(yīng)用程序的數(shù)據(jù)(如聯(lián)系人數(shù)據(jù)庫,或者共享它們自己的數(shù)據(jù)。B資源管理器提供非代碼資源的訪問,如本地字符串,圖形,和布局文件。C通知管理器使得應(yīng)用程序可以在狀態(tài)欄中顯示自定義的提示信息。D活動管理器用來管理應(yīng)用程序生命周期并提供常用的導(dǎo)航回退功能。3LIBRARIES庫層ANDROID包含一些C/C庫,這些庫能被ANDROID系統(tǒng)中不同的組件使用。它們通過ANDROID應(yīng)用程序框架為開發(fā)者提供服務(wù)。以下是一些核心庫A系統(tǒng)C庫一個從BSD繼承來的標準C系統(tǒng)函數(shù)庫LIBC,它是專門為基于EMBEDDEDLINUX的設(shè)備定制的。B媒體庫基于PACKETVIDEOOPENCORE該庫支持多種常用的音頻、視頻格式回4放和錄制,同時支持靜態(tài)圖像文件。CSURFACEMANAGER對顯示子系統(tǒng)的管理,并且為多個應(yīng)用程序提供了2D和3D圖層的無縫融合。DLIBWEBCORE一個最新的WEB瀏覽器引擎用,支持ANDROID瀏覽器和一個可嵌入的WEB視圖。4系統(tǒng)結(jié)構(gòu)ANDROID是運行于LINUXKERNEL之上,ANDROID的LINUXKERNEL控制包括安全,存儲器管理,程序管理,網(wǎng)絡(luò)堆棧,驅(qū)動程序模型等。APK是安卓應(yīng)用的后綴,是ANDROIDPACKAGE的縮寫,即ANDROID安裝包APK。通過將APK文件直接傳到ANDROID模擬器或ANDROID手機中執(zhí)行即可安裝。214ANDROID系統(tǒng)的四大組件在ANDROID系統(tǒng)中,為我們提供了四大基本組件,每個組件是一個視圖,但是有些是可見的,有些是不可見的視圖,像ACTIVITY,CONTENTPROVIDER是可見的視圖,SERVICE和BROADCASTRECEIVER是不可見的,它們只在系統(tǒng)的后臺運行。下面分別介紹四大組件1ACTIVITY簡介ANDROID中,所有程序都運行在ACTIVITY中,是ANDROID最基本的組成部分之一。在ANDROID程序中,ACTIVITY一般代表手機屏幕的一屏。ACTIVITY就相當(dāng)于瀏覽器中的一個網(wǎng)頁,并且可以添加BUTTON、CHECKBOX等控件。一個ANDROID應(yīng)用是由多個ACTIVITY組成的。這多個ACTIVITY之間可以進行相互跳轉(zhuǎn),例如,按下一個BUTTON按鈕后,可能會跳轉(zhuǎn)到其他的ACTIVITY。和網(wǎng)頁跳轉(zhuǎn)稍微有些不一樣的是,ACTIVITY之間的跳轉(zhuǎn)有可能返回值,例如,從ACTIVITYA跳轉(zhuǎn)到ACTIVITYB,那么當(dāng)ACTIVITYB運行結(jié)束的時候,有可能會給ACTIVITYA一個返回值。當(dāng)打開一個新的屏幕時,之前一個屏幕會被置為暫停狀態(tài),并且壓入歷史堆棧中。用戶可以通過回退操作返回到以前打開過的屏幕??梢赃x擇性的移除一些沒有必要保留的屏幕,因為ANDROID會把每個應(yīng)用的開始到當(dāng)前的每個屏幕保存在堆棧中。2SERVICE簡介SERVICE是ANDROID系統(tǒng)中的一種組件,它跟ACTIVITY的級別差不多,但是他不能自己運行,只能后臺運行,并且可以和其他組件進行交互。SERVICE是沒有界面的長生命周期的代碼。SERVICE是一種程序,它可以運行很長時間,但是它卻沒有用戶界面。SERVICE可以在和多場合的應(yīng)用中使用,比如播放多媒體的時候用戶啟動了其他ACTIVITY這個時候程序要在后臺繼續(xù)播放,比如檢測SD卡上文件的變化,再或者在后臺記錄地理信息位置的改變等。開啟SERVICE有兩種方式ACONTEXTSTARTSERVICE()SERVICE會經(jīng)歷ONCREATEONSTART(如果SERVICE還沒有運行,則ANDROID先調(diào)用ONCREATE()然后調(diào)用ONSTART();如果SERVICE已經(jīng)運行,則只調(diào)用ONSTART(),所以一個SERVICE的ONSTART方法可能會重復(fù)調(diào)用多次);STOPSERVICE的時候直接ONDESTROY,如果是調(diào)用者自己直接退出而沒有調(diào)用STOPSERVICE的話,SERVICE會一直在后臺運行。該SERVICE的調(diào)用者再啟動起來后可以通過STOPSERVICE關(guān)閉SERVICE。BCONTEXTBINDSERVICE()SERVICE會經(jīng)歷ONCREATE()ONBIND(),ONBIND將返回給客戶端一個IBIND接口實例,IBIND允許客戶端回調(diào)服務(wù)的方法,比如得到5SERVICE運行的狀態(tài)或其他操作。這個時候把調(diào)用者(CONTEXT,例如ACTIVITY)會和SERVICE綁定在一起,CONTEXT退出了,SREVICE就會調(diào)用ONUNBINDONDESTROYED相應(yīng)退出,所謂綁定在一起就共存亡了。3BROADCASTRECEIVER簡介在ANDROID中,BROADCAST是一種廣泛運用的在應(yīng)用程序之間傳輸信息的機制。而BROADCASTRECEIVER是對發(fā)送出來的BROADCAST進行過濾接受并響應(yīng)的一類組件。可以使用BROADCASTRECEIVER來讓應(yīng)用對一個外部的事件做出響應(yīng)。BROADCASTRECEIVER不能生成UI,也就是說對于用戶來說不是透明的,用戶是看不到的。BROADCASTRECEIVER通過NOTIFICATIONMANAGER來通知用戶這些事情發(fā)生了。BROADCASTRECEIVER既可以在ANDROIDMANIFESTXML中注冊,也可以在運行時的代碼中使用CONTEXTREGISTERRECEIVER(進行注冊。只要是注冊了,當(dāng)事件來臨的時候,即使程序沒有啟動,系統(tǒng)也在需要的時候啟動程序。各種應(yīng)用還可以通過使用CONTEXTSENDBROADCAST()將它們自己的INTENTBROADCASTS廣播給其他應(yīng)用程序。4CONTENTPROVIDER簡介CONTENTPROVIDER是ANDROID提供的第三方應(yīng)用數(shù)據(jù)的訪問方案。在ANDROID中,對數(shù)據(jù)的保護是很嚴密的,除了放在SD卡中的數(shù)據(jù),一個應(yīng)用所持有的數(shù)據(jù)庫、文件等內(nèi)容,都是不允許其他直接訪問的。ANDORID當(dāng)然不會真的把每個應(yīng)用都做成一座孤島,它為所有應(yīng)用都準備了一扇窗,這就是CONTENTPROVIDER。應(yīng)用想對外提供的數(shù)據(jù),可以通過派生CONTENTPROVIDER類,封裝成一枚CONTENTPROVIDER,每個CONTENTPROVIDER都用一個URI作為獨立的標識,形如CONTENT/COMXXXXX。所有東西看著像REST的樣子,但實際上,它比REST更為靈活。和REST類似,URI也可以有兩種類型,一種是帶ID的,另一種是列表的,但實現(xiàn)者不需要按照這個模式來做,給ID的URI也可以返回列表類型的數(shù)據(jù),只要調(diào)用者明白,就無妨,不用苛求所謂的REST。215SQLITE簡介SQLITE是一款嵌入式的輕型數(shù)據(jù)庫,它只占用很少的資源,有時只需幾百K。它支持WINDOWS/LINUX/UNIX等操作系統(tǒng),它能跟JAVA、C等程序設(shè)計語言相結(jié)合,還有ODBC接口。它處理數(shù)據(jù)的速度比MYSQL、POSTGRESQL等數(shù)據(jù)庫都快。ANDROID作為目前主流的移動操作系統(tǒng),完全符合SQLITE占用資源少的優(yōu)勢,故在ANDROID平臺上,集成了一個嵌入式關(guān)系型數(shù)據(jù)庫SQLITE。本數(shù)據(jù)庫支持功能如下1自動建表,支持屬性來自繼承類可根據(jù)注解自動完成建表,并且對于繼承類中的注解字段也支持自動建表。2自動支持增刪改,增改支持對象化操作增刪改是數(shù)據(jù)庫操作的最基本單元,不用重復(fù)寫這些增刪改的代碼,并且添加和更新支持類似于HIBERNATE中的對象化操作。3查詢方式靈活支持ANDROID框架提供的方式,也支持原生SQL方式。4查詢結(jié)果對象化對于查詢結(jié)果可自動包裝為實體對象,類似于HIBERNATE框架。5查詢結(jié)果靈活查詢結(jié)果支持對象化,也支持結(jié)果為LIST形式,這個方法在實際項目中很實用,且效率更好些。622搭建ANDROID開發(fā)環(huán)境任何事物要運行,都要有它的環(huán)境,ANDROID也有它的環(huán)境才能夠運行,下面介紹ANDROID的開發(fā)環(huán)境配置。搭建開發(fā)環(huán)境需要的環(huán)境1操作系統(tǒng)WINDOWS7;2下載JDKHTTP/WWWORACLECOM/TECHNETWORK/JAVA/JAVASE/DOWNLOADS/INDEXHTML,安裝JDK。我的安裝目錄是CPROGRAMFILESJAVAJDK170_07和CPROGRAMFILESJAVAJRE7,如圖22所示圖22JDK安裝目錄3下載ANDROIDSDK工具包ADTBUNDLEWINDOWSX86,HTTP/DEVELOPERANDROIDCOM/SDK/INDEXHTML,包含ECLIPSE和SDK,版本是ADTBUNDLEWINDOWSX8620131030。解壓縮ADTBUNDLEWINDOWSX86包,我的安裝路徑是FADTBUNDLEWINDOWSX86,里面包含ECLIPSE和SDK,還有一個SDKMANAGER,SDK下載如圖23所示圖23SDK下載4配置環(huán)境變量,桌面計算機右鍵屬性高級系統(tǒng)設(shè)置高級環(huán)境變量變量名JAVA_HOME變量值CPROGRAMFILESJAVAJDK170_07;具體如圖24所示圖24配置JAVA_HOME變量名PATH7變量值JAVA_HOMEBINFADTBUNDLEWINDOWSX86SDKTOOLSFADTBUNDLEWINDOWSX86SDKPLATFORMTOOLS;具體如圖25所示圖25配置PATH變量名CLASSPATH變量值JAVA_HOMELIBTOOLSJARJAVA_HOMELIBDTJARJAVA_HOMELIB;具體如圖26所示圖26配置CLASSPATH5測試環(huán)境變量運行CMD,輸入JAVA或者JAVAC測試命令看成功與否;具體如圖27所示圖27測試環(huán)境變量6相關(guān)SDK的更新,具體如圖28所示8圖28SDK更新7配置ANDROID模擬器,具體如圖29所示圖29配置模擬器8點擊START,運行模擬器,具體如圖210所示圖210運行模擬器至此,ANDROID開發(fā)環(huán)境已搭建完成。923了解JASON的相關(guān)知識JSON是一種輕量級的數(shù)據(jù)交換語言,以文字為基礎(chǔ),且易于讓人閱讀。盡管JSON是在JAVASCRIPT的一個子集,但JSON是獨立于語言的文本格式,并且采用了類似于C語言家族的一些習(xí)慣。1基本信息JSON,全稱是JAVASCRIPTOBJECTNOTATION。它是基于JAVASCRIPT編程語言ECMA2623RDEDITIONDECEMBER1999標準的一種輕量級的數(shù)據(jù)交換格式,主要用于跟服務(wù)器進行交換數(shù)據(jù)。跟XML相類似,它獨立語言,在跨平臺數(shù)據(jù)傳輸上有很大的優(yōu)勢。2基礎(chǔ)結(jié)構(gòu)JSON建構(gòu)有兩種結(jié)構(gòu)A“名稱/值”對的集合。不同的語言中,它被理解為對象,記錄,結(jié)構(gòu),字典,哈希表,有鍵列表,或者關(guān)聯(lián)數(shù)組。B值的有序列表。在大部分語言中,它被理解為數(shù)組。3具體形式A對象是一個無序的“名稱/值對”集合。一個對象以“”(左括號)開始,“”(右括號)結(jié)束。每個“名稱”后跟一個“”(冒號);“名稱/值對”之間使用“,”(逗號)分隔。B數(shù)組是值的有序集合。一個數(shù)組以“”(左中括號)開始,“”(右中括號)結(jié)束。值之間使用“,”(逗號)分隔。C值可以是雙引號括起來的字符串、數(shù)值、TRUE、FALSE、NULL、對象或者數(shù)組。這些結(jié)構(gòu)可以嵌套。D字符串是由雙引號包圍的任意數(shù)量UNICODE字符的集合,使用反斜線轉(zhuǎn)義。一個字符即一個單獨的字符串。字符串與C或者JAVA的字符串非常相似。E數(shù)值與C或者JAVA的數(shù)值非常相似。除去未曾使用的八進制與十六進制格式,除去一些編碼細節(jié)。4格式應(yīng)用JSON是JAVASCRIPT原生格式,所以JAVASCRIPT中處理JSON數(shù)據(jù)不需要任何特殊的API或工具包。A將JSON數(shù)據(jù)賦值給變量例如,可以創(chuàng)建一個新的JAVASCRIPT變量,然后將JSON格式的數(shù)據(jù)字符串直接賦值給它VARPEOPLE“PROGRAMMERS“FIRSTNAME“BRETT“,“LASTNAME“MCLAUGHLIN“,“EMAIL“AAAA“,“FIRSTNAME“JASON“,“LASTNAME“HUNTER“,“EMAIL“BBBB“,“FIRSTNAME“ELLIOTTE“,“LASTNAME“HAROLD“,“EMAIL“CCCC“,“AUTHORS“FIRSTNAME“ISAAC“,“LASTNAME“ASIMOV“,“GENRE“SCIENCEFICTION“,10“FIRSTNAME“TAD“,“LASTNAME“WILLIAMS“,“GENRE“FANTASY“,“FIRSTNAME“FRANK“,“LASTNAME“PERETTI“,“GENRE“CHRISTIANFICTION“,“MUSICIANS“FIRSTNAME“ERIC“,“LASTNAME“CLAPTON“,“INSTRUMENT“GUITAR“,“FIRSTNAME“SERGEI“,“LASTNAME“RACHMANINOFF“,“INSTRUMENT“PIANO“B訪問數(shù)據(jù)上面的長字符串實際上只是一個數(shù)組,將這個數(shù)組放進JAVASCRIPT變量之后,就可以訪問它。實際上,只需用點號表示法來表示數(shù)組元素。所以,要訪問PROGRAMMERS列表的第一個條目的姓氏,只需在JAVASCRIPT中使用下面的代碼PEOPLEPROGRAMMERS0LASTNAME所以,這行代碼首先訪問PEOPLE變量中的數(shù)據(jù);然后移動到PROGRAMMERS的條目,再移動到第一個記錄(0);最后,訪問LASTNAME鍵的值。結(jié)果是字符串值“MCLAUGHLIN”。下面是使用同一變量的幾個示例。PEOPLEAUTHORS1GENRE/VALUEIS“FANTASY“PEOPLEMUSICIANS3LASTNAME/UNDEFINEDTHISREFERSTOTHEFOURTHENTRY,ANDTHEREISNTONEPEOPLEPROGRAMMERS2FIRSTNAME/VALUEIS“ELLIOTTE“利用這樣的語法,可以處理任何JSON格式的數(shù)據(jù),而不需要使用任何額外的JAVASCRIPT工具包或API。C修改JSON數(shù)據(jù)可以按照點號和方括號訪問數(shù)據(jù)的方式修改數(shù)據(jù)PEOPLEMUSICIANS1LASTNAME“RACHMANINOV“在將字符串轉(zhuǎn)換為JAVASCRIPT對象之后,就可以修改變量中的數(shù)據(jù)。D轉(zhuǎn)換回字符串在JAVASCRIPT中轉(zhuǎn)換回字符串的代碼如下STRINGNEWJSONTEXTPEOPLETOJSONSTRING這樣就獲得了一個可以在任何地方使用的文本字符串,例如,可以將它用作AJAX應(yīng)用程序中的請求字符串??梢詫⑷魏蜫AVASCRIPT對象轉(zhuǎn)換為JSON文本。如果對名為MYOBJECT的對象進行轉(zhuǎn)換,只需執(zhí)行相同形式的命令STRINGMYOBJECTINJSONMYOBJECTTOJSONSTRING這就是JSON與其他數(shù)據(jù)格式之間最大的差異。使用JSON,只需調(diào)用一個簡單的函數(shù),就可以獲得經(jīng)過格式化的數(shù)據(jù),就可以直接使用了。5基礎(chǔ)示例JSON可以將JAVASCRIPT對象中表示的一組數(shù)據(jù)轉(zhuǎn)換為字符串,然后就在函數(shù)之間傳遞這個字符串,或者在異步應(yīng)用程序中將字符串從WEB客戶機傳遞給服務(wù)器端程序。而且JSON可以表示比“名稱/值對“更復(fù)雜的結(jié)構(gòu)。例如,可以表示數(shù)組和復(fù)雜的對象,而不僅僅是鍵和值的簡單列表。11A表示名稱/值對可以用下面的JSON表示“名稱/值對“FIRSTNAME“BRETT“當(dāng)將多個“名稱/值對“串在一起時,JSON更容易使用,而且可讀性更好。例如“FIRSTNAME“BRETT“,“LASTNAME“MCLAUGHLIN“,“EMAIL“AAAA“它明確地表示以上三個值都是同一記錄的一部分,花括號使這些值有了某種聯(lián)系。B表示數(shù)組當(dāng)需要表示一組值時,JSON可以提高可讀性,而且可以減少復(fù)雜性。例如,要表示一個人名列表。使用JSON只需將多個帶花括號的記錄分組在一起“PEOPLE“FIRSTNAME“BRETT“,“LASTNAME“MCLAUGHLIN“,“EMAIL“AAAA“,“FIRSTNAME“JASON“,“LASTNAME“HUNTER“,“EMAIL“BBBB“,“FIRSTNAME“ELLIOTTE“,“LASTNAME“HAROLD“,“EMAIL“CCCC“在這個示例中,只有一個名為PEOPLE的變量,值是包含三個條目的數(shù)組,每個條目是一個人的記錄,其中包含名、姓和電子郵件地址。在處理JSON格式的數(shù)據(jù)時,不需要遵守的預(yù)定義的約束。所以,在同樣的數(shù)據(jù)結(jié)構(gòu)中,可以改變表示數(shù)據(jù)的方式,甚至可以以不同方式表示同一事物。24HANDLER、INTENT和監(jiān)聽器1HANDLER主要接受子線程發(fā)送的數(shù)據(jù),并用此數(shù)據(jù)配合主線程更新UI當(dāng)應(yīng)用程序啟動時,ANDROID首先會開啟一個主線程也就是UI線程,主線程為管理界面中的UI控件,進行事件分發(fā),比如說,要是點擊一個BUTTON,ANDROID會分發(fā)事件到BUTTON上來響應(yīng)操作。如果此時需要一個耗時的操作,例如聯(lián)網(wǎng)讀取數(shù)據(jù),或者讀取本地較大的一個文件的時候,不能把這些操作放在主線程中,如果放在主線程中的話,界面會出現(xiàn)假死現(xiàn)象,如果5秒鐘還沒有完成的話,會收到ANDROID系統(tǒng)的一個錯誤提示“強制關(guān)閉”。這個時候需要把這些耗時的操作,放在一個子線程中,因為子線程涉及到UI更新,ANDROID主線程是線程不安全的,也就是說,更新UI只能在主線程中更新,子線程中操作是危險的。這個時候,HANDLER就可以解決這個問題,由于HANDLER運行在主線程中UI線程中,它與子線程可以通過MESSAGE對象來傳遞數(shù)據(jù),HANDLER就承擔(dān)著接受子線程傳過來的子線程用SEDMESSAGE方法傳弟MESSAGE對象,里面包含數(shù)據(jù),把這些消息放入主線程隊列中,配合主線程進行更新UI。HANDLER可以分發(fā)MESSAGE對象和RUNNABLE對象到主線程中,每個HANDLER實例,都會綁定到創(chuàng)建他的線程中一般是位于主線程,它有兩個作用安排消息或RUNNABLE在某個主線程中某個地方執(zhí)行;安排一個動作在不同的線程中執(zhí)行。HANDLER中分發(fā)消息的一些方法POSTRUNNABLEPOSTATTIMERUNNABLE,LONGPOSTDELAYEDRUNNABLELONG12SENDEMPTYMESSAGEINTSENDMESSAGEMESSAGESENDMESSAGEATTIMEMESSAGE,LONGSENDMESSAGEDELAYEDMESSAGE,LONG以上POST類方法允許排列一個RUNNABLE對象到主線程隊列中,SENDMESSAGE類方法,允許安排一個帶數(shù)據(jù)的MESSAGE對象到隊列中,等待更新。2INTENT協(xié)助ANDROID四種組件之間的通訊,負責(zé)對應(yīng)用中一次操作的動作、動作涉及數(shù)據(jù)、附加數(shù)據(jù)進行描述,ANDROID則根據(jù)此INTENT的描述,負責(zé)找到對應(yīng)的組件,將INTENT傳遞給調(diào)用的組件,并完成組件的調(diào)用。因此,INTENT起著一個媒體中介的作用,專門提供組件互相調(diào)用的相關(guān)信息,實現(xiàn)調(diào)用者與被調(diào)用者之間的解耦。在應(yīng)用中,有兩種形式來使用INTENTA直接INTENT指定了COMPONENT屬性的INTENT調(diào)用SETCOMPONENTCOMPONENTNAME或者SETCLASSCONTEXT,CLASS來指定。通過指定具體的組件類,通知應(yīng)用啟動對應(yīng)的組件。B間接INTENT沒有指定COMONENT屬性的INTENT。這些INTENT需要包含足夠的信息,這樣系統(tǒng)才能根據(jù)這些信息,在在所有的可用組件中,確定滿足此INTENT的組件。對于直接INTENT,ANDROID不需要去做解析,因為目標組件已經(jīng)很明確,ANDROID需要解析的是間接INTENT,通過解析,將INTENT映射給可以處理此INTENT的ACTIVITY、INTENTRECEIVER或SERVICE。INTENT解析機制主要是通過查找已注冊在ANDROIDMANIFESTXML中的所有INTENTFILTER及其中定義的INTENT,最終找到匹配的INTENT。在這個解析過程中,ANDROID是通過INTENT的ACTION、TYPE、CATEGORY這三個屬性來進行判斷的,判斷方法如下如果INTENT指明定了ACTION,則目標組件的INTENTFILTER的ACTION列表中就必須包含有這個ACTION,否則不能匹配;如果INTENT沒有提供TYPE,系統(tǒng)將從DATA中得到數(shù)據(jù)類型。和ACTION一樣,目標組件的數(shù)據(jù)類型列表中必須包含INTENT的數(shù)據(jù)類型,否則不能匹配。如果INTENT中的數(shù)據(jù)不是CONTENT類型的URI,而且INTENT也沒有明確指定它的TYPE,將根據(jù)INTENT中數(shù)據(jù)的SCHEME比如HTTP或者MAILTO進行匹配。如果INTENT指定了一個或多CATEGORY,這些類別必須全部出現(xiàn)在組建的類別列表中。比如INTENT中包含了兩個類別LAUNCHER_CATEGORY和ALTERNATIVE_CATEGORY,解析得到的目標組件必須至少包含這兩個類別。INTENT實例例1無參數(shù)ACTIVITY跳轉(zhuǎn)INTENTITNEWINTENTACTIVITYMAINTHIS,ACTIVITY2CLASSSTARTACTIVITYIT例2向下一個ACTIVITY傳遞數(shù)據(jù)(使用BUNDLE和INTENTPUTEXTRAS)INTENTITNEWINTENTACTIVITYMAINTHIS,ACTIVITY2CLASSBUNDLEBUNDLENEWBUNDLEBUNDLEPUTSTRING“NAME“,“THISISFROMMAINACTIVITY“ITPUTEXTRASBUNDLE/ITPUTEXTRA“TEST”,“SHUJU”STARTACTIVITYIT/STARTACTIVITYFORRESULTIT,REQUEST_CODE對于數(shù)據(jù)的獲取可以采用BUNDLEBUNDLEGETINTENTGETEXTRAS13STRINGNAMEBUNDLEGETSTRING“NAME“例3向上一個ACTIVITY返回結(jié)果INTENTINTENTGETINTENTBUNDLEBUNDLE2NEWBUNDLEBUNDLE2PUTSTRING“NAME“,“THISISFROMSHOWMSG“INTENTPUTEXTRASBUNDLE2SETRESULTRESULT_OK,INTENT例4回調(diào)上一個ACTIVITY的結(jié)果處理函數(shù)(ONACTIVITYRESULT)OVERRIDEPROTECTEDVOIDONACTIVITYRESULTINTREQUESTCODE,INTRESULTCODE,INTENTDATA/TODOAUTOGENERATEDMETHODSTUBSUPERONACTIVITYRESULTREQUESTCODE,RESULTCODE,DATAIFREQUESTCODEREQUEST_CODEIFRESULTCODERESULT_CANCELEDSETTITLE“CANCLE“ELSEIFRESULTCODERESULT_OKSTRINGTEMPNULLBUNDLEBUNDLEDATAGETEXTRASIFBUNDLENULLTEMPBUNDLEGETSTRING“NAME“SETTITLETEMP3監(jiān)聽器監(jiān)聽器是個抽象類,它包含了一個事件觸發(fā)時系統(tǒng)會去調(diào)用的函數(shù)。在子類中,根據(jù)項目的需要重寫這個函數(shù),派生后的監(jiān)聽器需要綁定到按鈕上。一般的情況是這個按鈕可能需要這個監(jiān)聽器,而另外一個按鈕需要另外一個監(jiān)聽器,每個監(jiān)聽器各司其職,但功能相似時,也可以多個按鈕共同綁定一個監(jiān)聽器。各種控件,都有常用的事件,如點擊按鈕,拖動一個滾動條,切換一個LISTVIEW的選項等,綁定監(jiān)聽器的函數(shù)命名規(guī)則是SETONLISTENER。當(dāng)用戶(也可能系統(tǒng))觸發(fā)某個控件的某個事件后,往往要處理一些細節(jié),但他們不具有通用性,例如可能點擊按鈕后改變它的值,也可能希望點擊按鈕后彈出一個網(wǎng)頁,或者點擊按鈕后關(guān)閉當(dāng)前ACTIVITY。正由于結(jié)果可能太多樣,設(shè)計者索性將實現(xiàn)完全留給ANDROID開放者去實現(xiàn),監(jiān)聽器其實是一種回調(diào)它不需要去執(zhí)行ONLISTENER,而是系統(tǒng)觸發(fā)后自動會去調(diào)用它。以使用自定義內(nèi)部類繼承監(jiān)聽器抽象類,并實現(xiàn)抽象方法,也可以使用JAVA提供的抽象類的匿名實現(xiàn)。監(jiān)聽器的實現(xiàn)方式有以下幾種第一種,匿名內(nèi)部類作為事件監(jiān)聽器類。大部分事件監(jiān)聽器只是臨時使用一次,所以使用匿名內(nèi)部類形式的事件監(jiān)聽器更合適。對于使用匿名內(nèi)部類作為監(jiān)聽器的形式來說,唯一的缺點就是匿名內(nèi)部類的語法有些不易掌握。第二種,內(nèi)部類作為監(jiān)聽器。將事件監(jiān)聽器類定義成當(dāng)前類的內(nèi)部類。使用內(nèi)部類可以在當(dāng)前類中復(fù)用監(jiān)聽器類,因為監(jiān)聽器類是外部類的內(nèi)部類,所以可以自由訪問外部類的所有界面組件。這是內(nèi)部類的兩個優(yōu)勢。第三種,ACTIVITY本身作為事件監(jiān)聽器。這種形式使用ACTIVITY本身作為監(jiān)聽器類,14可以直接在ACTIVITY類中定義事件處理器方法,這種形式非常簡潔。但這種做法的缺點就是可能造成程序結(jié)構(gòu)混亂。ACTIVITY的主要職責(zé)應(yīng)該是完成界面初始化,但此時還需包含事件處理器方法,從而會引起程序結(jié)構(gòu)引起混亂。第四種,外部類作為監(jiān)聽器。使用外部類定義事件監(jiān)聽器類的形式比較少見,主要因為以下兩個原因A事件監(jiān)聽器通常屬于特定的GUI界面,定義成外部類不籃球提高程序的內(nèi)聚性。B外部類形式的事件監(jiān)聽器不能自由訪問創(chuàng)建GUI界面的類中的組件,編程不夠簡潔。但如果某個事件監(jiān)聽器確實需要被多個GUI界面所共享,而且主要是完成某種業(yè)務(wù)邏輯的實現(xiàn),則可以考慮使用外部類的形式來定義事件監(jiān)聽器類。第五種直接綁定到標簽ANDROID還有一種更簡單的綁定事件監(jiān)聽器的的方式,直接在界面布局文件中為指定標簽綁定事件處理方法。對于很多ANDROID標簽而言,它們都支持如ONCLICK、ONLONGCLICK等屬性,這種屬性的屬性值就是一個形如VIEWSOURCE的方法的方法名。3概要設(shè)計本章首先介紹了基于ANDROID的天氣預(yù)報軟件的可行性和需求分析,確立了開發(fā)基礎(chǔ),接著做了系統(tǒng)的流程設(shè)計,最后將軟件的模塊做了劃分。31概述系統(tǒng)分析是在總體規(guī)劃的指導(dǎo)下,對某個或若干個子系統(tǒng)進行探究,以此來確定新系統(tǒng)的各項功能。這一階段主要是研究各部分之間的相互作用以及系統(tǒng)的界面和接口等,改善系統(tǒng)性能,從而達到最優(yōu)的系統(tǒng)。311系統(tǒng)分析的原則1邏輯設(shè)計與物理設(shè)計分開的原則;2面向用戶的原則;3結(jié)構(gòu)化分析的原則;312系統(tǒng)分析的方法該系統(tǒng)采用抽象和分解的方法,根據(jù)實際調(diào)查研究,對系統(tǒng)進行自頂向下的逐層分解,逐步細分,逐步求精,讓其盡可能的簡單化、通俗化,便于設(shè)計者和瀏覽者的溝通與交流。本系統(tǒng)采用結(jié)構(gòu)化設(shè)計的方法,其基本思想是“自頂向下,逐步求精“和“單入口單出口“,從而達到易于理解的目的。1532系統(tǒng)可行性分析可行性研究的目的在于研究解決問題的必要性和可能性??尚行匝芯?,就是用最小的代價在盡可能短的時間內(nèi)確定問題是否能夠解決。為了避免盲目的軟件開發(fā),相關(guān)人員需要對開發(fā)特定軟件項目的可行性進行研究,結(jié)合資金、技術(shù)和環(huán)境等各方面的制約條件,對該軟件產(chǎn)品是否能夠解決存在的問題,是否能夠帶來預(yù)期的效果和價值做出評估。系統(tǒng)的可行性分析主要包括經(jīng)濟可行性,技術(shù)可行性,操作可行性和法律可行性。1經(jīng)濟可行性目標系統(tǒng)開發(fā)經(jīng)濟需求的比較低,加上具有成熟的ANDROID平臺以及十分普及的手機設(shè)備,所以在軟硬件的支出上十分有限。而且,目標系統(tǒng)并不是十分的復(fù)雜,開發(fā)的周期較短,人員經(jīng)濟支出有限。最重要的一點是通過該系統(tǒng)的開發(fā),可以使我們進一步理解軟件開發(fā)流程,為從事軟件開發(fā)工作打下良好的基礎(chǔ)。從長遠利益來考慮,系統(tǒng)滿足經(jīng)濟可行性。2技術(shù)可行性本系統(tǒng)使用ANDROID技術(shù)進行開發(fā),發(fā)展到現(xiàn)在,ANDROID已經(jīng)算是一個較成熟的平臺了,現(xiàn)在有越來越多的企業(yè)及技術(shù)人員選擇它作為開發(fā)平臺。ANDROID開發(fā)平臺是由谷歌與開放手機聯(lián)盟合作開發(fā)的一個開放、自由的移動終端平臺,它由操作系統(tǒng)、中間件、應(yīng)用軟件三部分組成。該平臺備有完善的程序開發(fā)環(huán)境,包括模擬器、除錯工具、程序執(zhí)行所耗用存儲器、性能評介等功能。由于開發(fā)本系統(tǒng)的平臺相當(dāng)完善,再加上本人在實訓(xùn)基地進行過大量安卓項目實戰(zhàn),擁有較多開發(fā)此類項目的經(jīng)驗。因此,系統(tǒng)滿足技術(shù)可行性。3操作可行性本系統(tǒng)用戶只要有一臺ANDROID手機,就可以使用了,系統(tǒng)的操作都是用戶熟悉的選擇框或者按鈕。所有的操作通過手機就可以完成,用戶不需培訓(xùn),只要稍做提示即可。因此,系統(tǒng)滿足操作可行性。4法律可行性由于本系統(tǒng)是在相關(guān)法律法規(guī)下實施完成的,所以不存在任何法律問題。系統(tǒng)滿足法律可行性。綜合考慮經(jīng)濟、技術(shù)、操作和法律等方面的因素,該天氣預(yù)報軟件的設(shè)計可以開始進行。33系統(tǒng)需求分析本天氣預(yù)報軟件實現(xiàn)了天氣數(shù)據(jù)的獲取和解析顯示功能,具體來說,包括以下功能軟件的功能框架圖如圖31所示實時天氣信息查看用戶可以查看指定城市的實時天氣,包括溫度、濕度、風(fēng)力和穿衣指數(shù)等;16未來三天預(yù)報用戶可以查看到未來三天的天氣情況;更換城市用戶可以根據(jù)自己的實際情況選擇自己想要查詢的城市。圖31系統(tǒng)功能框架圖34性能需求分析為了保證軟件能夠長期、安全、穩(wěn)定、可靠、高效地在ANDROID設(shè)備上運行,本系統(tǒng)應(yīng)該滿足以下原則。341實用性原則該軟件充分利用手機的2G/3G網(wǎng)絡(luò),為本軟件提供信息支持,在簡潔實用的基礎(chǔ)上對軟件界面層級進行布局。342可擴展性與可維護性原則系統(tǒng)設(shè)計盡可能模塊化、組件化。有一個較好的應(yīng)用平臺ANDROID設(shè)備,能容易地安裝和卸載。343安全可靠性原則本軟件是基于手機設(shè)備使用的,不會殘留用戶任何的隱私信息。344用戶界面美觀原則界面經(jīng)過對用戶心理的調(diào)研并參考時下流行的軟件風(fēng)格進行設(shè)計,加入了對用戶具有誘導(dǎo)性的按鍵設(shè)計。345準確性原則本軟件的核心技術(shù)是通過與互聯(lián)網(wǎng)上提供的接口進行交互,保證了信息的準確性。17346易用性原則本軟件平易近人,不需要額外學(xué)習(xí),每個界面都會有不同含義的圖標進行提示下一步操作,保證用戶使用時不會感到迷惑。35系統(tǒng)流程分析本系統(tǒng)的流程比較清晰,首先天氣數(shù)據(jù)每更新一次,系統(tǒng)就會通過HTTP向指定的地址發(fā)出數(shù)據(jù)請求,若請求成功,則返回天氣數(shù)據(jù)并通過JSON格式來解析數(shù)據(jù),最終把解析到的數(shù)據(jù)顯示在手機界面上。這樣就完成了一次天氣數(shù)據(jù)的更新,這一過程的流程圖如圖32所示圖32系統(tǒng)流程圖1836項目模塊劃分由以上分析,可以將本系統(tǒng)劃分為4個模塊,它們分別是主界面模塊、更換城市界面模塊、網(wǎng)絡(luò)接口模塊和自動定位模塊。主界面模塊可以顯示當(dāng)前所選城市的實時天氣信息、未來三天的天氣信息以及穿衣指數(shù);最上方有刷新按鈕和更換城市按鈕;最下方可以顯示天氣信息發(fā)布的時間和上次刷新天氣信息的時間。更換城市界面模塊主要分為三部分,上方是熱門城市供用戶選擇,中間是全國所有城市及地區(qū)列表供用戶選擇,下方是“確定”和“取消”兩個按鈕。網(wǎng)絡(luò)接口模塊系統(tǒng)通過HTTP向指定的地址發(fā)出數(shù)據(jù)請求,若請求成功,則返回天氣數(shù)據(jù)并通過JSON格式來解析數(shù)據(jù)并把解析到的數(shù)據(jù)顯示在手機界面上。自動定位模塊點擊該按鈕,可以通過GPS來確定用戶當(dāng)前所在的城市。4詳細設(shè)計41設(shè)計目標本系統(tǒng)是設(shè)計目標是建立一個基于ANDROID平臺的天預(yù)報軟件,滿足用戶對最新天氣信息的獲取和查詢操作。用戶界面友好、操作簡單,每一步驟的操作都經(jīng)過精心的設(shè)計,將復(fù)雜的統(tǒng)計運算過程隱藏于簡單的操作之下,系統(tǒng)的設(shè)計能降低使用前的培訓(xùn)、實施和
溫馨提示
- 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. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2026江蘇南京大學(xué)圖書館倉儲人員招聘筆試模擬試題及答案解析
- 2026年德州科技職業(yè)學(xué)院單招職業(yè)技能考試備考題庫帶答案解析
- 吉林省吉林市外五縣各高中2025-2026學(xué)年高一上學(xué)期1月期末考試地理試卷(圖片版含解析)
- 2025 小學(xué)三年級數(shù)學(xué)下冊項目式學(xué)習(xí)課件
- 2026年華潤河南醫(yī)藥有限公司招聘備考題庫及答案詳解1套
- 2026年富源縣公安局老廠派出所公開招聘警務(wù)輔助人員10名備考題庫及答案詳解一套
- 2026年華潤保定醫(yī)藥有限公司河北雄安分公司招聘備考題庫及一套參考答案詳解
- 2026年中煤科工集團武漢設(shè)計研究院有限公司招聘備考題庫及答案詳解參考
- 2026年中國人壽財產(chǎn)保險股份有限公司昭通市中心支公司招聘備考題庫及一套答案詳解
- 2026年惠州市公安局招聘警務(wù)輔助人員612人備考題庫及一套完整答案詳解
- 急性腸系膜淋巴結(jié)炎診療指南(2025年版)
- 體育產(chǎn)業(yè)知識培訓(xùn)課件
- 2025年高考地理山東卷試卷評析及備考策略(課件)
- (完整版)設(shè)備安裝工程施工方案
- 2025年電商平臺運營總監(jiān)資格認證考試試題及答案
- 門窗質(zhì)量保證措施
- 浙江省2025年初中學(xué)業(yè)水平考試浙真組合·錢塘甬真卷(含答案)
- 鉆井工程施工進度計劃安排及其保證措施
- (高清版)DB34∕T 5225-2025 風(fēng)景名勝區(qū)擬建項目對景觀及生態(tài)影響評價技術(shù)規(guī)范
- 社區(qū)矯正面試試題及答案
- 《察今》(課件)-【中職專用】高二語文(高教版2023拓展模塊下冊)
評論
0/150
提交評論