版權(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é) 生 姓 名 學(xué) 號(hào) 系、年級(jí)專業(yè) 指 導(dǎo) 教 師 職 稱 2016年 5 月 20 日目錄 摘要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 啟動(dòng)畫面124.2信息界面之城市界面144.3天氣查詢174.4下拉
2、刷新174.5窗口小部件widget18第5章 項(xiàng)目調(diào)試與功能測試205.1項(xiàng)目調(diào)試分析205.2功能測試21總結(jié)28參考文獻(xiàn)29附錄30致謝31摘要進(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ā)
3、標(biāo)準(zhǔn),JAVA語言中封裝了需要代碼類,為更多的有興趣的開發(fā)者提供了方便與效率,并且本次開發(fā)的天氣預(yù)報(bào)操作簡單,十分適合大眾的使用習(xí)慣,這樣這一開發(fā)就會(huì)得到很大的推廣。關(guān)鍵詞:智能手機(jī);安卓;操作系統(tǒng);天氣ABSTRACTIn the 21st century information age, mobile phones have become the current people's lives, an important part of the work, China's domestic mobile phone has been popular in many parts
4、, a support material obtained in economic life outside, people enjoy the spirit is very important , while the phone is currently become the most effective medium of communication, effectively shortening the region exchange restrictions, requirements to meet the people entertainment, people use mobil
5、e phones to get real-time weather information from the phone, so the current weather forecast is good development prospects . The weather forecast is based on the development and design of the development and application Andrews, runs Android system, the development of this standard reference comfor
6、t prevailing weather forecast for the development of standards, JAVA language class encapsulates the code required for the development of more interest to provide a convenient and efficient, and simple weather forecast for the development of this operation, very suitable for public use habits, so th
7、is development will be greatly promoted.KEYWORDS:Android ;operating system;smartphone;weather第1章 緒論1.1安卓操作系統(tǒng)的發(fā)展Android系統(tǒng)由Andy Rubin團(tuán)隊(duì)開發(fā)制作,開發(fā)Android的最初目的是用于數(shù)碼相機(jī)的系統(tǒng),之后因?yàn)閿?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ā)展行動(dòng),主要研究方向?yàn)槭謾C(jī)系統(tǒng),也就是安卓系統(tǒng)的開發(fā)和應(yīng)用。并且最后還把安卓
8、開發(fā)的源碼進(jìn)行了相關(guān)公布,例如平板電腦等,而在Android系統(tǒng)正式推出僅僅才兩年,在2012年底,通過數(shù)據(jù)統(tǒng)計(jì),Android操作系統(tǒng)的在市場占有比率超過了稱霸十余年的諾基亞的Symbian系統(tǒng),成為當(dāng)時(shí)世界范圍以內(nèi)的智能手機(jī)操作系統(tǒng)長期第一名,并且憑借其開源性的迅速壟斷了智能手機(jī)低端市場,并且影響其他的低端手機(jī)公司,最典型的例子為隨著Android市場占有率不斷升高,直接導(dǎo)致諾基亞原有的低端手機(jī)市場占有率直線下降,而在2013年1月,諾基亞放棄低端市場,也就是諾基亞放棄了原有Symbian系統(tǒng)低端市場,專注于高端智能手機(jī)市場,直到現(xiàn)在Android已經(jīng)基本上壟斷了低端手機(jī)市場,成為了當(dāng)前智
9、能手機(jī)霸主,這是促進(jìn)JAVA編程得到了廣大的發(fā)展空間。1.2安卓操作系統(tǒng)的簡介Android系統(tǒng)是基于開源linux系統(tǒng)為基礎(chǔ)的開源移動(dòng)設(shè)備操作系統(tǒng),搭載對象主要為智能手機(jī)和平板電腦,當(dāng)前已經(jīng)發(fā)展到的的最新版本為Android 5.0(Lollipop)1。Android系統(tǒng)平臺(tái)由于其開發(fā)性優(yōu)勢,使得任何的移動(dòng)終端都能夠加入到Android聯(lián)盟大軍中,這也是的Android系統(tǒng)發(fā)展如此迅猛的根本原因,顯著的開發(fā)性使得擁有廣闊的開發(fā)者,隨著用戶的不斷增多以及應(yīng)用不斷豐富,這標(biāo)志Android系統(tǒng)趨向于成熟。廣闊的軟件資源使得Android系統(tǒng)的競爭力不斷增加,而消費(fèi)者能夠以更低的價(jià)格購買到智能手
10、機(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á)電和T-Moblie中國移動(dòng)等很多家著名企業(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的
11、封閉性導(dǎo)致iPhone只能在智能手機(jī)的高端市場占據(jù)一席之地,而不能向Android一樣擁有巨大的用戶人群,同時(shí)這也證明了Android的火熱程度。1.3 項(xiàng)目開發(fā)意義 我國的社會(huì)國民經(jīng)濟(jì)是一步一步不斷地飛速發(fā)展,我國人民的生活質(zhì)量水平不斷提高,人們的生活觀念也在發(fā)生變化3,大多數(shù)小康家庭的生活目標(biāo)不再是追求物質(zhì)生活的滿足,更多是追求精神生活的充實(shí),對于天氣的獲取也不再局限于天氣口訣或者自然現(xiàn)象了,根據(jù)了解眾多的青少年對于天氣的獲取是從手機(jī)上進(jìn)行查看的,就目前而言,對于天氣情況的獲取手機(jī)已經(jīng)成為目前最為流行也是最為方便的方式之一。從這里就可以看出,目前流行的天氣預(yù)報(bào)的方式之一就是手機(jī)天氣信息的獲
12、取。第2章 項(xiàng)目需求分析2.1 功能分析(1)要有良好效果的界面在進(jìn)行安卓的相關(guān)開發(fā)操作開發(fā)研究中,其中用戶體驗(yàn)最多的就是界面,而在開發(fā)中界面我們稱之為UI,設(shè)計(jì)優(yōu)美方便的界面將極大地提升用戶對軟件的體驗(yàn)度,從而獲得用戶的喜愛。設(shè)計(jì)一個(gè)讓用戶感覺體驗(yàn)好的界面是設(shè)計(jì)中較為重要的一個(gè)環(huán)節(jié)4。(2)天氣信息查詢功能設(shè)計(jì)天氣預(yù)報(bào)程序中最為重要的就是天氣信息的實(shí)時(shí)更新操作,只有這樣才能夠確保天氣是實(shí)時(shí)變動(dòng),并且天氣是最為準(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í),我們
13、還可以增加一些新的功能,比如可以增加網(wǎng)絡(luò)實(shí)時(shí)定位功能,從而豐富軟件的實(shí)用性能。還可以增加多次城市的查詢,這樣就可以不僅僅只能局限于一個(gè)城市的天氣。(4)操作簡單每一個(gè)設(shè)計(jì)的軟件,如果操作的過程很復(fù)雜,那么在實(shí)際的市場中,是不會(huì)被廣大的使用者所接受的,這也是為什么一再強(qiáng)調(diào)軟件的使用要很簡單,只有簡單才能夠讓用戶喜歡。2.2 性能分析(1)優(yōu)化Java代碼 安卓的java來發(fā)都是用來進(jìn)軟件程序的開發(fā)操作的,所以我們可以知道選擇一個(gè)好的算法將大大提升軟件的實(shí)際應(yīng)用和運(yùn)行效率。采用一個(gè)快捷有效的方法才是開發(fā)程序最為重要的。不斷地優(yōu)化內(nèi)存代碼,并且清除相關(guān)的緩存才能夠提升代碼運(yùn)行效率。(2)提高性能代碼
14、要軟件中要占用盡可能少的內(nèi)存,只有這樣才能夠讓代碼在運(yùn)行時(shí)有著良好的效率和速度。并且讓還要對CPU進(jìn)行相關(guān)的代碼優(yōu)化操作,合理的分配內(nèi)存空間,只有這樣才能代碼運(yùn)行進(jìn)行相關(guān)訪問時(shí)性能大大地提升,并且不會(huì)產(chǎn)生一些錯(cuò)誤。(3)利用多線程 安卓軟件開發(fā)設(shè)計(jì)是使用java語言,所以一般都是利用多線程來進(jìn)行代碼編程,多線程編程的主要好處就是可以對用戶的任何操作做到實(shí)時(shí)反饋和相應(yīng)的響應(yīng),這樣也能夠極大的緩解內(nèi)存的壓力,并且減少CPU的占用。從而讓用戶獲得不一樣的體驗(yàn)。(4)降低功耗我們在進(jìn)行程序的設(shè)計(jì)開發(fā)時(shí),要注意功能損耗的問題,如果一個(gè)程序在運(yùn)行時(shí)占用大量的電量,這是非常不明智的。占用大量的電量的原因是因
15、為運(yùn)行相關(guān)一些完全沒必要的代碼。所以這一程序肯定是不合格并且沒有市場前景的去掉代碼中一些不必要的代碼,這樣程序在進(jìn)行運(yùn)行時(shí)才能夠有效率,避免一些冗長的代碼拖慢或者消耗過多的電量。2.3 安全分析(1)安卓的安全設(shè)計(jì)原則安卓應(yīng)用實(shí)際平臺(tái)中相關(guān)的程序是沒有權(quán)限操作的,所以不能夠私自進(jìn)行一些操作進(jìn)行程序的破壞和相關(guān)重建,這是目前安卓開發(fā)的最特殊的地方之一。不允許私自對用戶的相關(guān)信息進(jìn)行讀取和修改,不允許用戶信息文件進(jìn)行讀寫操作。最后要注意的一點(diǎn)就是,對于一些正在運(yùn)行得到程序不能夠進(jìn)行干擾操作,安卓中的每一個(gè)運(yùn)行程序不能夠?qū)σ恍﹦e的程序進(jìn)行有干擾操作,并且有些權(quán)限要有提前申明。(在安裝時(shí)程序會(huì)提醒是否
16、授予軟件權(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)操作,否則就會(huì)導(dǎo)致整個(gè)系統(tǒng)被私自亂改。2.4 研究內(nèi)容和開發(fā)環(huán)境需求(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)行需要下載模擬器),或者是可以直
17、接將你的Android手機(jī)連接至電腦,將Android作為軟件開發(fā)環(huán)境,上述的兩種開發(fā)方式為此次開發(fā)的主要環(huán)境,尤其是天氣預(yù)報(bào)系統(tǒng)主要是運(yùn)行Android手機(jī)上,但是同時(shí)支持模擬器。搭建Android開發(fā)環(huán)境,下載并安裝AndroidStudio,下載并安裝android SDK;并配置好對應(yīng)的ADT插件、劃分適當(dāng)?shù)倪\(yùn)行內(nèi)存和存儲(chǔ)空間來安置Android模擬器6。 (2)盡可能多的研究android平臺(tái)應(yīng)用程序開發(fā)的技術(shù)理論,掌握Android框架下開發(fā)應(yīng)用程序的相關(guān)技術(shù)與流程。(3)本次程序開發(fā)基礎(chǔ)是Java語言,再通過這個(gè)應(yīng)用程序來熟悉多線程編程。(4)如何從遠(yuǎn)端服務(wù)器上獲取信息。第3章
18、項(xiàng)目設(shè)計(jì)分析3.1 程序功能模塊圖依據(jù)功能的需求分析,在這個(gè)項(xiàng)目中一共設(shè)計(jì)了以下功能(如圖3-1.1所示。):(1)顯示天氣信息,除了顯示當(dāng)天的天氣信息外還會(huì)顯示未來五天的天氣狀況,還有就是目標(biāo)城市的各種指數(shù)情(2)查詢某個(gè)城市天氣信息,作為一個(gè)手機(jī)天氣預(yù)報(bào)的軟件,最基本的就是查詢天氣信息了,因此在這個(gè)設(shè)計(jì)中設(shè)計(jì)了可以按照城市名來查詢天氣信息。 (3)定位功能,這個(gè)功能的主要是當(dāng)用戶打開這個(gè)軟件時(shí),就會(huì)自動(dòng)顯示用戶所在城市的天氣信息,方便用戶體驗(yàn)。除了這些以外,還有一些非常實(shí)用的功能,例如檢查手機(jī)網(wǎng)絡(luò)狀態(tài)是否良好等。圖3-1.1 功能模塊3.2顯示信息設(shè)計(jì)這個(gè)設(shè)計(jì)中主要有以下幾種信息:(1)當(dāng)
19、天日期和當(dāng)天的天氣狀況,還有未來五天的氣候。(2)天氣信息,這里面有溫度、風(fēng)力、濕度等等。(3)各種指數(shù),好比運(yùn)動(dòng)指數(shù)、穿衣指數(shù)、感冒指數(shù)等等。(4)更新天氣的時(shí)間。3.3 解析數(shù)據(jù)因?yàn)檫@個(gè)設(shè)計(jì)里面所用的信息,如定位功能是從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ì)這個(gè)項(xiàng)目里面主要就設(shè)計(jì)了幾
20、個(gè)界面,最重要的有:程序啟動(dòng)時(shí)所呈現(xiàn)的畫面,然后就是啟動(dòng)完成后時(shí)顯示的界面,即顯示信息的主界面,其次是用于顯示明添加城市的界面(即查詢城市),用戶可以在這個(gè)界面上輸入要查詢的城市,然后在信息界面獲取天氣信息。在規(guī)劃界面時(shí),考慮到界面的友好性,靚麗性和實(shí)用性。友好性,是指界面布局簡潔,操作簡單,不會(huì)繁瑣多余。靚麗性,盡可能的將界面設(shè)置地更為漂亮,這樣也會(huì)隨之提高應(yīng)用程序的價(jià)值。另外,還需要考慮的一方面就是盡可能多的在頁面將信息展示出來,即在有限的空間內(nèi)將信息合理地展示出來,便于用戶閱讀信息,這就是實(shí)用性。接下來就一一介紹這個(gè)設(shè)計(jì)里面的主要界面。程序啟動(dòng)界面當(dāng)安裝好程序后軟件會(huì)自動(dòng)提示是否獲取手機(jī)
21、權(quán)限(GPS定位時(shí)需要用到),如圖3-2.1所示,為了安全起見市場上的軟件都會(huì)有這一項(xiàng)提醒,以防止木馬侵入。圖3-2.1 手機(jī)權(quán)限3.4.2信息界面之主界面(MainPage)當(dāng)點(diǎn)擊允許時(shí)軟件將進(jìn)入主頁面,因?yàn)樵诎惭b后已經(jīng)授予軟件權(quán)限獲取定位,所以在聯(lián)網(wǎng)狀態(tài)下它就會(huì)自動(dòng)獲取你所在的位置,獲取到城市名后便會(huì)自動(dòng)從網(wǎng)上獲取天氣信息,并將信息顯示到界面上。當(dāng)進(jìn)入到這個(gè)界面時(shí),有可能會(huì)出現(xiàn)卡的情況,因?yàn)槌绦騿?dòng)后在這個(gè)界面會(huì)進(jìn)行一些基本操作,然后當(dāng)信息獲取成功后就會(huì)顯示設(shè)計(jì)的布局中。在這個(gè)界面中,會(huì)顯示有以下信息:日期:當(dāng)天的日期,格式為:-年-月-日。天氣:當(dāng)天的天氣情況。天氣圖片:天氣情況,顯示與
22、當(dāng)天天氣相符的天氣圖片,如太陽,云朵。氣溫:格式為當(dāng)天的最低溫度/最高溫度,單位是攝氏度。風(fēng)力:風(fēng)向和強(qiáng)度大小。指數(shù):有各項(xiàng)指數(shù),包括穿衣指數(shù),過敏指數(shù)等等。天氣實(shí)況:指查詢時(shí)刻的天氣情況,包含空氣質(zhì)量,以及濕度,天氣,溫度。分享按鈕:有個(gè)一鍵分享的按鈕,可以通過QQ,微信,短信等途徑分享給你的好友。菜單按鈕:用點(diǎn)擊這個(gè)按鈕時(shí),可以進(jìn)入到查詢城市界面?;瑒?dòng)切換:左右滑動(dòng)切換到信息界面二(NextPage)。在滑動(dòng)時(shí)有一定的動(dòng)作效果。3.4.3信息界面之城市界面(CityPage) 當(dāng)用戶點(diǎn)擊主界面的那個(gè)菜單符號(hào)時(shí),你就可以看到所示。有一個(gè)簡單的介紹和添加城市的按鈕,當(dāng)點(diǎn)擊添加城市進(jìn)入選擇你需要
23、獲取城市的天氣信息。這是一個(gè)ListView頁面,用戶可以通過上下滑動(dòng)來選擇城市,這里可以顯示全國的各個(gè)城市,可以具體到縣級(jí)城市。搜索框:在本界面的最上方會(huì)有一個(gè)輸入框,是給用戶查詢城市用的,在這個(gè)框中,默認(rèn)的是顯示“搜索全國城市(中文/拼音)”,并對這個(gè)輸入框進(jìn)行了模糊查詢。比如當(dāng)你輸入一個(gè)“邵”字,在搜索框下面便會(huì)出現(xiàn)所有城市中帶有“邵”字的城市,如邵陽,新邵,邵東等等。當(dāng)你點(diǎn)擊相應(yīng)的城市時(shí)這時(shí)系統(tǒng)就會(huì)自動(dòng)退出當(dāng)前頁面而進(jìn)入主頁面,在主頁面將你剛剛選中的城市的天氣信息顯示出來。3.5 程序流程圖關(guān)于項(xiàng)目的程序流程圖,將在分別在信息顯示模塊和查詢模塊來進(jìn)行描述。(1) 顯示模塊,主要是運(yùn)行這
24、個(gè)程序時(shí),通過定位獲取當(dāng)前位置,然后通過網(wǎng)絡(luò)獲取得到當(dāng)前位置的天氣信息,并將結(jié)果信息顯示出來,流程圖如圖3-5.1所示:圖3-5 .1顯示模塊流程圖(2)查詢模塊,主要是得到要查詢的城市名,然后進(jìn)行查詢,將得到的信息交給顯示模塊來顯示,流程圖如圖3-6.1所示: 圖3-6.1查詢模塊流程圖第4章 項(xiàng)目實(shí)現(xiàn)在項(xiàng)目實(shí)現(xiàn)方面,將以程序運(yùn)行、界面顯示、天氣查詢、定位、一個(gè)后臺(tái)運(yùn)行的Service以及下拉刷新等方面來進(jìn)行設(shè)計(jì)的。4.1 啟動(dòng)畫面在這個(gè)項(xiàng)目中,首先在MainActivity.java文件中創(chuàng)建一個(gè)類,然后在該類的onCreate方法中設(shè)置布局變量,并需要在清單文件進(jìn)行注冊,聲明該布局文件是
25、程序啟動(dòng)時(shí)顯示的界面。圖4-1.1頁面實(shí)現(xiàn)一圖4-1.2頁面實(shí)現(xiàn)二圖4-1.3頁面實(shí)現(xiàn)三圖4-1.4頁面實(shí)現(xiàn)四WeatherInfo代表天氣狀況的一個(gè)類,含有與天氣相關(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í),就會(huì)跳轉(zhuǎn)到顯示全國各個(gè)城市的界面,都是按首字母排序的根據(jù)26個(gè)英文字母一一排序下來,當(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ì)了一個(gè)城市數(shù)據(jù)庫,名為city.db。設(shè)置其編號(hào)為主鍵自增長,然后還有幾個(gè)字段名如province(省份),city(城市名),number(城市代碼),apply(中文拼音),allfirstpy(城市名首位字母拼音),firstpy(城市名首
27、字母拼音)如圖4-2.1。圖4-2.1 數(shù)據(jù)庫想要獲取到某個(gè)城市的天氣信息,首先就必須要選中城市,具體如下圖4-2.2和圖4-2.3;圖4-2.2流程1圖4-2.3流程24.3天氣查詢在這頁面中設(shè)置了查詢功能,檢測網(wǎng)絡(luò)連接狀態(tài),定位用戶所在的當(dāng)前城市,其中網(wǎng)絡(luò)檢測和定位功能在顯示功能中已介紹。將解釋分析查詢功能。首先定義一個(gè)editText控件和button控件,分別是用來獲得用戶輸入的城市和點(diǎn)擊要知道的信息,具體代碼如下圖4-3.1。圖4-3.1天氣查詢此外,還在這個(gè)界面顯示了關(guān)于本人的一些信息,用的是一個(gè)TextView控件,然后對空間進(jìn)行設(shè)置內(nèi)容。4.4下拉刷新在下拉刷新中,其實(shí)主要的還
28、是調(diào)用系統(tǒng)函數(shù)。在主界面即ListView中刷新。其中,要獲取三個(gè)值,第一個(gè)是當(dāng)下拉到某個(gè)臨界值值后能夠執(zhí)行刷新命令,第二個(gè)值是下拉的最大值,第三個(gè)值是用戶下拉的值。因?yàn)榭紤]到天氣信息的準(zhǔn)確性,真實(shí)性,用戶可以隨時(shí)通過下拉刷新來獲取最新的天氣信息。具體代碼如圖4-4.1圖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)的桌面信息以及桌面布局部件的掌握和了解。比如一些還沒有結(jié)束的相關(guān)的日歷以及音樂器件的信息掌握等等
29、。程序部件要進(jìn)行相關(guān)的桌面圖標(biāo)的定義以及布局,首先第一步就要在軟件代碼程序項(xiàng)目中的res/xml項(xiàng)目下目錄中間創(chuàng)建一個(gè)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廣播發(fā)送接收的方式來進(jìn)行相關(guān)桌面布局文件的圖標(biāo)的標(biāo)識(shí)控制布局,這樣就會(huì)讓所有的桌面布局文件中的部件中的XML文件
30、都會(huì)得到一個(gè)信息廣播發(fā)送接收裝置8。這樣做的主要目的是為了應(yīng)對于每一個(gè)桌面部件在進(jìn)行運(yùn)行時(shí)不同的應(yīng)用狀態(tài)響應(yīng)的接收響應(yīng)操作,AppWidget框架結(jié)構(gòu)是針對于BroadcastReceiver的繼承操作,并且繼承的是其中的AppWidgetProvider類文件。所以我們只需要在相關(guān)的軟件代碼中寫一個(gè)AppWidgetProvider的子類就能夠?qū)崿F(xiàn),最后利用不同的實(shí)現(xiàn)狀態(tài)功能得到響應(yīng)的回調(diào)響應(yīng)操作從而控制AppWidget框架結(jié)構(gòu)控制。AppWidgetProvider 類擴(kuò)展BroadcastReceiver 為一個(gè)簡便類來處理App Widget廣播。AppWidgetProvider只
31、接收與App Widget這個(gè)有關(guān)聯(lián)的事件廣播,比如這個(gè)App Widget被更新,刪除,啟用,以及禁用8。每當(dāng)廣播事件發(fā)生時(shí),AppWidgetProvider 就會(huì)接收到下面的方法調(diào)用:onUpdate(Context, AppWidgetManager, int) 這個(gè)方法是用來周期性更新App Widget,周期時(shí)間用AppWidgetProviderInfo 里的updatePeriodMillis屬性定義。此函數(shù)也會(huì)在用戶添加App Widget時(shí)被調(diào)用,因此它一般用來執(zhí)行一些基礎(chǔ)的設(shè)置,比如為視圖定義事件處理器并啟動(dòng)一個(gè)臨時(shí)的服務(wù)Service,前提是需要用到它。但如果你事先定義
32、了一個(gè)配置的話,這個(gè)方法在用戶添加App Widget時(shí)就不會(huì)再被調(diào)用了,而只在后續(xù)更新時(shí)被調(diào)用10。第5章 項(xiàng)目調(diào)試與功能測試5.1項(xiàng)目調(diào)試分析在這個(gè)項(xiàng)目中,我遇到了許多困難,比如新建了一個(gè)Activity,同時(shí)創(chuàng)建了與之相對應(yīng)的布局文件,但是沒有在清單文件中AndroidManifest.xml進(jìn)行注冊,致使在程序運(yùn)行到那個(gè)Activity時(shí)就會(huì)出現(xiàn)crash(閃退)。在從WebService中獲取天氣信息時(shí)要進(jìn)行幾部操作,最終才能成功獲取。還有一個(gè)是我在項(xiàng)目快結(jié)束時(shí)發(fā)現(xiàn)的,當(dāng)用戶進(jìn)入信息主界面時(shí),程序會(huì)獲取用戶當(dāng)前的位置,出現(xiàn)了一個(gè)情況,就是獲取手機(jī)網(wǎng)絡(luò)狀態(tài)時(shí),沒有對出現(xiàn)的所有的狀況進(jìn)行
33、分析判斷,導(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)就會(huì)解決了。調(diào)試信息如圖5-1.2:DISCONNECTED狀態(tài)UNKNOW狀態(tài)圖5-1.2 調(diào)試分析在onCreate()函數(shù)中,執(zhí)行綁定服務(wù),然后就直接利用返回的實(shí)例接口,結(jié)果這個(gè)接口實(shí)例并沒有獲取到,因?yàn)閎indService是在Activity啟動(dòng)接口之后才會(huì)讓系統(tǒng)調(diào)用它的一個(gè)連接服務(wù)的函數(shù)。后來,就采取了多線程的方法,在主線
34、程中創(chuàng)建了一個(gè)子線程,并且讓這個(gè)子線程在完成綁定前休息一定時(shí)間,最終就完美的解決了。5.2功能測試(1)當(dāng)安裝好軟件后,進(jìn)入主頁面便會(huì)自動(dòng)獲取所在城市(所在地為湖南邵陽),并查詢天氣信息將之顯示出來如圖5-2.1。圖5-2.1啟動(dòng)頁面 (2)刷新好數(shù)據(jù)后所有天氣信息都會(huì)界面上顯示出來,具體如圖5-2.2。因?yàn)榭梢垣@取到未來五天的天氣信息,考慮的頁面的整潔性只能顯示三天的所以剩下兩天的信息只能到第二頁去。用戶可以向右滑動(dòng)時(shí)會(huì)進(jìn)入Page的界面,如圖5-2.3。用戶可以向上滑動(dòng)頁面來看下來查看當(dāng)天天氣的各種指數(shù),方便出門,旅行等具體如圖5-2.4。圖5-2.2MainPage界面一圖5-2.3Ma
35、inPage界面二圖5-2.4MainPage之界面三(2)當(dāng)用戶在信息主界面點(diǎn)擊菜單按鈕時(shí),將進(jìn)入軟件的基本介紹,和添加城市(如圖5-2.5)。當(dāng)點(diǎn)擊主頁面的分享按鈕就會(huì)彈出如圖5-2.6的分享頁面,可以通過QQ、微信等渠道分享給好友。圖5-2.5基本介紹圖5-2.6 分享頁面(4)點(diǎn)擊菜單鍵后會(huì)看到如圖5-2.7所示,會(huì)出現(xiàn)一個(gè)基本介紹,以及一個(gè)添加城市的按鈕,當(dāng)添加后就會(huì)在下面出現(xiàn)一個(gè)最近查看的城市,當(dāng)長按時(shí)就可以進(jìn)行刪除,如圖5-2.8顯示。圖5-2.7 點(diǎn)擊菜單鍵圖5-2.8刪除城市(5)當(dāng)點(diǎn)擊該添加按鈕時(shí)就會(huì)進(jìn)入一個(gè)全國所有城市的顯示頁面為一個(gè)ListView頁面,可以通過上下滑動(dòng)
36、來選擇。如圖5-2.9所示,所有城市是按首字母排序的整理到一起,用戶可以輕松的找到自己想要查詢的天氣信息。進(jìn)入城市選擇頁面后頂部有個(gè)搜索欄,可以直接輸入你想要知道的城市的天氣信息,也可以通過左側(cè)欄字母排序選擇你想要知道的城市天氣信息。搜索框支持模糊查詢,默認(rèn)的是顯示“搜索全國城市(中文/拼音)”。比如當(dāng)你輸入一個(gè)“邵”字,在搜索框下面便會(huì)出現(xiàn)所有城市中帶有“邵”字的城市,如邵陽,新邵,邵東等等(如圖5-2.10)??梢灾苯狱c(diǎn)擊該城市就會(huì)自動(dòng)跳轉(zhuǎn)到主頁面顯示該城市的天氣信息,頁面可能有點(diǎn)延時(shí)畢竟需要從網(wǎng)上獲取數(shù)據(jù)根據(jù)網(wǎng)絡(luò)的實(shí)際情況而決定的延時(shí)時(shí)間。圖5-2.9上下選擇城市圖5-2.10 搜索提示
37、總結(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í)。通過本次設(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)閖
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對用戶上傳內(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)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 考研政治輔導(dǎo)馬原
- 安全生產(chǎn)管理理念與案例分析
- 聯(lián)想猜詞游戲
- 車工工人轉(zhuǎn)正申請書15篇
- 2025年輪胎均勻性試驗(yàn)機(jī)項(xiàng)目合作計(jì)劃書
- 江蘇鹽城鹽城八校2025屆高三上學(xué)期開學(xué)考試化學(xué)試卷試題及答案解析
- 很好的高習(xí)參考計(jì)劃范文
- 駕校場地出租合同模板
- 技術(shù)設(shè)備融資租賃協(xié)議書
- 八年級(jí)語文上冊第二單元人物畫像6藤野先生高效教案新人教版
- 2024秋期國家開放大學(xué)本科《經(jīng)濟(jì)學(xué)(本)》一平臺(tái)在線形考(形考任務(wù)1至6)試題及答案
- 動(dòng)靜脈內(nèi)瘺成形術(shù)
- 法律意見書(適用于股權(quán)投資)
- JJF(蘇) 276-2024 接觸(觸針)式表面輪廓測量儀校準(zhǔn)規(guī)范
- 2024-2025學(xué)年五年級(jí)科學(xué)上冊第二單元《地球表面的變化》測試卷(教科版)
- 污泥(廢水)運(yùn)輸服務(wù)方案(技術(shù)方案)
- 2024-2030年中國降壓藥行業(yè)市場規(guī)模分析及發(fā)展趨勢與投資研究報(bào)告
- 二十屆三中全會(huì)精神應(yīng)知應(yīng)會(huì)知識(shí)測試30題(附答案)
- 一例下肢靜脈血栓疑難病例護(hù)理討論
- 2024年信息系統(tǒng)項(xiàng)目管理師題庫及答案
- 輸血相關(guān)法律法規(guī)臨床輸血安全管理課件
評(píng)論
0/150
提交評(píng)論