




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
1、邵陽學(xué)院畢業(yè)設(shè)計(論文)畢業(yè)設(shè)計(論文)課 題 名 稱 基于安卓操作系統(tǒng)的手機(jī)天氣預(yù)報設(shè)計學(xué) 生 姓 名 學(xué) 號 系、年級專業(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è)計分析63.1 程序功能模塊圖63.2顯示信息設(shè)計63.3 解析數(shù)據(jù)73.4界面設(shè)計73.5 程序流程圖9第4章 項(xiàng)目實(shí)現(xiàn)124.1 啟動畫面124.2信息界面之城市界面144.
2、3天氣查詢174.4下拉刷新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ì)信息化時代,手機(jī)已經(jīng)成為了當(dāng)前人們生活、工作的重要組成部分,我國國內(nèi)的手機(jī)已經(jīng)普及眾多地區(qū),在得到了物質(zhì)經(jīng)濟(jì)生活的保障之外,人們對于精神的享受也是十分重視的,而手機(jī)則是成為了的當(dāng)前最為有效的交流媒介,有效縮短了地區(qū)交流限制,滿足人們娛樂的要求,人們使用手機(jī)可以從手機(jī)上獲取實(shí)時天氣信息,所以當(dāng)前天氣預(yù)報開發(fā)是具有良好前景的。 本次設(shè)計的天氣預(yù)報開發(fā)是基于安卓的開發(fā)應(yīng)用,運(yùn)行系統(tǒng)為Android系統(tǒng),此開發(fā)標(biāo)準(zhǔn)參考
3、慰目前流行的天氣預(yù)報開發(fā)標(biāo)準(zhǔn),JAVA語言中封裝了需要代碼類,為更多的有興趣的開發(fā)者提供了方便與效率,并且本次開發(fā)的天氣預(yù)報操作簡單,十分適合大眾的使用習(xí)慣,這樣這一開發(fā)就會得到很大的推廣。關(guān)鍵詞:智能手機(jī);安卓;操作系統(tǒng);天氣IIABSTRACTIn 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
4、 in many parts, 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, pe
5、ople use mobile 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 re
6、ference comfort 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
7、 habits, so this development will be greatly promoted.KEYWORDS:Android ;operating system;smartphone;weatherII第1章 緒論1.1安卓操作系統(tǒng)的發(fā)展Android系統(tǒng)由Andy Rubin團(tuán)隊開發(fā)制作,開發(fā)Android的最初目的是用于數(shù)碼相機(jī)的系統(tǒng),之后因?yàn)閿?shù)碼相機(jī)的市場不斷地進(jìn)行擴(kuò)大,并且也因?yàn)樾乱淮悄苁謾C(jī)的飛速發(fā)展,導(dǎo)致了這一系統(tǒng)的快速崛起,并且在以后的時間中被逐漸的只針對于手機(jī)系統(tǒng)這一塊操作系統(tǒng)。本世紀(jì),谷歌和很多廠商進(jìn)行了聯(lián)合開發(fā)和發(fā)展行動,主要研究方向?yàn)槭謾C(jī)系統(tǒng),也就是安卓系
8、統(tǒng)的開發(fā)和應(yīng)用。并且最后還把安卓開發(fā)的源碼進(jìn)行了相關(guān)公布,例如平板電腦等,而在Android系統(tǒng)正式推出僅僅才兩年,在2012年底,通過數(shù)據(jù)統(tǒng)計,Android操作系統(tǒng)的在市場占有比率超過了稱霸十余年的諾基亞的Symbian系統(tǒng),成為當(dāng)時世界范圍以內(nèi)的智能手機(jī)操作系統(tǒng)長期第一名,并且憑借其開源性的迅速壟斷了智能手機(jī)低端市場,并且影響其他的低端手機(jī)公司,最典型的例子為隨著Android市場占有率不斷升高,直接導(dǎo)致諾基亞原有的低端手機(jī)市場占有率直線下降,而在2013年1月,諾基亞放棄低端市場,也就是諾基亞放棄了原有Symbian系統(tǒng)低端市場,專注于高端智能手機(jī)市場,直到現(xiàn)在Android已經(jīng)基本上
9、壟斷了低端手機(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ā)展到的的最新版本為Android 5.0(Lollipop)1。Android系統(tǒng)平臺由于其開發(fā)性優(yōu)勢,使得任何的移動終端都能夠加入到Android聯(lián)盟大軍中,這也是的Android系統(tǒng)發(fā)展如此迅猛的根本原因,顯著的開發(fā)性使得擁有廣闊的開發(fā)者,隨著用戶的不斷增多以及應(yīng)用不斷豐富,這標(biāo)志Android系統(tǒng)趨向于成熟。廣闊的軟件資源使得Android系統(tǒng)的競爭力不斷增加,而消
10、費(fèi)者能夠以更低的價格購買到智能手機(jī),這也是Android迅速成為低端手機(jī)的霸主的根本原因。08年美國紐約發(fā)布了第一款安卓智能手機(jī),發(fā)布的手機(jī)WCDMA/HSPA網(wǎng)絡(luò),根據(jù)報道得知理論下載速率為7.2Mbit/s2,并且能夠連接Wi-Fi無限局域網(wǎng)絡(luò),在后面的時間中谷歌和開放手機(jī)聯(lián)盟致力于安卓手機(jī)的開發(fā)和應(yīng)用,最后安卓手機(jī)的開發(fā)和應(yīng)用廠商已經(jīng)有摩托羅拉、高通、宏達(dá)電和T-Moblie中國移動等很多家著名企業(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ā)展
11、歷史截然不同,由于iPhone的封閉性導(dǎo)致iPhone只能在智能手機(jī)的高端市場占據(jù)一席之地,而不能向Android一樣擁有巨大的用戶人群,同時這也證明了Android的火熱程度。1.3 項(xiàng)目開發(fā)意義 我國的社會國民經(jīng)濟(jì)是一步一步不斷地飛速發(fā)展,我國人民的生活質(zhì)量水平不斷提高,人們的生活觀念也在發(fā)生變化3,大多數(shù)小康家庭的生活目標(biāo)不再是追求物質(zhì)生活的滿足,更多是追求精神生活的充實(shí),對于天氣的獲取也不再局限于天氣口訣或者自然現(xiàn)象了,根據(jù)了解眾多的青少年對于天氣的獲取是從手機(jī)上進(jìn)行查看的,就目前而言,對于天氣情況的獲取手機(jī)已經(jīng)成為目前最為流行也是最為方便的方式之一。從這里就可以看出,目前流行的天氣預(yù)
12、報的方式之一就是手機(jī)天氣信息的獲取。第2章 項(xiàng)目需求分析2.1 功能分析(1)要有良好效果的界面在進(jìn)行安卓的相關(guān)開發(fā)操作開發(fā)研究中,其中用戶體驗(yàn)最多的就是界面,而在開發(fā)中界面我們稱之為UI,設(shè)計優(yōu)美方便的界面將極大地提升用戶對軟件的體驗(yàn)度,從而獲得用戶的喜愛。設(shè)計一個讓用戶感覺體驗(yàn)好的界面是設(shè)計中較為重要的一個環(huán)節(jié)4。(2)天氣信息查詢功能設(shè)計天氣預(yù)報程序中最為重要的就是天氣信息的實(shí)時更新操作,只有這樣才能夠確保天氣是實(shí)時變動,并且天氣是最為準(zhǔn)確和精準(zhǔn)的。本次設(shè)計中采用了WebService服務(wù)來進(jìn)行天氣的實(shí)時更新操作,利用通Activity來進(jìn)行信息的相關(guān)處理操作,并且進(jìn)行信息的顯示5。(3
13、)附加信息在進(jìn)行軟件設(shè)計時,我們還可以增加一些新的功能,比如可以增加網(wǎng)絡(luò)實(shí)時定位功能,從而豐富軟件的實(shí)用性能。還可以增加多次城市的查詢,這樣就可以不僅僅只能局限于一個城市的天氣。(4)操作簡單每一個設(shè)計的軟件,如果操作的過程很復(fù)雜,那么在實(shí)際的市場中,是不會被廣大的使用者所接受的,這也是為什么一再強(qiáng)調(diào)軟件的使用要很簡單,只有簡單才能夠讓用戶喜歡。2.2 性能分析(1)優(yōu)化Java代碼 安卓的java來發(fā)都是用來進(jìn)軟件程序的開發(fā)操作的,所以我們可以知道選擇一個好的算法將大大提升軟件的實(shí)際應(yīng)用和運(yùn)行效率。采用一個快捷有效的方法才是開發(fā)程序最為重要的。不斷地優(yōu)化內(nèi)存代碼,并且清除相關(guān)的緩存才能夠提升
14、代碼運(yùn)行效率。(2)提高性能代碼要軟件中要占用盡可能少的內(nèi)存,只有這樣才能夠讓代碼在運(yùn)行時有著良好的效率和速度。并且讓還要對CPU進(jìn)行相關(guān)的代碼優(yōu)化操作,合理的分配內(nèi)存空間,只有這樣才能代碼運(yùn)行進(jìn)行相關(guān)訪問時性能大大地提升,并且不會產(chǎn)生一些錯誤。(3)利用多線程 安卓軟件開發(fā)設(shè)計是使用java語言,所以一般都是利用多線程來進(jìn)行代碼編程,多線程編程的主要好處就是可以對用戶的任何操作做到實(shí)時反饋和相應(yīng)的響應(yīng),這樣也能夠極大的緩解內(nèi)存的壓力,并且減少CPU的占用。從而讓用戶獲得不一樣的體驗(yàn)。(4)降低功耗我們在進(jìn)行程序的設(shè)計開發(fā)時,要注意功能損耗的問題,如果一個程序在運(yùn)行時占用大量的電量,這是非常不
15、明智的。占用大量的電量的原因是因?yàn)檫\(yùn)行相關(guān)一些完全沒必要的代碼。所以這一程序肯定是不合格并且沒有市場前景的去掉代碼中一些不必要的代碼,這樣程序在進(jìn)行運(yùn)行時才能夠有效率,避免一些冗長的代碼拖慢或者消耗過多的電量。2.3 安全分析(1)安卓的安全設(shè)計原則安卓應(yīng)用實(shí)際平臺中相關(guān)的程序是沒有權(quán)限操作的,所以不能夠私自進(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)限要有提
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)操作,否則就會導(dǎo)致整個系統(tǒng)被私自亂改。2.4 研究內(nèi)容和開發(fā)環(huán)境需求(1)本次的天氣預(yù)報系統(tǒng)的開發(fā)環(huán)境由AndroidStudio框架、ndk插件、adt插件構(gòu)建而成,通過adt插件構(gòu)建的Android的應(yīng)用程序的開發(fā)環(huán)境,同時建立相應(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ù)報系統(tǒng)主要是運(yùn)行Android手機(jī)上,但是同時支持模擬器。搭建Android開發(fā)環(huán)境,下載并安裝AndroidStudio,下載并安裝android SDK;并配置好對應(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)如何
18、從遠(yuǎn)端服務(wù)器上獲取信息。第3章 項(xiàng)目設(shè)計分析3.1 程序功能模塊圖依據(jù)功能的需求分析,在這個項(xiàng)目中一共設(shè)計了以下功能(如圖3-1.1所示。):(1)顯示天氣信息,除了顯示當(dāng)天的天氣信息外還會顯示未來五天的天氣狀況,還有就是目標(biāo)城市的各種指數(shù)情(2)查詢某個城市天氣信息,作為一個手機(jī)天氣預(yù)報的軟件,最基本的就是查詢天氣信息了,因此在這個設(shè)計中設(shè)計了可以按照城市名來查詢天氣信息。 (3)定位功能,這個功能的主要是當(dāng)用戶打開這個軟件時,就會自動顯示用戶所在城市的天氣信息,方便用戶體驗(yàn)。除了這些以外,還有一些非常實(shí)用的功能,例如檢查手機(jī)網(wǎng)絡(luò)狀態(tài)是否良好等。圖3-1.1 功能模塊3.2顯示信息設(shè)計這個設(shè)
19、計中主要有以下幾種信息:(1)當(dāng)天日期和當(dāng)天的天氣狀況,還有未來五天的氣候。(2)天氣信息,這里面有溫度、風(fēng)力、濕度等等。(3)各種指數(shù),好比運(yùn)動指數(shù)、穿衣指數(shù)、感冒指數(shù)等等。(4)更新天氣的時間。3.3 解析數(shù)據(jù)因?yàn)檫@個設(shè)計里面所用的信息,如定位功能是從ip地址來判定的,天氣信息則是從和風(fēng)天氣網(wǎng)提供的免費(fèi)的api獲得的。獲取天氣等信息時采取Json技術(shù)解析,再通過接口的調(diào)用,直接從之前設(shè)置的WebXml獲得7。取得到天氣信息后就需要解析數(shù)據(jù),再把數(shù)據(jù)傳遞給相對應(yīng)的變量。最后在Activity中顯示到界面上,按照需求分析,解析了天氣信息,得到未來五天的天氣情況,還有城市的各種天氣指數(shù)。3.4界
20、面設(shè)計這個項(xiàng)目里面主要就設(shè)計了幾個界面,最重要的有:程序啟動時所呈現(xiàn)的畫面,然后就是啟動完成后時顯示的界面,即顯示信息的主界面,其次是用于顯示明添加城市的界面(即查詢城市),用戶可以在這個界面上輸入要查詢的城市,然后在信息界面獲取天氣信息。在規(guī)劃界面時,考慮到界面的友好性,靚麗性和實(shí)用性。友好性,是指界面布局簡潔,操作簡單,不會繁瑣多余。靚麗性,盡可能的將界面設(shè)置地更為漂亮,這樣也會隨之提高應(yīng)用程序的價值。另外,還需要考慮的一方面就是盡可能多的在頁面將信息展示出來,即在有限的空間內(nèi)將信息合理地展示出來,便于用戶閱讀信息,這就是實(shí)用性。接下來就一一介紹這個設(shè)計里面的主要界面。3.4.1程序啟動界
21、面當(dāng)安裝好程序后軟件會自動提示是否獲取手機(jī)權(quán)限(GPS定位時需要用到),如圖3-2.1所示,為了安全起見市場上的軟件都會有這一項(xiàng)提醒,以防止木馬侵入。圖3-2.1 手機(jī)權(quán)限3.4.2信息界面之主界面(MainPage)當(dāng)點(diǎn)擊允許時軟件將進(jìn)入主頁面,因?yàn)樵诎惭b后已經(jīng)授予軟件權(quán)限獲取定位,所以在聯(lián)網(wǎng)狀態(tài)下它就會自動獲取你所在的位置,獲取到城市名后便會自動從網(wǎng)上獲取天氣信息,并將信息顯示到界面上。當(dāng)進(jìn)入到這個界面時,有可能會出現(xiàn)卡的情況,因?yàn)槌绦騿雍笤谶@個界面會進(jìn)行一些基本操作,然后當(dāng)信息獲取成功后就會顯示設(shè)計的布局中。在這個界面中,會顯示有以下信息:日期:當(dāng)天的日期,格式為:-年-月-日。天氣:
22、當(dāng)天的天氣情況。天氣圖片:天氣情況,顯示與當(dāng)天天氣相符的天氣圖片,如太陽,云朵。氣溫:格式為當(dāng)天的最低溫度/最高溫度,單位是攝氏度。風(fēng)力:風(fēng)向和強(qiáng)度大小。指數(shù):有各項(xiàng)指數(shù),包括穿衣指數(shù),過敏指數(shù)等等。天氣實(shí)況:指查詢時刻的天氣情況,包含空氣質(zhì)量,以及濕度,天氣,溫度。分享按鈕:有個一鍵分享的按鈕,可以通過QQ,微信,短信等途徑分享給你的好友。菜單按鈕:用點(diǎn)擊這個按鈕時,可以進(jìn)入到查詢城市界面。滑動切換:左右滑動切換到信息界面二(NextPage)。在滑動時有一定的動作效果。3.4.3信息界面之城市界面(CityPage) 當(dāng)用戶點(diǎn)擊主界面的那個菜單符號時,你就可以看到所示。有一個簡單的介紹和添
23、加城市的按鈕,當(dāng)點(diǎn)擊添加城市進(jìn)入選擇你需要獲取城市的天氣信息。這是一個ListView頁面,用戶可以通過上下滑動來選擇城市,這里可以顯示全國的各個城市,可以具體到縣級城市。搜索框:在本界面的最上方會有一個輸入框,是給用戶查詢城市用的,在這個框中,默認(rèn)的是顯示“搜索全國城市(中文/拼音)”,并對這個輸入框進(jìn)行了模糊查詢。比如當(dāng)你輸入一個“邵”字,在搜索框下面便會出現(xiàn)所有城市中帶有“邵”字的城市,如邵陽,新邵,邵東等等。當(dāng)你點(diǎn)擊相應(yīng)的城市時這時系統(tǒng)就會自動退出當(dāng)前頁面而進(jìn)入主頁面,在主頁面將你剛剛選中的城市的天氣信息顯示出來。3.5 程序流程圖關(guān)于項(xiàng)目的程序流程圖,將在分別在信息顯示模塊和查詢模塊
24、來進(jìn)行描述。(1) 顯示模塊,主要是運(yùn)行這個程序時,通過定位獲取當(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)行、界面顯示、天氣查詢、定位、一個后臺運(yùn)行的Service以及下拉刷新等方面來進(jìn)行設(shè)計的。4.1 啟動畫面在這個項(xiàng)目中,首先在MainActivity.java文件中創(chuàng)建一個類,然后在該類的onCreate方法中設(shè)置布局變量,
25、并需要在清單文件進(jìn)行注冊,聲明該布局文件是程序啟動時顯示的界面。圖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代表天氣狀況的一個類,含有與天氣相關(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)擊添加城市按鈕時,就會跳轉(zhuǎn)到顯示全國各個城市的界面,都是按首字母排
26、序的根據(jù)26個英文字母一一排序下來,當(dāng)然用戶也可以選擇在最上方搜索欄中輸入自己想要獲取的城市天氣信息。名詞解釋之適配器:顧名思義就是把一些相對繁瑣數(shù)據(jù)通過一定的方法,然后在顯示到頁面上去??梢岳斫鉃槭墙缑鏀?shù)據(jù)綁定的一種,它所利用的數(shù)據(jù)一般都是相對復(fù)雜的數(shù)據(jù),如數(shù)組,鏈表,數(shù)據(jù)庫,集合等等。簡言之適配器就相當(dāng)于顯示器,把復(fù)雜的東西按照人們可以接受理解的方式來實(shí)現(xiàn)。數(shù)據(jù)庫設(shè)計:針對全國各大城市,設(shè)計了一個城市數(shù)據(jù)庫,名為city.db。設(shè)置其編號為主鍵自增長,然后還有幾個字段名如province(省份),city(城市名),number(城市代碼),apply(中文拼音),allfirstpy(城
27、市名首位字母拼音),firstpy(城市名首字母拼音)如圖4-2.1。圖4-2.1 數(shù)據(jù)庫想要獲取到某個城市的天氣信息,首先就必須要選中城市,具體如下圖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ò)檢測和定位功能在顯示功能中已介紹。將解釋分析查詢功能。首先定義一個editText控件和button控件,分別是用來獲得用戶輸入的城市和點(diǎn)擊要知道的信息,具體代碼如下圖4-3.1。圖4-3.1天氣查詢此外,還在這個界面顯示了關(guān)于本人的一些信息,用的是一個TextView控件,然后對空間進(jìn)行設(shè)置內(nèi)
28、容。4.4下拉刷新在下拉刷新中,其實(shí)主要的還是調(diào)用系統(tǒng)函數(shù)。在主界面即ListView中刷新。其中,要獲取三個值,第一個是當(dāng)下拉到某個臨界值值后能夠執(zhí)行刷新命令,第二個值是下拉的最大值,第三個值是用戶下拉的值。因?yàn)榭紤]到天氣信息的準(zhǔn)確性,真實(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)的桌面信息以及桌面布局部件的掌握和了解。比如一些還沒
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)以后更新軟件的時間周期時間長短,或者是相關(guān)部件布局文件。對于一些桌面的相關(guān)部件大小都是利用單元小格進(jìn)行劃分和進(jìn)行描述,最后再把相關(guān)地桌面標(biāo)記部件投放在桌面圖標(biāo)上面,這時占用的大小是最為適應(yīng)桌面單元大小格式的。AppWidget框架結(jié)構(gòu)是利用Intent廣播發(fā)送接收的方式來進(jìn)行相關(guān)桌面布局文件的圖標(biāo)的標(biāo)識控制布局,這樣就
30、會讓所有的桌面布局文件中的部件中的XML文件都會得到一個信息廣播發(fā)送接收裝置8。這樣做的主要目的是為了應(yīng)對于每一個桌面部件在進(jìn)行運(yùn)行時不同的應(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 為一個簡便類來處理App Widge
31、t廣播。AppWidgetProvider只接收與App Widget這個有關(guān)聯(lián)的事件廣播,比如這個App Widget被更新,刪除,啟用,以及禁用8。每當(dāng)廣播事件發(fā)生時,AppWidgetProvider 就會接收到下面的方法調(diào)用:onUpdate(Context, AppWidgetManager, int) 這個方法是用來周期性更新App Widget,周期時間用AppWidgetProviderInfo 里的updatePeriodMillis屬性定義。此函數(shù)也會在用戶添加App Widget時被調(diào)用,因此它一般用來執(zhí)行一些基礎(chǔ)的設(shè)置,比如為視圖定義事件處理器并啟動一個臨時的服務(wù)Ser
32、vice,前提是需要用到它。但如果你事先定義了一個配置的話,這個方法在用戶添加App Widget時就不會再被調(diào)用了,而只在后續(xù)更新時被調(diào)用10。第5章 項(xiàng)目調(diào)試與功能測試5.1項(xiàng)目調(diào)試分析在這個項(xiàng)目中,我遇到了許多困難,比如新建了一個Activity,同時創(chuàng)建了與之相對應(yīng)的布局文件,但是沒有在清單文件中AndroidManifest.xml進(jìn)行注冊,致使在程序運(yùn)行到那個Activity時就會出現(xiàn)crash(閃退)。在從WebService中獲取天氣信息時要進(jìn)行幾部操作,最終才能成功獲取。還有一個是我在項(xiàng)目快結(jié)束時發(fā)現(xiàn)的,當(dāng)用戶進(jìn)入信息主界面時,程序會獲取用戶當(dāng)前的位置,出現(xiàn)了一個情況,就是獲
33、取手機(jī)網(wǎng)絡(luò)狀態(tài)時,沒有對出現(xiàn)的所有的狀況進(jìn)行分析判斷,導(dǎo)致在程序運(yùn)行后,不能顯示用戶當(dāng)前所在城市的天氣信息。調(diào)試信息如圖5-1.1:圖5-1.1 調(diào)試信息一之后我在代碼中,就添加了對狀態(tài)的判斷。這樣針對有時是DISCONNECT 有時是UNKNOW的狀態(tài)就會解決了。調(diào)試信息如圖5-1.2:圖5-1.2 調(diào)試分析在onCreate()函數(shù)中,執(zhí)行綁定服務(wù),然后就直接利用返回的實(shí)例接口,結(jié)果這個接口實(shí)例并沒有獲取到,因?yàn)閎indService是在Activity啟動接口之后才會讓系統(tǒng)調(diào)用它的一個連接服務(wù)的函數(shù)。后來,就采取了多線程的方法,在主線程中創(chuàng)建了一個子線程,并且讓這個子線程在完成綁定前休息
34、一定時間,最終就完美的解決了。5.2功能測試(1)當(dāng)安裝好軟件后,進(jìn)入主頁面便會自動獲取所在城市(所在地為湖南邵陽),并查詢天氣信息將之顯示出來如圖5-2.1。圖5-2.1啟動頁面 (2)刷新好數(shù)據(jù)后所有天氣信息都會界面上顯示出來,具體如圖5-2.2。因?yàn)榭梢垣@取到未來五天的天氣信息,考慮的頁面的整潔性只能顯示三天的所以剩下兩天的信息只能到第二頁去。用戶可以向右滑動時會進(jìn)入Page的界面,如圖5-2.3。用戶可以向上滑動頁面來看下來查看當(dāng)天天氣的各種指數(shù),方便出門,旅行等具體如圖5-2.4。圖5-2.2MainPage界面一圖5-2.3MainPage界面二圖5-2.4MainPage之界面三
35、(2)當(dāng)用戶在信息主界面點(diǎn)擊菜單按鈕時,將進(jìn)入軟件的基本介紹,和添加城市(如圖5-2.5)。當(dāng)點(diǎn)擊主頁面的分享按鈕就會彈出如圖5-2.6的分享頁面,可以通過QQ、微信等渠道分享給好友。圖5-2.5基本介紹圖5-2.6 分享頁面(4)點(diǎn)擊菜單鍵后會看到如圖5-2.7所示,會出現(xiàn)一個基本介紹,以及一個添加城市的按鈕,當(dāng)添加后就會在下面出現(xiàn)一個最近查看的城市,當(dāng)長按時就可以進(jìn)行刪除,如圖5-2.8顯示。圖5-2.7 點(diǎn)擊菜單鍵圖5-2.8刪除城市(5)當(dāng)點(diǎn)擊該添加按鈕時就會進(jìn)入一個全國所有城市的顯示頁面為一個ListView頁面,可以通過上下滑動來選擇。如圖5-2.9所示,所有城市是按首字母排序的整
36、理到一起,用戶可以輕松的找到自己想要查詢的天氣信息。進(jìn)入城市選擇頁面后頂部有個搜索欄,可以直接輸入你想要知道的城市的天氣信息,也可以通過左側(cè)欄字母排序選擇你想要知道的城市天氣信息。搜索框支持模糊查詢,默認(rèn)的是顯示“搜索全國城市(中文/拼音)”。比如當(dāng)你輸入一個“邵”字,在搜索框下面便會出現(xiàn)所有城市中帶有“邵”字的城市,如邵陽,新邵,邵東等等(如圖5-2.10)。可以直接點(diǎn)擊該城市就會自動跳轉(zhuǎn)到主頁面顯示該城市的天氣信息,頁面可能有點(diǎn)延時畢竟需要從網(wǎng)上獲取數(shù)據(jù)根據(jù)網(wǎng)絡(luò)的實(shí)際情況而決定的延時時間。圖5-2.9上下選擇城市圖5-2.10 搜索提示總結(jié)在本次畢業(yè)設(shè)計中,我主要運(yùn)用AndroidStudio軟件以及SQLite數(shù)據(jù)庫來完成的。這次畢業(yè)設(shè)計讓我更加熟悉了從理論到實(shí)踐的跨越。從當(dāng)初的查閱圖書,到現(xiàn)在的軟件的成功運(yùn)行,這中間有很多值得回味的地方。主要是運(yùn)用java語言進(jìn)行代碼的編寫,以及安卓編程的一些知識。通過本次設(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è)計主要的難點(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)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 排長述職報告
- 工程移交協(xié)議書(5篇)
- 2025年教案編寫:如何讓學(xué)生理解火災(zāi)的危害與滅火的方法
- 廉潔自律-從我做起
- 豬肉知識培訓(xùn)課件
- 2025年中考第一次模擬考試地理(青海卷)(全解全析)
- 國際商務(wù)談判與合同簽訂作業(yè)指導(dǎo)書
- 學(xué)校后勤承包經(jīng)營合同
- 產(chǎn)品品質(zhì)檢測協(xié)議
- 2025年湘潭年貨運(yùn)從業(yè)資格證考試答案
- 計算機(jī)教室(微機(jī)室)學(xué)生上機(jī)使用記錄
- 學(xué)與教的心理學(xué)第6版(師范專業(yè)心理學(xué))PPT完整全套教學(xué)課件
- 單位下鄉(xiāng)租車方案
- 化工制圖第一章制圖的基本知識課件
- 《植物學(xué)》練習(xí)(二)根、莖、葉營養(yǎng)器官的聯(lián)系及變態(tài)
- 鼎和財險附加意外傷害醫(yī)療保險A款(互聯(lián)網(wǎng)專屬)條款
- 中暑-紅十字應(yīng)急救護(hù)培訓(xùn)課件
- 聯(lián)儲共備實(shí)施方案
- 光伏工程 危害辨識風(fēng)險評價表(光伏)
- 高壓電動機(jī)試驗(yàn)報告模板
- 醫(yī)學(xué)課件-主動脈夾層ppt
評論
0/150
提交評論