基于安卓操作系統(tǒng)的手機天氣預(yù)報設(shè)計論文_第1頁
基于安卓操作系統(tǒng)的手機天氣預(yù)報設(shè)計論文_第2頁
基于安卓操作系統(tǒng)的手機天氣預(yù)報設(shè)計論文_第3頁
基于安卓操作系統(tǒng)的手機天氣預(yù)報設(shè)計論文_第4頁
基于安卓操作系統(tǒng)的手機天氣預(yù)報設(shè)計論文_第5頁
已閱讀5頁,還剩38頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、邵陽學院畢業(yè)設(shè)計(論文)畢業(yè)設(shè)計(論文)課 題 名 稱 基于安卓操作系統(tǒng)的手機天氣預(yù)報設(shè)計學 生 姓 名 學 號 系、年級專業(yè) 指 導 教 師 職 稱 2016年 5 月 20 日目錄 摘要IABSTRACTII第1章 緒論11.1安卓操作系統(tǒng)的發(fā)展11.2安卓操作系統(tǒng)的簡介11.3 項目開發(fā)意義2第2章 項目需求分析32.1 功能分析32.2 性能分析32.3 安全分析42.4 研究內(nèi)容和開發(fā)環(huán)境需求4第3章 項目設(shè)計分析63.1 程序功能模塊圖63.2顯示信息設(shè)計63.3 解析數(shù)據(jù)73.4界面設(shè)計73.5 程序流程圖9第4章 項目實現(xiàn)124.1 啟動畫面124.2信息界面之城市界面144.

2、3天氣查詢174.4下拉刷新174.5窗口小部件widget18第5章 項目調(diào)試與功能測試205.1項目調(diào)試分析205.2功能測試21總結(jié)28參考文獻29附錄30致謝31摘要進入21世紀信息化時代,手機已經(jīng)成為了當前人們生活、工作的重要組成部分,我國國內(nèi)的手機已經(jīng)普及眾多地區(qū),在得到了物質(zhì)經(jīng)濟生活的保障之外,人們對于精神的享受也是十分重視的,而手機則是成為了的當前最為有效的交流媒介,有效縮短了地區(qū)交流限制,滿足人們娛樂的要求,人們使用手機可以從手機上獲取實時天氣信息,所以當前天氣預(yù)報開發(fā)是具有良好前景的。 本次設(shè)計的天氣預(yù)報開發(fā)是基于安卓的開發(fā)應(yīng)用,運行系統(tǒng)為Android系統(tǒng),此開發(fā)標準參考

3、慰目前流行的天氣預(yù)報開發(fā)標準,JAVA語言中封裝了需要代碼類,為更多的有興趣的開發(fā)者提供了方便與效率,并且本次開發(fā)的天氣預(yù)報操作簡單,十分適合大眾的使用習慣,這樣這一開發(fā)就會得到很大的推廣。關(guān)鍵詞:智能手機;安卓;操作系統(tǒng);天氣IIABSTRACTIn the 21st century information age, mobile phones have become the current peoples lives, an important part of the work, Chinas domestic mobile phone has been popular in many p

4、arts, 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 m

5、obile 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 co

6、mfort 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, s

7、o this development will be greatly promoted.KEYWORDS:Android ;operating system;smartphone;weatherII第1章 緒論1.1安卓操作系統(tǒng)的發(fā)展Android系統(tǒng)由Andy Rubin團隊開發(fā)制作,開發(fā)Android的最初目的是用于數(shù)碼相機的系統(tǒng),之后因為數(shù)碼相機的市場不斷地進行擴大,并且也因為新一代智能手機的飛速發(fā)展,導致了這一系統(tǒng)的快速崛起,并且在以后的時間中被逐漸的只針對于手機系統(tǒng)這一塊操作系統(tǒng)。本世紀,谷歌和很多廠商進行了聯(lián)合開發(fā)和發(fā)展行動,主要研究方向為手機系統(tǒng),也就是安卓系統(tǒng)的開發(fā)和應(yīng)用。并且

8、最后還把安卓開發(fā)的源碼進行了相關(guān)公布,例如平板電腦等,而在Android系統(tǒng)正式推出僅僅才兩年,在2012年底,通過數(shù)據(jù)統(tǒng)計,Android操作系統(tǒng)的在市場占有比率超過了稱霸十余年的諾基亞的Symbian系統(tǒng),成為當時世界范圍以內(nèi)的智能手機操作系統(tǒng)長期第一名,并且憑借其開源性的迅速壟斷了智能手機低端市場,并且影響其他的低端手機公司,最典型的例子為隨著Android市場占有率不斷升高,直接導致諾基亞原有的低端手機市場占有率直線下降,而在2013年1月,諾基亞放棄低端市場,也就是諾基亞放棄了原有Symbian系統(tǒng)低端市場,專注于高端智能手機市場,直到現(xiàn)在Android已經(jīng)基本上壟斷了低端手機市場,

9、成為了當前智能手機霸主,這是促進JAVA編程得到了廣大的發(fā)展空間。1.2安卓操作系統(tǒng)的簡介Android系統(tǒng)是基于開源linux系統(tǒng)為基礎(chǔ)的開源移動設(shè)備操作系統(tǒ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)用不斷豐富,這標志Android系統(tǒng)趨向于成熟。廣闊的軟件資源使得Android系統(tǒng)的競爭力不斷增加,而消費者能夠以更低的價格

10、購買到智能手機,這也是Android迅速成為低端手機的霸主的根本原因。08年美國紐約發(fā)布了第一款安卓智能手機,發(fā)布的手機WCDMA/HSPA網(wǎng)絡(luò),根據(jù)報道得知理論下載速率為7.2Mbit/s2,并且能夠連接Wi-Fi無限局域網(wǎng)絡(luò),在后面的時間中谷歌和開放手機聯(lián)盟致力于安卓手機的開發(fā)和應(yīng)用,最后安卓手機的開發(fā)和應(yīng)用廠商已經(jīng)有摩托羅拉、高通、宏達電和T-Moblie中國移動等很多家著名企業(yè)進行聯(lián)合看開發(fā)和應(yīng)用。之后再我國國內(nèi)針對Android操作系統(tǒng)進行二次開發(fā),以Android系統(tǒng)源碼為基礎(chǔ),根據(jù)實際的硬件結(jié)構(gòu)進行深度定制開發(fā),Android的發(fā)展歷史可謂與iPhone的發(fā)展歷史截然不同,由于i

11、Phone的封閉性導致iPhone只能在智能手機的高端市場占據(jù)一席之地,而不能向Android一樣擁有巨大的用戶人群,同時這也證明了Android的火熱程度。1.3 項目開發(fā)意義 我國的社會國民經(jīng)濟是一步一步不斷地飛速發(fā)展,我國人民的生活質(zhì)量水平不斷提高,人們的生活觀念也在發(fā)生變化3,大多數(shù)小康家庭的生活目標不再是追求物質(zhì)生活的滿足,更多是追求精神生活的充實,對于天氣的獲取也不再局限于天氣口訣或者自然現(xiàn)象了,根據(jù)了解眾多的青少年對于天氣的獲取是從手機上進行查看的,就目前而言,對于天氣情況的獲取手機已經(jīng)成為目前最為流行也是最為方便的方式之一。從這里就可以看出,目前流行的天氣預(yù)報的方式之一就是手機

12、天氣信息的獲取。第2章 項目需求分析2.1 功能分析(1)要有良好效果的界面在進行安卓的相關(guān)開發(fā)操作開發(fā)研究中,其中用戶體驗最多的就是界面,而在開發(fā)中界面我們稱之為UI,設(shè)計優(yōu)美方便的界面將極大地提升用戶對軟件的體驗度,從而獲得用戶的喜愛。設(shè)計一個讓用戶感覺體驗好的界面是設(shè)計中較為重要的一個環(huán)節(jié)4。(2)天氣信息查詢功能設(shè)計天氣預(yù)報程序中最為重要的就是天氣信息的實時更新操作,只有這樣才能夠確保天氣是實時變動,并且天氣是最為準確和精準的。本次設(shè)計中采用了WebService服務(wù)來進行天氣的實時更新操作,利用通Activity來進行信息的相關(guān)處理操作,并且進行信息的顯示5。(3)附加信息在進行軟件

13、設(shè)計時,我們還可以增加一些新的功能,比如可以增加網(wǎng)絡(luò)實時定位功能,從而豐富軟件的實用性能。還可以增加多次城市的查詢,這樣就可以不僅僅只能局限于一個城市的天氣。(4)操作簡單每一個設(shè)計的軟件,如果操作的過程很復雜,那么在實際的市場中,是不會被廣大的使用者所接受的,這也是為什么一再強調(diào)軟件的使用要很簡單,只有簡單才能夠讓用戶喜歡。2.2 性能分析(1)優(yōu)化Java代碼 安卓的java來發(fā)都是用來進軟件程序的開發(fā)操作的,所以我們可以知道選擇一個好的算法將大大提升軟件的實際應(yīng)用和運行效率。采用一個快捷有效的方法才是開發(fā)程序最為重要的。不斷地優(yōu)化內(nèi)存代碼,并且清除相關(guān)的緩存才能夠提升代碼運行效率。(2)

14、提高性能代碼要軟件中要占用盡可能少的內(nèi)存,只有這樣才能夠讓代碼在運行時有著良好的效率和速度。并且讓還要對CPU進行相關(guān)的代碼優(yōu)化操作,合理的分配內(nèi)存空間,只有這樣才能代碼運行進行相關(guān)訪問時性能大大地提升,并且不會產(chǎn)生一些錯誤。(3)利用多線程 安卓軟件開發(fā)設(shè)計是使用java語言,所以一般都是利用多線程來進行代碼編程,多線程編程的主要好處就是可以對用戶的任何操作做到實時反饋和相應(yīng)的響應(yīng),這樣也能夠極大的緩解內(nèi)存的壓力,并且減少CPU的占用。從而讓用戶獲得不一樣的體驗。(4)降低功耗我們在進行程序的設(shè)計開發(fā)時,要注意功能損耗的問題,如果一個程序在運行時占用大量的電量,這是非常不明智的。占用大量的電

15、量的原因是因為運行相關(guān)一些完全沒必要的代碼。所以這一程序肯定是不合格并且沒有市場前景的去掉代碼中一些不必要的代碼,這樣程序在進行運行時才能夠有效率,避免一些冗長的代碼拖慢或者消耗過多的電量。2.3 安全分析(1)安卓的安全設(shè)計原則安卓應(yīng)用實際平臺中相關(guān)的程序是沒有權(quán)限操作的,所以不能夠私自進行一些操作進行程序的破壞和相關(guān)重建,這是目前安卓開發(fā)的最特殊的地方之一。不允許私自對用戶的相關(guān)信息進行讀取和修改,不允許用戶信息文件進行讀寫操作。最后要注意的一點就是,對于一些正在運行得到程序不能夠進行干擾操作,安卓中的每一個運行程序不能夠?qū)σ恍﹦e的程序進行有干擾操作,并且有些權(quán)限要有提前申明。(在安裝時程

16、序會提醒是否授予軟件權(quán)限)(2)安卓數(shù)據(jù)安全原則安卓應(yīng)用在有相關(guān)權(quán)限許可的情況下,對于一些默認授權(quán)以外,其余一些系統(tǒng)數(shù)據(jù)是不能夠被別的程序進行增刪改查操作的。這是因為安卓很多代碼都是開源,所以在有些系統(tǒng)代碼中就必須要進行相關(guān)操作,否則就會導致整個系統(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程序的運行需要下載模擬器),

17、或者是可以直接將你的Android手機連接至電腦,將Android作為軟件開發(fā)環(huán)境,上述的兩種開發(fā)方式為此次開發(fā)的主要環(huán)境,尤其是天氣預(yù)報系統(tǒng)主要是運行Android手機上,但是同時支持模擬器。搭建Android開發(fā)環(huán)境,下載并安裝AndroidStudio,下載并安裝android SDK;并配置好對應(yīng)的ADT插件、劃分適當?shù)倪\行內(nèi)存和存儲空間來安置Android模擬器6。 (2)盡可能多的研究android平臺應(yīng)用程序開發(fā)的技術(shù)理論,掌握Android框架下開發(fā)應(yīng)用程序的相關(guān)技術(shù)與流程。(3)本次程序開發(fā)基礎(chǔ)是Java語言,再通過這個應(yīng)用程序來熟悉多線程編程。(4)如何從遠端服務(wù)器上獲取信

18、息。第3章 項目設(shè)計分析3.1 程序功能模塊圖依據(jù)功能的需求分析,在這個項目中一共設(shè)計了以下功能(如圖3-1.1所示。):(1)顯示天氣信息,除了顯示當天的天氣信息外還會顯示未來五天的天氣狀況,還有就是目標城市的各種指數(shù)情(2)查詢某個城市天氣信息,作為一個手機天氣預(yù)報的軟件,最基本的就是查詢天氣信息了,因此在這個設(shè)計中設(shè)計了可以按照城市名來查詢天氣信息。 (3)定位功能,這個功能的主要是當用戶打開這個軟件時,就會自動顯示用戶所在城市的天氣信息,方便用戶體驗。除了這些以外,還有一些非常實用的功能,例如檢查手機網(wǎng)絡(luò)狀態(tài)是否良好等。圖3-1.1 功能模塊3.2顯示信息設(shè)計這個設(shè)計中主要有以下幾種信

19、息:(1)當天日期和當天的天氣狀況,還有未來五天的氣候。(2)天氣信息,這里面有溫度、風力、濕度等等。(3)各種指數(shù),好比運動指數(shù)、穿衣指數(shù)、感冒指數(shù)等等。(4)更新天氣的時間。3.3 解析數(shù)據(jù)因為這個設(shè)計里面所用的信息,如定位功能是從ip地址來判定的,天氣信息則是從和風天氣網(wǎng)提供的免費的api獲得的。獲取天氣等信息時采取Json技術(shù)解析,再通過接口的調(diào)用,直接從之前設(shè)置的WebXml獲得7。取得到天氣信息后就需要解析數(shù)據(jù),再把數(shù)據(jù)傳遞給相對應(yīng)的變量。最后在Activity中顯示到界面上,按照需求分析,解析了天氣信息,得到未來五天的天氣情況,還有城市的各種天氣指數(shù)。3.4界面設(shè)計這個項目里面主

20、要就設(shè)計了幾個界面,最重要的有:程序啟動時所呈現(xiàn)的畫面,然后就是啟動完成后時顯示的界面,即顯示信息的主界面,其次是用于顯示明添加城市的界面(即查詢城市),用戶可以在這個界面上輸入要查詢的城市,然后在信息界面獲取天氣信息。在規(guī)劃界面時,考慮到界面的友好性,靚麗性和實用性。友好性,是指界面布局簡潔,操作簡單,不會繁瑣多余。靚麗性,盡可能的將界面設(shè)置地更為漂亮,這樣也會隨之提高應(yīng)用程序的價值。另外,還需要考慮的一方面就是盡可能多的在頁面將信息展示出來,即在有限的空間內(nèi)將信息合理地展示出來,便于用戶閱讀信息,這就是實用性。接下來就一一介紹這個設(shè)計里面的主要界面。3.4.1程序啟動界面當安裝好程序后軟件

21、會自動提示是否獲取手機權(quán)限(GPS定位時需要用到),如圖3-2.1所示,為了安全起見市場上的軟件都會有這一項提醒,以防止木馬侵入。圖3-2.1 手機權(quán)限3.4.2信息界面之主界面(MainPage)當點擊允許時軟件將進入主頁面,因為在安裝后已經(jīng)授予軟件權(quán)限獲取定位,所以在聯(lián)網(wǎng)狀態(tài)下它就會自動獲取你所在的位置,獲取到城市名后便會自動從網(wǎng)上獲取天氣信息,并將信息顯示到界面上。當進入到這個界面時,有可能會出現(xiàn)卡的情況,因為程序啟動后在這個界面會進行一些基本操作,然后當信息獲取成功后就會顯示設(shè)計的布局中。在這個界面中,會顯示有以下信息:日期:當天的日期,格式為:-年-月-日。天氣:當天的天氣情況。天氣

22、圖片:天氣情況,顯示與當天天氣相符的天氣圖片,如太陽,云朵。氣溫:格式為當天的最低溫度/最高溫度,單位是攝氏度。風力:風向和強度大小。指數(shù):有各項指數(shù),包括穿衣指數(shù),過敏指數(shù)等等。天氣實況:指查詢時刻的天氣情況,包含空氣質(zhì)量,以及濕度,天氣,溫度。分享按鈕:有個一鍵分享的按鈕,可以通過QQ,微信,短信等途徑分享給你的好友。菜單按鈕:用點擊這個按鈕時,可以進入到查詢城市界面?;瑒忧袚Q:左右滑動切換到信息界面二(NextPage)。在滑動時有一定的動作效果。3.4.3信息界面之城市界面(CityPage) 當用戶點擊主界面的那個菜單符號時,你就可以看到所示。有一個簡單的介紹和添加城市的按鈕,當點擊

23、添加城市進入選擇你需要獲取城市的天氣信息。這是一個ListView頁面,用戶可以通過上下滑動來選擇城市,這里可以顯示全國的各個城市,可以具體到縣級城市。搜索框:在本界面的最上方會有一個輸入框,是給用戶查詢城市用的,在這個框中,默認的是顯示“搜索全國城市(中文/拼音)”,并對這個輸入框進行了模糊查詢。比如當你輸入一個“邵”字,在搜索框下面便會出現(xiàn)所有城市中帶有“邵”字的城市,如邵陽,新邵,邵東等等。當你點擊相應(yīng)的城市時這時系統(tǒng)就會自動退出當前頁面而進入主頁面,在主頁面將你剛剛選中的城市的天氣信息顯示出來。3.5 程序流程圖關(guān)于項目的程序流程圖,將在分別在信息顯示模塊和查詢模塊來進行描述。(1)

24、顯示模塊,主要是運行這個程序時,通過定位獲取當前位置,然后通過網(wǎng)絡(luò)獲取得到當前位置的天氣信息,并將結(jié)果信息顯示出來,流程圖如圖3-5.1所示:圖3-5 .1顯示模塊流程圖(2)查詢模塊,主要是得到要查詢的城市名,然后進行查詢,將得到的信息交給顯示模塊來顯示,流程圖如圖3-6.1所示: 圖3-6.1查詢模塊流程圖第4章 項目實現(xiàn)在項目實現(xiàn)方面,將以程序運行、界面顯示、天氣查詢、定位、一個后臺運行的Service以及下拉刷新等方面來進行設(shè)計的。4.1 啟動畫面在這個項目中,首先在MainActivity.java文件中創(chuàng)建一個類,然后在該類的onCreate方法中設(shè)置布局變量,并需要在清單文件進行

25、注冊,聲明該布局文件是程序啟動時顯示的界面。圖4-1.1頁面實現(xiàn)一圖4-1.2頁面實現(xiàn)二圖4-1.3頁面實現(xiàn)三 圖4-1.4頁面實現(xiàn)四WeatherInfo代表天氣狀況的一個類,含有與天氣相關(guān)的各種信息,如表1:表1:WeatherInfo 成員變量的含義類型變量名保存的信息Stringcity城市名Stringweather天氣狀況Stringtem溫度Stringwind風向和強度Stringdate日期Stringmesg各項指數(shù),如穿衣指數(shù)Stringnowinfo天氣實況4.2信息界面之城市界面當點擊添加城市按鈕時,就會跳轉(zhuǎn)到顯示全國各個城市的界面,都是按首字母排序的根據(jù)26個英文字

26、母一一排序下來,當然用戶也可以選擇在最上方搜索欄中輸入自己想要獲取的城市天氣信息。名詞解釋之適配器:顧名思義就是把一些相對繁瑣數(shù)據(jù)通過一定的方法,然后在顯示到頁面上去。可以理解為是界面數(shù)據(jù)綁定的一種,它所利用的數(shù)據(jù)一般都是相對復雜的數(shù)據(jù),如數(shù)組,鏈表,數(shù)據(jù)庫,集合等等。簡言之適配器就相當于顯示器,把復雜的東西按照人們可以接受理解的方式來實現(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),定位用戶所在的當前城市,其中網(wǎng)絡(luò)檢測和定位功能在顯示功能中已介紹。將解釋分析查詢功能。首先定義一個editText控件和button控件,分別是用來獲得用戶輸入的城市和點擊要知道的信息,具體代碼如下圖4-3.1。圖4-3.1天氣查詢此外,還在這個界面顯示了關(guān)于本人的一些信息,用的是一個TextView控件,然后對空間進行設(shè)置內(nèi)容。4.4下拉刷新在

28、下拉刷新中,其實主要的還是調(diào)用系統(tǒng)函數(shù)。在主界面即ListView中刷新。其中,要獲取三個值,第一個是當下拉到某個臨界值值后能夠執(zhí)行刷新命令,第二個值是下拉的最大值,第三個值是用戶下拉的值。因為考慮到天氣信息的準確性,真實性,用戶可以隨時通過下拉刷新來獲取最新的天氣信息。具體代碼如圖4-4.1圖4-4.1下拉刷新4.5窗口小部件widget用戶可以通過長按手機菜單鍵,或者在系統(tǒng)設(shè)置里面進行選擇是否開啟窗口小部件。Widget主要是運用了AppWidget框架結(jié)構(gòu)來進行了相關(guān)軟件部件的桌面擺放布局操作,這樣有利于用戶對于相關(guān)的桌面信息以及桌面布局部件的掌握和了解。比如一些還沒有結(jié)束的相關(guān)的日歷以

29、及音樂器件的信息掌握等等。程序部件要進行相關(guān)的桌面圖標的定義以及布局,首先第一步就要在軟件代碼程序項目中的res/xml項目下目錄中間創(chuàng)建一個XML文件來進行相關(guān)桌面部件圖標以及布局的應(yīng)用描述,這些部件中的應(yīng)用軟件信息主要包含的信息由軟件的的程序大小,軟件聯(lián)網(wǎng)以后更新軟件的時間周期時間長短,或者是相關(guān)部件布局文件。對于一些桌面的相關(guān)部件大小都是利用單元小格進行劃分和進行描述,最后再把相關(guān)地桌面標記部件投放在桌面圖標上面,這時占用的大小是最為適應(yīng)桌面單元大小格式的。AppWidget框架結(jié)構(gòu)是利用Intent廣播發(fā)送接收的方式來進行相關(guān)桌面布局文件的圖標的標識控制布局,這樣就會讓所有的桌面布局文

30、件中的部件中的XML文件都會得到一個信息廣播發(fā)送接收裝置8。這樣做的主要目的是為了應(yīng)對于每一個桌面部件在進行運行時不同的應(yīng)用狀態(tài)響應(yīng)的接收響應(yīng)操作,AppWidget框架結(jié)構(gòu)是針對于BroadcastReceiver的繼承操作,并且繼承的是其中的AppWidgetProvider類文件。所以我們只需要在相關(guān)的軟件代碼中寫一個AppWidgetProvider的子類就能夠?qū)崿F(xiàn),最后利用不同的實現(xiàn)狀態(tài)功能得到響應(yīng)的回調(diào)響應(yīng)操作從而控制AppWidget框架結(jié)構(gòu)控制。AppWidgetProvider 類擴展BroadcastReceiver 為一個簡便類來處理App Widget廣播。AppWid

31、getProvider只接收與App Widget這個有關(guān)聯(lián)的事件廣播,比如這個App Widget被更新,刪除,啟用,以及禁用8。每當廣播事件發(fā)生時,AppWidgetProvider 就會接收到下面的方法調(diào)用:onUpdate(Context, AppWidgetManager, int) 這個方法是用來周期性更新App Widget,周期時間用AppWidgetProviderInfo 里的updatePeriodMillis屬性定義。此函數(shù)也會在用戶添加App Widget時被調(diào)用,因此它一般用來執(zhí)行一些基礎(chǔ)的設(shè)置,比如為視圖定義事件處理器并啟動一個臨時的服務(wù)Service,前提是需要

32、用到它。但如果你事先定義了一個配置的話,這個方法在用戶添加App Widget時就不會再被調(diào)用了,而只在后續(xù)更新時被調(diào)用10。第5章 項目調(diào)試與功能測試5.1項目調(diào)試分析在這個項目中,我遇到了許多困難,比如新建了一個Activity,同時創(chuàng)建了與之相對應(yīng)的布局文件,但是沒有在清單文件中AndroidManifest.xml進行注冊,致使在程序運行到那個Activity時就會出現(xiàn)crash(閃退)。在從WebService中獲取天氣信息時要進行幾部操作,最終才能成功獲取。還有一個是我在項目快結(jié)束時發(fā)現(xiàn)的,當用戶進入信息主界面時,程序會獲取用戶當前的位置,出現(xiàn)了一個情況,就是獲取手機網(wǎng)絡(luò)狀態(tài)時,沒

33、有對出現(xiàn)的所有的狀況進行分析判斷,導致在程序運行后,不能顯示用戶當前所在城市的天氣信息。調(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ù),然后就直接利用返回的實例接口,結(jié)果這個接口實例并沒有獲取到,因為bindService是在Activity啟動接口之后才會讓系統(tǒng)調(diào)用它的一個連接服務(wù)的函數(shù)。后來,就采取了多線程的方法,在主線程中創(chuàng)建了一個子線程,并且讓這個子線程在完成綁定前休息一定時間,最終就完美

34、的解決了。5.2功能測試(1)當安裝好軟件后,進入主頁面便會自動獲取所在城市(所在地為湖南邵陽),并查詢天氣信息將之顯示出來如圖5-2.1。圖5-2.1啟動頁面 (2)刷新好數(shù)據(jù)后所有天氣信息都會界面上顯示出來,具體如圖5-2.2。因為可以獲取到未來五天的天氣信息,考慮的頁面的整潔性只能顯示三天的所以剩下兩天的信息只能到第二頁去。用戶可以向右滑動時會進入Page的界面,如圖5-2.3。用戶可以向上滑動頁面來看下來查看當天天氣的各種指數(shù),方便出門,旅行等具體如圖5-2.4。圖5-2.2MainPage界面一圖5-2.3MainPage界面二圖5-2.4MainPage之界面三(2)當用戶在信息主

35、界面點擊菜單按鈕時,將進入軟件的基本介紹,和添加城市(如圖5-2.5)。當點擊主頁面的分享按鈕就會彈出如圖5-2.6的分享頁面,可以通過QQ、微信等渠道分享給好友。圖5-2.5基本介紹圖5-2.6 分享頁面(4)點擊菜單鍵后會看到如圖5-2.7所示,會出現(xiàn)一個基本介紹,以及一個添加城市的按鈕,當添加后就會在下面出現(xiàn)一個最近查看的城市,當長按時就可以進行刪除,如圖5-2.8顯示。圖5-2.7 點擊菜單鍵圖5-2.8刪除城市(5)當點擊該添加按鈕時就會進入一個全國所有城市的顯示頁面為一個ListView頁面,可以通過上下滑動來選擇。如圖5-2.9所示,所有城市是按首字母排序的整理到一起,用戶可以輕

36、松的找到自己想要查詢的天氣信息。進入城市選擇頁面后頂部有個搜索欄,可以直接輸入你想要知道的城市的天氣信息,也可以通過左側(cè)欄字母排序選擇你想要知道的城市天氣信息。搜索框支持模糊查詢,默認的是顯示“搜索全國城市(中文/拼音)”。比如當你輸入一個“邵”字,在搜索框下面便會出現(xiàn)所有城市中帶有“邵”字的城市,如邵陽,新邵,邵東等等(如圖5-2.10)。可以直接點擊該城市就會自動跳轉(zhuǎn)到主頁面顯示該城市的天氣信息,頁面可能有點延時畢竟需要從網(wǎng)上獲取數(shù)據(jù)根據(jù)網(wǎng)絡(luò)的實際情況而決定的延時時間。圖5-2.9上下選擇城市圖5-2.10 搜索提示總結(jié)在本次畢業(yè)設(shè)計中,我主要運用AndroidStudio軟件以及SQLite數(shù)據(jù)庫來完成的。這次畢業(yè)設(shè)計讓我更加熟悉了從理論到實踐的跨越。從當初的查閱圖書,到現(xiàn)在的軟件的成功運行,這中間有很多值得回味的地方。主要是運用java語言進行代碼的編寫,以及安卓編程的一些知識。通過本次設(shè)計我收獲了許多,在查閱資料的同時學到了要如何汲取精華。本來是想從中國天氣網(wǎng)來獲取天氣信息,但是經(jīng)過查閱資料后發(fā)現(xiàn)中國天氣網(wǎng)已經(jīng)不提供免費的api服務(wù),所以我就在網(wǎng)上詢問前輩得知和風天氣網(wǎng)可以免費提供天氣api接口,但是每天只能提供使用3000次,不過也足夠用了。本次設(shè)計主要的難點就是如何解析天氣信息,并且將解析的數(shù)據(jù)轉(zhuǎn)換成我們想得到的信息。因為json解析

溫馨提示

  • 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)容負責。
  • 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論