版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
1、畢業(yè)設(shè)計(jì)(論文)課題名稱基于安卓操作系統(tǒng)的手機(jī)天氣預(yù)報(bào)設(shè)計(jì)學(xué)生XX學(xué)號系、年級專業(yè)指導(dǎo)教師職稱2016年5月20日XX學(xué)院畢業(yè)設(shè)計(jì)(論文)目錄摘要IABSTRACTII第1章緒論11.1安卓操作系統(tǒng)的發(fā)展11.2安卓操作系統(tǒng)的簡介11.3項(xiàng)目開發(fā)意義2第2章項(xiàng)目需求分析32.1功能分析32.2性能分析32.3安全分析42.4研究內(nèi)容和開發(fā)環(huán)境需求4第3章項(xiàng)目設(shè)計(jì)分析63.1程序功能模塊圖63.2顯示信息設(shè)計(jì)63.3解析數(shù)據(jù)73.4界面設(shè)計(jì)73.5程序流程圖9第4章項(xiàng)目實(shí)現(xiàn)124.1啟動畫面124.2信息界面之城市界面144.3天氣查詢174.4下拉刷新174.5窗口小部件widget18第5章
2、項(xiàng)目調(diào)試與功能測試205.1項(xiàng)目調(diào)試分析205.2功能測試21總結(jié)28參考文獻(xiàn)29附錄30致謝31XX學(xué)院畢業(yè)設(shè)計(jì)(論文)摘要進(jìn)入21世紀(jì)信息化時(shí)代,手機(jī)已經(jīng)成為了當(dāng)前人們生活、工作的重要組成部分,我國國內(nèi)的手機(jī)已經(jīng)普及眾多地區(qū),在得到了物質(zhì)經(jīng)濟(jì)生活的保障之外,人們對于精神的享受也是十分重視的,而手機(jī)則是成為了的當(dāng)前最為有效的交流媒介,有效縮短了地區(qū)交流限制,滿足人們娛樂的要求,人們使用手機(jī)可以從手機(jī)上獲取實(shí)時(shí)天氣信息,所以當(dāng)前天氣預(yù)報(bào)開發(fā)是具有良好前景的。本次設(shè)計(jì)的天氣預(yù)報(bào)開發(fā)是基于安卓的開發(fā)應(yīng)用,運(yùn)行系統(tǒng)為Android系統(tǒng),此開發(fā)標(biāo)準(zhǔn)參考慰目前流行的天氣預(yù)報(bào)開發(fā)標(biāo)準(zhǔn),JAVA語言中封裝了
3、需要代碼類,為更多的有興趣的開發(fā)者提供了方便與效率,并且本次開發(fā)的天氣預(yù)報(bào)操作簡單,十分適合大眾的使用習(xí)慣,這樣這一開發(fā)就會得到很大的推廣。關(guān)鍵詞:智能手機(jī);安卓;操作系統(tǒng);天氣IXX學(xué)院畢業(yè)設(shè)計(jì)(論文)ABSTRACTInthe21stcenturyinformationage,mobilephoneshavebecomethecurrentpeopleslives,animportantpartofthework,Chinasdomesticmobilephonehasbeenpopularinmanyparts,asupportmaterialobtainedineconomiclife
4、outside,peopleenjoythespiritisveryimportant,whilethephoneiscurrentlybecomethemosteffectivemediumofcommunication,effectivelyshorteningtheregionexchangerestrictions,requirementstomeetthepeopleentertainment,peopleusemobilephonestogetreal-timeweatherinformationfromthephone,sothecurrentweatherforecastisg
5、ooddevelopmentprospects.TheweatherforecastisbasedonthedevelopmentanddesignofthedevelopmentandapplicationAndrews,runsAndroidsystem,thedevelopmentofthisstandardreferencecomfortprevailingweatherforecastforthedevelopmentofstandards,JAVAlanguageclassencapsulatesthecoderequiredforthedevelopmentofmoreinter
6、esttoprovideaconvenientandefficient,andsimpleweatherforecastforthedevelopmentofthisoperation,verysuitableforpublicusehabits,sothisdevelopmentwillbegreatlypromoted.KEYWORDS:Android;operatingsystem;smartphone;weatherIIXX學(xué)院畢業(yè)設(shè)計(jì)(論文)第1章緒論1.1安卓操作系統(tǒng)的發(fā)展Android系統(tǒng)由AndyRubin團(tuán)隊(duì)開發(fā)制作,開發(fā)Android的最初目的是用于數(shù)碼相機(jī)的系統(tǒng),之后因?yàn)?/p>
7、數(shù)碼相機(jī)的市場不斷地進(jìn)行擴(kuò)大,并且也因?yàn)樾乱淮悄苁謾C(jī)的飛速發(fā)展,導(dǎo)致了這一系統(tǒng)的快速崛起,并且在以后的時(shí)間中被逐漸的只針對于手機(jī)系統(tǒng)這一塊操作系統(tǒng)。本世紀(jì),谷歌和很多廠商進(jìn)行了聯(lián)合開發(fā)和發(fā)展行動,主要研究方向?yàn)槭謾C(jī)系統(tǒng),也就是安卓系統(tǒng)的開發(fā)和應(yīng)用。并且最后還把安卓開發(fā)的源碼進(jìn)行了相關(guān)公布,例如平板電腦等,而在Android系統(tǒng)正式推出僅僅才兩年,在2012年底,通過數(shù)據(jù)統(tǒng)計(jì),Android操作系統(tǒng)的在市場占有比率超過了稱霸十余年的諾基亞的Symbian系統(tǒng),成為當(dāng)時(shí)世界X圍以內(nèi)的智能手機(jī)操作系統(tǒng)長期第一名,并且憑借其開源性的迅速壟斷了智能手機(jī)低端市場,并且影響其他的低端手機(jī)公司,最典型的例子
8、為隨著Android市場占有率不斷升高,直接導(dǎo)致諾基亞原有的低端手機(jī)市場占有率直線下降,而在2013年1月,諾基亞放棄低端市場,也就是諾基亞放棄了原有Symbian系統(tǒng)低端市場,專注于高端智能手機(jī)市場,直到現(xiàn)在Android已經(jīng)基本上壟斷了低端手機(jī)市場,成為了當(dāng)前智能手機(jī)霸主,這是促進(jìn)JAVA編程得到了廣大的發(fā)展空間。1.2安卓操作系統(tǒng)的簡介Android系統(tǒng)是基于開源linux系統(tǒng)為基礎(chǔ)的開源移動設(shè)備操作系統(tǒng),搭載對象主要為智能手機(jī)和平板電腦,當(dāng)前已經(jīng)發(fā)展到的的最新版本為Android15.0(Lollipop)。Android系統(tǒng)平臺由于其開發(fā)性優(yōu)勢,使得任何的移動終端都能夠加入到Andr
9、oid聯(lián)盟大軍中,這也是的Android系統(tǒng)發(fā)展如此迅猛的根本原因,顯著的開發(fā)性使得擁有廣闊的開發(fā)者,隨著用戶的不斷增多以及應(yīng)用不斷豐富,這標(biāo)志Android系統(tǒng)趨向于成熟。廣闊的軟件資源使得Android系統(tǒng)的競爭力不斷增加,而消費(fèi)者能夠以更低的價(jià)格購買到智能手機(jī),這也是Android迅速成為低端手機(jī)的霸主的根本原因。08年美國紐約發(fā)布了第一款安卓智能手機(jī),發(fā)布的手機(jī)WCDMA/HSPA網(wǎng)絡(luò),根據(jù)報(bào)道得知理論下載速率為7.2Mbit/s2,并且能夠連接Wi-Fi無限局域網(wǎng)絡(luò),在后面的時(shí)間中谷歌和開放手機(jī)聯(lián)盟致力于安卓手機(jī)的開發(fā)和應(yīng)用,最后安卓手機(jī)的開發(fā)和應(yīng)用廠商已經(jīng)有摩托羅拉、高通、宏達(dá)電和
10、T-Moblie中國移動等很多家著名1XX學(xué)院畢業(yè)設(shè)計(jì)(論文)企業(yè)進(jìn)行聯(lián)合看開發(fā)和應(yīng)用。之后再我國國內(nèi)針對Android操作系統(tǒng)進(jìn)行二次開發(fā),以Android系統(tǒng)源碼為基礎(chǔ),根據(jù)實(shí)際的硬件結(jié)構(gòu)進(jìn)行深度定制開發(fā),Android的發(fā)展歷史可謂與iPhone的發(fā)展歷史截然不同,由于iPhone的封閉性導(dǎo)致iPhone只能在智能手機(jī)的高端市場占據(jù)一席之地,而不能向Android一樣擁有巨大的用戶人群,同時(shí)這也證明了Android的火熱程度。1.3項(xiàng)目開發(fā)意義我國的社會國民經(jīng)濟(jì)是一步一步不斷地飛速發(fā)展,我國人民的生活質(zhì)量水平不斷3提高,人們的生活觀念也在發(fā)生變化,大多數(shù)小康家庭的生活目標(biāo)不再是追求物質(zhì)生
11、活的滿足,更多是追求精神生活的充實(shí),對于天氣的獲取也不再局限于天氣口訣或者自然現(xiàn)象了,根據(jù)了解眾多的青少年對于天氣的獲取是從手機(jī)上進(jìn)行查看的,就目前而言,對于天氣情況的獲取手機(jī)已經(jīng)成為目前最為流行也是最為方便的方式之一。從這里就可以看出,目前流行的天氣預(yù)報(bào)的方式之一就是手機(jī)天氣信息的獲取。2XX學(xué)院畢業(yè)設(shè)計(jì)(論文)第2章項(xiàng)目需求分析2.1功能分析(1)要有良好效果的界面在進(jìn)行安卓的相關(guān)開發(fā)操作開發(fā)研究中,其中用戶體驗(yàn)最多的就是界面,而在開發(fā)中界面我們稱之為UI,設(shè)計(jì)優(yōu)美方便的界面將極大地提升用戶對軟件的體驗(yàn)度,從而獲得用戶的喜愛。設(shè)計(jì)一個讓用戶感覺體驗(yàn)好的界面是設(shè)計(jì)中較為重要的一個環(huán)節(jié)4。(2
12、)天氣信息查詢功能設(shè)計(jì)天氣預(yù)報(bào)程序中最為重要的就是天氣信息的實(shí)時(shí)更新操作,只有這樣才能夠確保天氣是實(shí)時(shí)變動,并且天氣是最為準(zhǔn)確和精準(zhǔn)的。本次設(shè)計(jì)中采用了WebService服務(wù)來進(jìn)行天氣的實(shí)時(shí)更新操作,利用通Activity來進(jìn)行信息的相關(guān)處理操作,并且進(jìn)行信息的顯示5。(3)附加信息在進(jìn)行軟件設(shè)計(jì)時(shí),我們還可以增加一些新的功能,比如可以增加網(wǎng)絡(luò)實(shí)時(shí)定位功能,從而豐富軟件的實(shí)用性能。還可以增加多次城市的查詢,這樣就可以不僅僅只能局限于一個城市的天氣。(4)操作簡單每一個設(shè)計(jì)的軟件,如果操作的過程很復(fù)雜,那么在實(shí)際的市場中,是不會被廣大的使用者所接受的,這也是為什么一再強(qiáng)調(diào)軟件的使用要很簡單,只
13、有簡單才能夠讓用戶喜歡。2.2性能分析(1)優(yōu)化Java代碼安卓的java來發(fā)都是用來進(jìn)軟件程序的開發(fā)操作的,所以我們可以知道選擇一個好的算法將大大提升軟件的實(shí)際應(yīng)用和運(yùn)行效率。采用一個快捷有效的方法才是開發(fā)程序最為重要的。不斷地優(yōu)化內(nèi)存代碼,并且清除相關(guān)的緩存才能夠提升代碼運(yùn)行效率。(2)提高性能代碼要軟件中要占用盡可能少的內(nèi)存,只有這樣才能夠讓代碼在運(yùn)行時(shí)有著良好的效率和速度。并且讓還要對CPU進(jìn)行相關(guān)的代碼優(yōu)化操作,合理的分配內(nèi)存空間,只有這樣才能代碼運(yùn)行進(jìn)行相關(guān)訪問時(shí)性能大大地提升,并且不會產(chǎn)生一些錯誤。3XX學(xué)院畢業(yè)設(shè)計(jì)(論文)(3)利用多線程安卓軟件開發(fā)設(shè)計(jì)是使用java語言,所以
14、一般都是利用多線程來進(jìn)行代碼編程,多線程編程的主要好處就是可以對用戶的任何操作做到實(shí)時(shí)反饋和相應(yīng)的響應(yīng),這樣也能夠極大的緩解內(nèi)存的壓力,并且減少CPU的占用。從而讓用戶獲得不一樣的體驗(yàn)。(4)降低功耗我們在進(jìn)行程序的設(shè)計(jì)開發(fā)時(shí),要注意功能損耗的問題,如果一個程序在運(yùn)行時(shí)占用大量的電量,這是非常不明智的。占用大量的電量的原因是因?yàn)檫\(yùn)行相關(guān)一些完全沒必要的代碼。所以這一程序肯定是不合格并且沒有市場前景的去掉代碼中一些不必要的代碼,這樣程序在進(jìn)行運(yùn)行時(shí)才能夠有效率,避免一些冗長的代碼拖慢或者消耗過多的電量。2.3安全分析(1)安卓的安全設(shè)計(jì)原則安卓應(yīng)用實(shí)際平臺中相關(guān)的程序是沒有權(quán)限操作的,所以不能夠
15、私自進(jìn)行一些操作進(jìn)行程序的破壞和相關(guān)重建,這是目前安卓開發(fā)的最特殊的地方之一。不允許私自對用戶的相關(guān)信息進(jìn)行讀取和修改,不允許用戶信息文件進(jìn)行讀寫操作。最后要注意的一點(diǎn)就是,對于一些正在運(yùn)行得到程序不能夠進(jìn)行干擾操作,安卓中的每一個運(yùn)行程序不能夠?qū)σ恍﹦e的程序進(jìn)行有干擾操作,并且有些權(quán)限要有提前申明。(在安裝時(shí)程序會提醒是否授予軟件權(quán)限)(2)安卓數(shù)據(jù)安全原則安卓應(yīng)用在有相關(guān)權(quán)限許可的情況下,對于一些默認(rèn)授權(quán)以外,其余一些系統(tǒng)數(shù)據(jù)是不能夠被別的程序進(jìn)行增刪改查操作的。這是因?yàn)榘沧亢芏啻a都是開源,所以在有些系統(tǒng)代碼中就必須要進(jìn)行相關(guān)操作,否則就會導(dǎo)致整個系統(tǒng)被私自亂改。2.4研究內(nèi)容和開發(fā)環(huán)境
16、需求(1)本次的天氣預(yù)報(bào)系統(tǒng)的開發(fā)環(huán)境由AndroidStudio框架、ndk插件、adt插件構(gòu)建而成,通過adt插件構(gòu)建的Android的應(yīng)用程序的開發(fā)環(huán)境,同時(shí)建立相應(yīng)的程序開發(fā)的框架,而ndk主要是為了對Android系統(tǒng)的環(huán)境的模擬(Windows不能支持的支持Android程序的運(yùn)行需要下載模擬器),或者是可以直接將你的Android手機(jī)連接至電腦,將Android作為軟件開發(fā)環(huán)境,上述的兩種開發(fā)方式為此次開發(fā)的主要環(huán)境,尤其是天氣預(yù)報(bào)系統(tǒng)主要是運(yùn)行Android手機(jī)上,但是同時(shí)支4XX學(xué)院畢業(yè)設(shè)計(jì)(論文)持模擬器。搭建Android開發(fā)環(huán)境,下載并安裝AndroidStudio,下
17、載并安裝androidSDK;并配置好對應(yīng)的ADT插件、劃分適當(dāng)?shù)倪\(yùn)行內(nèi)存和存儲空間來安置Android模擬器6。(2)盡可能多的研究android平臺應(yīng)用程序開發(fā)的技術(shù)理論,掌握Android框架下開發(fā)應(yīng)用程序的相關(guān)技術(shù)與流程。(3)本次程序開發(fā)基礎(chǔ)是Java語言,再通過這個應(yīng)用程序來熟悉多線程編程。(4)如何從遠(yuǎn)端服務(wù)器上獲取信息。5XX學(xué)院畢業(yè)設(shè)計(jì)(論文)第3章項(xiàng)目設(shè)計(jì)分析3.1程序功能模塊圖依據(jù)功能的需求分析,在這個項(xiàng)目中一共設(shè)計(jì)了以下功能(如圖3-1.1所示。):(1)顯示天氣信息,除了顯示當(dāng)天的天氣信息外還會顯示未來五天的天氣狀況,還有就是目標(biāo)城市的各種指數(shù)情(2)查詢某個城市天氣
18、信息,作為一個手機(jī)天氣預(yù)報(bào)的軟件,最基本的就是查詢天氣信息了,因此在這個設(shè)計(jì)中設(shè)計(jì)了可以按照城市名來查詢天氣信息。(3)定位功能,這個功能的主要是當(dāng)用戶打開這個軟件時(shí),就會自動顯示用戶所在城市的天氣信息,方便用戶體驗(yàn)。除了這些以外,還有一些非常實(shí)用的功能,例如檢查手機(jī)網(wǎng)絡(luò)狀態(tài)是否良好等。圖3-1.1功能模塊3.2顯示信息設(shè)計(jì)這個設(shè)計(jì)中主要有以下幾種信息:6XX學(xué)院畢業(yè)設(shè)計(jì)(論文)(1)當(dāng)天日期和當(dāng)天的天氣狀況,還有未來五天的氣候。(2)天氣信息,這里面有溫度、風(fēng)力、濕度等等。(3)各種指數(shù),好比運(yùn)動指數(shù)、穿衣指數(shù)、感冒指數(shù)等等。(4)更新天氣的時(shí)間。3.3解析數(shù)據(jù)因?yàn)檫@個設(shè)計(jì)里面所用的信息,如
19、定位功能是從ip地址來判定的,天氣信息則是從和風(fēng)天氣網(wǎng)提供的免費(fèi)的api獲得的。獲取天氣等信息時(shí)采取Json技術(shù)解析,再通過接口的調(diào)用,直接從之前設(shè)置的WebXml獲得7。取得到天氣信息后就需要解析數(shù)據(jù),再把數(shù)據(jù)傳遞給相對應(yīng)的變量。最后在Activity中顯示到界面上,按照需求分析,解析了天氣信息,得到未來五天的天氣情況,還有城市的各種天氣指數(shù)。3.4界面設(shè)計(jì)這個項(xiàng)目里面主要就設(shè)計(jì)了幾個界面,最重要的有:程序啟動時(shí)所呈現(xiàn)的畫面,然后就是啟動完成后時(shí)顯示的界面,即顯示信息的主界面,其次是用于顯示明添加城市的界面(即查詢城市),用戶可以在這個界面上輸入要查詢的城市,然后在信息界面獲取天氣信息。在規(guī)
20、劃界面時(shí),考慮到界面的友好性,靚麗性和實(shí)用性。友好性,是指界面布局簡潔,操作簡單,不會繁瑣多余。靚麗性,盡可能的將界面設(shè)置地更為漂亮,這樣也會隨之提高應(yīng)用程序的價(jià)值。另外,還需要考慮的一方面就是盡可能多的在頁面將信息展示出來,即在有限的空間內(nèi)將信息合理地展示出來,便于用戶閱讀信息,這就是實(shí)用性。接下來就一一介紹這個設(shè)計(jì)里面的主要界面。3.4.1程序啟動界面當(dāng)安裝好程序后軟件會自動提示是否獲取手機(jī)權(quán)限(GPS定位時(shí)需要用到),如圖3-2.1所示,為了安全起見市場上的軟件都會有這一項(xiàng)提醒,以防止木馬侵入。7XX學(xué)院畢業(yè)設(shè)計(jì)(論文)圖3-2.1手機(jī)權(quán)限3.4.2信息界面之主界面(MainPage)當(dāng)
21、點(diǎn)擊允許時(shí)軟件將進(jìn)入主頁面,因?yàn)樵诎惭b后已經(jīng)授予軟件權(quán)限獲取定位,所以在聯(lián)網(wǎng)狀態(tài)下它就會自動獲取你所在的位置,獲取到城市名后便會自動從網(wǎng)上獲取天氣信息,并將信息顯示到界面上。當(dāng)進(jìn)入到這個界面時(shí),有可能會出現(xiàn)卡的情況,因?yàn)槌绦騿雍笤谶@個界面會進(jìn)行一些基本操作,然后當(dāng)信息獲取成功后就會顯示設(shè)計(jì)的布局中。在這個界面中,會顯示有以下信息:日期:當(dāng)天的日期,格式為:-年-月-日。天氣:當(dāng)天的天氣情況。天氣圖片:天氣情況,顯示與當(dāng)天天氣相符的天氣圖片,如太陽,云朵。氣溫:格式為當(dāng)天的最低溫度/最高溫度,單位是攝氏度。風(fēng)力:風(fēng)向和強(qiáng)度大小。指數(shù):有各項(xiàng)指數(shù),包括穿衣指數(shù),過敏指數(shù)等等。天氣實(shí)況:指查詢時(shí)刻
22、的天氣情況,包含空氣質(zhì)量,以及濕度,天氣,溫度。分享按鈕:有個一鍵分享的按鈕,可以通過QQ,微信,短信等途徑分享給你的好友。8XX學(xué)院畢業(yè)設(shè)計(jì)(論文)菜單按鈕:用點(diǎn)擊這個按鈕時(shí),可以進(jìn)入到查詢城市界面。滑動切換:左右滑動切換到信息界面二(NextPage)。在滑動時(shí)有一定的動作效果。3.4.3信息界面之城市界面(CityPage)當(dāng)用戶點(diǎn)擊主界面的那個菜單符號時(shí),你就可以看到所示。有一個簡單的介紹和添加城市的按鈕,當(dāng)點(diǎn)擊添加城市進(jìn)入選擇你需要獲取城市的天氣信息。這是一個ListView頁面,用戶可以通過上下滑動來選擇城市,這里可以顯示全國的各個城市,可以具體到縣級城市。搜索框:在本界面的最上方
23、會有一個輸入框,是給用戶查詢城市用的,在這個框中,默認(rèn)的是顯示“搜索全國城市(中文/拼音)”,并對這個輸入框進(jìn)行了模糊查詢。比如當(dāng)你輸入一個“邵”字,在搜索框下面便會出現(xiàn)所有城市中帶有“邵”字的城市,如XX,新邵,邵東等等。當(dāng)你點(diǎn)擊相應(yīng)的城市時(shí)這時(shí)系統(tǒng)就會自動退出當(dāng)前頁面而進(jìn)入主頁面,在主頁面將你剛剛選中的城市的天氣信息顯示出來。3.5程序流程圖關(guān)于項(xiàng)目的程序流程圖,將在分別在信息顯示模塊和查詢模塊來進(jìn)行描述。(1)顯示模塊,主要是運(yùn)行這個程序時(shí),通過定位獲取當(dāng)前位置,然后通過網(wǎng)絡(luò)獲取得到當(dāng)前位置的天氣信息,并將結(jié)果信息顯示出來,流程圖如圖3-5.1所示:9XX學(xué)院畢業(yè)設(shè)計(jì)(論文)圖3-5.1
24、顯示模塊流程圖(2)查詢模塊,主要是得到要查詢的城市名,然后進(jìn)行查詢,將得到的信息交給顯示模塊來顯示,流程圖如圖3-6.1所示:10XX學(xué)院畢業(yè)設(shè)計(jì)(論文)圖3-6.1查詢模塊流程圖11XX學(xué)院畢業(yè)設(shè)計(jì)(論文)第4章項(xiàng)目實(shí)現(xiàn)在項(xiàng)目實(shí)現(xiàn)方面,將以程序運(yùn)行、界面顯示、天氣查詢、定位、一個后臺運(yùn)行的Service以及下拉刷新等方面來進(jìn)行設(shè)計(jì)的。4.1啟動畫面在這個項(xiàng)目中,首先在MainActivity.java文件中創(chuàng)建一個類,然后在該類的onCreate方法中設(shè)置布局變量,并需要在清單文件進(jìn)行注冊,聲明該布局文件是程序啟動時(shí)顯示的界面。圖4-1.1頁面實(shí)現(xiàn)一12XX學(xué)院畢業(yè)設(shè)計(jì)(論文)圖4-1.2
25、頁面實(shí)現(xiàn)二圖4-1.3頁面實(shí)現(xiàn)三13XX學(xué)院畢業(yè)設(shè)計(jì)(論文)圖4-1.4頁面實(shí)現(xiàn)四WeatherInfo代表天氣狀況的一個類,含有與天氣相關(guān)的各種信息,如表1:表1:WeatherInfo成員變量的含義類型變量名保存的信息Stringcity城市名Stringweather天氣狀況Stringtem溫度Stringwind風(fēng)向和強(qiáng)度Stringdate日期Stringmesg各項(xiàng)指數(shù),如穿衣指數(shù)Stringnowinfo天氣實(shí)況4.2信息界面之城市界面當(dāng)點(diǎn)擊添加城市按鈕時(shí),就會跳轉(zhuǎn)到顯示全國各個城市的界面,都是按首字母排14XX學(xué)院畢業(yè)設(shè)計(jì)(論文)序的根據(jù)26個英文字母一一排序下來,當(dāng)然用戶也
26、可以選擇在最上方搜索欄中輸入自己想要獲取的城市天氣信息。名詞解釋之適配器:顧名思義就是把一些相對繁瑣數(shù)據(jù)通過一定的方法,然后在顯示到頁面上去??梢岳斫鉃槭墙缑鏀?shù)據(jù)綁定的一種,它所利用的數(shù)據(jù)一般都是相對復(fù)雜的數(shù)據(jù),如數(shù)組,鏈表,數(shù)據(jù)庫,集合等等。簡言之適配器就相當(dāng)于顯示器,把復(fù)雜的東西按照人們可以接受理解的方式來實(shí)現(xiàn)。數(shù)據(jù)庫設(shè)計(jì):針對全國各大城市,設(shè)計(jì)了一個城市數(shù)據(jù)庫,名為city.db。設(shè)置其編號為主鍵自增長,然后還有幾個字段名如province(省份),city(城市名),number(城市代碼),apply(中文拼音),allfirstpy(城市名首位字母拼音),firstpy(城市名首字
27、母拼音)如圖4-2.1。圖4-2.1數(shù)據(jù)庫想要獲取到某個城市的天氣信息,首先就必須要選中城市,具體如下圖4-2.2和圖4-2.3;15XX學(xué)院畢業(yè)設(shè)計(jì)(論文)圖4-2.2流程1圖4-2.3流程216XX學(xué)院畢業(yè)設(shè)計(jì)(論文)4.3天氣查詢在這頁面中設(shè)置了查詢功能,檢測網(wǎng)絡(luò)連接狀態(tài),定位用戶所在的當(dāng)前城市,其中網(wǎng)絡(luò)檢測和定位功能在顯示功能中已介紹。將解釋分析查詢功能。首先定義一個editText控件和button控件,分別是用來獲得用戶輸入的城市和點(diǎn)擊要知道的信息,具體代碼如下圖4-3.1。圖4-3.1天氣查詢此外,還在這個界面顯示了關(guān)于本人的一些信息,用的是一個TextView控件,然后對空間進(jìn)
28、行設(shè)置內(nèi)容。4.4下拉刷新在下拉刷新中,其實(shí)主要的還是調(diào)用系統(tǒng)函數(shù)。在主界面即ListView中刷新。其中,要獲取三個值,第一個是當(dāng)下拉到某個臨界值值后能夠執(zhí)行刷新命令,第二個值是下拉的最大值,第三個值是用戶下拉的值。因?yàn)榭紤]到天氣信息的準(zhǔn)確性,真實(shí)性,用戶可以隨時(shí)通過下拉刷新來獲取最新的天氣信息。具體代碼如圖4-4.117XX學(xué)院畢業(yè)設(shè)計(jì)(論文)圖4-4.1下拉刷新4.5窗口小部件widget用戶可以通過長按手機(jī)菜單鍵,或者在系統(tǒng)設(shè)置里面進(jìn)行選擇是否開啟窗口小部件。Widget主要是運(yùn)用了AppWidget框架結(jié)構(gòu)來進(jìn)行了相關(guān)軟件部件的桌面擺放布局操作,這樣有利于用戶對于相關(guān)的桌面信息以及桌
29、面布局部件的掌握和了解。比如一些還沒有結(jié)束的相關(guān)的日歷以及音樂器件的信息掌握等等。程序部件要進(jìn)行相關(guān)的桌面圖標(biāo)的定義以及布局,首先第一步就要在軟件代碼程序項(xiàng)目中的res/xml項(xiàng)目下目錄中間創(chuàng)建一個XML文件來進(jìn)行相關(guān)桌面部件圖標(biāo)以及布局的應(yīng)用描述,這些部件中的應(yīng)用軟件信息主要包含的信息由軟件的的程序大小,軟件聯(lián)網(wǎng)以后更新軟件的時(shí)間周期時(shí)間長短,或者是相關(guān)部件布局文件。對于一些桌面的相關(guān)部件大小都是利用單元小格進(jìn)行劃分和進(jìn)行描述,最后再把相關(guān)地桌面標(biāo)記部件投放在桌面圖標(biāo)上面,這時(shí)占用的大小是最為適應(yīng)桌面單元大小格式的。AppWidget框架結(jié)構(gòu)是利用Intent廣播致接收的方式來進(jìn)行相關(guān)桌面布
30、局文件的圖標(biāo)的標(biāo)識控制布局,這樣就會讓所有的桌面布局文件中的部件中的XML文件都8會得到一個信息廣播致接收裝置。這樣做的主要目的是為了應(yīng)對于每一個桌面部件在進(jìn)行運(yùn)行時(shí)不同的應(yīng)用狀態(tài)響應(yīng)的接收響應(yīng)操作,AppWidget框架結(jié)構(gòu)是針對于BroadcastReceiver的繼承操作,并且繼承的是其中的AppWidgetProvider類文件。所以我們只需要在相關(guān)的軟件代碼中寫一個AppWidgetProvider的子類就能夠?qū)崿F(xiàn),最后利用不同的實(shí)現(xiàn)狀態(tài)功能得到響應(yīng)的回調(diào)響應(yīng)操作從而控制AppWidget框架結(jié)構(gòu)控制。AppWidgetProvider類擴(kuò)展BroadcastReceiver為一個簡
31、便類來18XX學(xué)院畢業(yè)設(shè)計(jì)(論文)處理AppWidget廣播。AppWidgetProvider只接收與AppWidget這個有關(guān)聯(lián)的事件廣播,比如這個AppWidget被更新,刪除,啟用,以及禁用8。每當(dāng)廣播事件發(fā)生時(shí),AppWidgetProvider就會接收到下面的方法調(diào)用:onUpdate(Context,AppWidgetManager,int)這個方法是用來周期性更新AppWidget,周期時(shí)間用AppWidgetProviderInfo里的updatePeriodMillis屬性定義。此函數(shù)也會在用戶添加AppWidget時(shí)被調(diào)用,因此它一般用來執(zhí)行一些基礎(chǔ)的設(shè)置,比如為視圖定義
32、事件處理器并啟動一個臨時(shí)的服務(wù)Service,前提是需要用到它。但如果你事先定義了一個配置的話,這個方法在用戶添加AppWidget時(shí)就不會再被調(diào)用了,而只在后續(xù)更新時(shí)被調(diào)用10。19XX學(xué)院畢業(yè)設(shè)計(jì)(論文)第5章項(xiàng)目調(diào)試與功能測試5.1項(xiàng)目調(diào)試分析在這個項(xiàng)目中,我遇到了許多困難,比如新建了一個Activity,同時(shí)創(chuàng)建了與之相對應(yīng)的布局文件,但是沒有在清單文件中AndroidManifest.xml進(jìn)行注冊,致使在程序運(yùn)行到那個Activity時(shí)就會出現(xiàn)crash(閃退)。在從WebService中獲取天氣信息時(shí)要進(jìn)行幾部操作,最終才能成功獲取。還有一個是我在項(xiàng)目快結(jié)束時(shí)發(fā)現(xiàn)的,當(dāng)用戶進(jìn)入信
33、息主界面時(shí),程序會獲取用戶當(dāng)前的位置,出現(xiàn)了一個情況,就是獲取手機(jī)網(wǎng)絡(luò)狀態(tài)時(shí),沒有對出現(xiàn)的所有的狀況進(jìn)行分析判斷,導(dǎo)致在程序運(yùn)行后,不能顯示用戶當(dāng)前所在城市的天氣信息。調(diào)試信息如圖5-1.1:在獲取位置時(shí),導(dǎo)致阻塞在getLocation函數(shù)里面圖5-1.1調(diào)試信息一之后我在代碼中,就添加了對狀態(tài)的判斷。這樣針對有時(shí)是DISCONNECT有時(shí)是UNKNOW的狀態(tài)就會解決了。調(diào)試信息如圖5-1.2:20XX學(xué)院畢業(yè)設(shè)計(jì)(論文)圖5-1.2調(diào)試分析在onCreate()函數(shù)中,執(zhí)行綁定服務(wù),然后就直接利用返回的實(shí)例接口,結(jié)果這個接口實(shí)例并沒有獲取到,因?yàn)閎indService是在Activity啟
34、動接口之后才會讓系統(tǒng)調(diào)用它的一個連接服務(wù)的函數(shù)。后來,就采取了多線程的方法,在主線程中創(chuàng)建了一個子線程,并且讓這個子線程在完成綁定前休息一定時(shí)間,最終就完美的解決了。5.2功能測試(1)當(dāng)安裝好軟件后,進(jìn)入主頁面便會自動獲取所在城市(所在地為XXXX),并查詢天氣信息將之顯示出來如圖5-2.1。21XX學(xué)院畢業(yè)設(shè)計(jì)(論文)圖5-2.1啟動頁面(2)刷新好數(shù)據(jù)后所有天氣信息都會界面上顯示出來,具體如圖5-2.2。因?yàn)榭梢垣@取到未來五天的天氣信息,考慮的頁面的整潔性只能顯示三天的所以剩下兩天的信息只能到第二頁去。用戶可以向右滑動時(shí)會進(jìn)入Page的界面,如圖5-2.3。用戶可以向上滑動頁面來看下來查
35、看當(dāng)天天氣的各種指數(shù),方便出門,旅行等具體如圖5-2.4。22XX學(xué)院畢業(yè)設(shè)計(jì)(論文)圖5-2.2MainPage界面一圖5-2.3MainPage界面二23XX學(xué)院畢業(yè)設(shè)計(jì)(論文)圖5-2.4MainPage之界面三(2)當(dāng)用戶在信息主界面點(diǎn)擊菜單按鈕時(shí),將進(jìn)入軟件的基本介紹,和添加城市(如圖5-2.5)。當(dāng)點(diǎn)擊主頁面的分享按鈕就會彈出如圖5-2.6的分享頁面,可以通過QQ、微信等渠道分享給好友。圖5-2.5基本介紹24XX學(xué)院畢業(yè)設(shè)計(jì)(論文)圖5-2.6分享頁面(4)點(diǎn)擊菜單鍵后會看到如圖5-2.7所示,會出現(xiàn)一個基本介紹,以及一個添加城市的按鈕,當(dāng)添加后就會在下面出現(xiàn)一個最近查看的城市,
36、當(dāng)長按時(shí)就可以進(jìn)行刪除,如圖5-2.8顯示。圖5-2.7點(diǎn)擊菜單鍵25XX學(xué)院畢業(yè)設(shè)計(jì)(論文)圖5-2.8刪除城市(5)當(dāng)點(diǎn)擊該添加按鈕時(shí)就會進(jìn)入一個全國所有城市的顯示頁面為一個ListView頁面,可以通過上下滑動來選擇。如圖5-2.9所示,所有城市是按首字母排序的整理到一起,用戶可以輕松的找到自己想要查詢的天氣信息。進(jìn)入城市選擇頁面后頂部有個搜索欄,可以直接輸入你想要知道的城市的天氣信息,也可以通過左側(cè)欄字母排序選擇你想要知道的城市天氣信息。搜索框支持模糊查詢,默認(rèn)的是顯示“搜索全國城市(中文/拼音)”。比如當(dāng)你輸入一個“邵”字,在搜索框下面便會出現(xiàn)所有城市中帶有“邵”字的城市,如XX,新
37、邵,邵東等等(如圖5-2.10)??梢灾苯狱c(diǎn)擊該城市就會自動跳轉(zhuǎn)到主頁面顯示該城市的天氣信息,頁面可能有點(diǎn)延時(shí)畢竟需要從網(wǎng)上獲取數(shù)據(jù)根據(jù)網(wǎng)絡(luò)的實(shí)際情況而決定的延時(shí)時(shí)間。26XX學(xué)院畢業(yè)設(shè)計(jì)(論文)圖5-2.9上下選擇城市圖5-2.10搜索提示27XX學(xué)院畢業(yè)設(shè)計(jì)(論文)總結(jié)在本次畢業(yè)設(shè)計(jì)中,我主要運(yùn)用AndroidStudio軟件以及SQLite數(shù)據(jù)庫來完成的。這次畢業(yè)設(shè)計(jì)讓我更加熟悉了從理論到實(shí)踐的跨越。從當(dāng)初的查閱圖書,到現(xiàn)在的軟件的成功運(yùn)行,這中間有很多值得回味的地方。主要是運(yùn)用java語言進(jìn)行代碼的編寫,以及安卓編程的一些知識。通過本次設(shè)計(jì)我收獲了許多,在查閱資料的同時(shí)學(xué)到了要如何汲取精華。本來是想從中國天氣網(wǎng)來獲取天氣信息,但是經(jīng)過查閱資料后發(fā)現(xiàn)中國天氣網(wǎng)已經(jīng)不提供免費(fèi)的api服務(wù),所以我就在網(wǎng)上詢問前輩得知和風(fēng)天氣網(wǎng)可以免費(fèi)提供天氣api接口,但是每天只能提供使用3000次,不過也足夠用了。本次設(shè)計(jì)主要的難點(diǎn)就是如何解析天氣信息,并且將解析的數(shù)據(jù)轉(zhuǎn)換成我們想得到的信息。因?yàn)閖son
溫馨提示
- 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)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2024年規(guī)范化有限責(zé)任公司股份買賣協(xié)議樣本版B版
- 二零二五年度健康醫(yī)療服務(wù)合作框架協(xié)議2篇
- 2025年度工業(yè)自動化設(shè)備專用蓄電池銷售合同2篇
- 2024年股權(quán)讓渡與財(cái)務(wù)擔(dān)保協(xié)議
- 2025版高炮陣地施工綜合保障與后勤服務(wù)合同3篇
- 2025年度城市綠化工程安全生產(chǎn)與環(huán)保維護(hù)責(zé)任協(xié)議2篇
- 2024年車輛質(zhì)押借款合同標(biāo)準(zhǔn)版3篇
- 2025年度水產(chǎn)品電商平臺品牌推廣合同3篇
- 2024版企業(yè)內(nèi)部審計(jì)與風(fēng)險(xiǎn)控制協(xié)議3篇
- 2025版賈含家庭財(cái)產(chǎn)分割與子女撫養(yǎng)權(quán)協(xié)議書3篇
- 2024年社會工作者《社會工作實(shí)務(wù)(中級)》考試真題必考題
- FZ∕T 74001-2020 紡織品 針織運(yùn)動護(hù)具
- MOOC 作物育種學(xué)-四川農(nóng)業(yè)大學(xué) 中國大學(xué)慕課答案
- 汽車租賃服務(wù)投標(biāo)方案(技術(shù)方案2)
- 2024年中考語文名著閱讀《儒林外史》內(nèi)容簡介、主要人物形象及相關(guān)練習(xí)
- 流浪乞討人員救助工作總結(jié)
- 云南省昆明市盤龍區(qū)2023-2024學(xué)年高二上學(xué)期期末質(zhì)量檢測數(shù)學(xué)試題【含答案解析】
- 腎上腺皮質(zhì)功能減退通用課件
- 《安徒生童話》試題及答案
- 《社會工作概論》課件
- 化工生產(chǎn)操作工培訓(xùn)手冊
評論
0/150
提交評論