【正文】
界范圍的極端天氣氣候事件有增多趨勢,異常天氣現(xiàn)象越來越頻繁,氣象災(zāi)害的破壞性越來越大,引起了國際社會的高度關(guān)注 [5]。Android 平臺的天氣預(yù)報軟件的開發(fā)可以進一步擴大氣象信息的覆蓋面,讓廣大Android 手機用戶能夠在第一時間獲取最新的天氣預(yù)報信息,以便提前預(yù)防,方便出行。 系統(tǒng)開發(fā)的目的及意義天氣預(yù)報為人們了解天氣狀況和出行安排帶來了方便,曾經(jīng),大多數(shù)人通過電視了解天氣預(yù)報,查詢起來并不是很便捷。缺乏信息,即使有了資金、廠房、物資和能源,辦企業(yè)也十分困難,因為企業(yè)沒有生命力。s living standards, we also demand for quality of life also rose. Individuals, businesses and even the society urgent need for any time and anywhere to grasp the accurate weather forecast information.This paper introduces a design and implementation process of a weather forecasting system based on Android. The design uses C / S mode, the client through the HTTP connection to obtain the data of the aggregation data API. Querying weather information by manually selecting the city or automatically locating. Using the Android open source system technology, it can be through the pictures and text shows the day and the next few days of weather conditions. The design through the positioning of the city to obtain weather information, users can understand the realtime weather, the next three days weather, air quality and other data, to avoid loss of travel, with a certain ornamental and usability.The main functions of the software include loading interface module, city selection module, display weather module, detailed information module and data refresh module. Test results show that the software is easy to use, fully meet the people a prehensive understanding of weather information needs.Key words: meteorology, Inter, Android, weather forecast. . . . 參考目 錄第一章 緒論11122第二章 平臺及關(guān)鍵技術(shù)介紹3 Android 介紹3 Android 與其他平臺的比較4 Android 基礎(chǔ)知識4 四大組件4 六大布局5 五大存儲5 Android 基本架構(gòu)6第三章 開發(fā)環(huán)境搭建9 開發(fā)環(huán)境介紹9 開發(fā)所需設(shè)備11 eclipse 軟件11 Android 手機/模擬器11第四章 系統(tǒng)分析12 功能分析. . . . 參考12 流程分析13 UI 界面分析14 引導(dǎo)頁面14 主界面14 城市選擇界面15第五章 詳細(xì)設(shè)計16 創(chuàng)建工程16 UI 實現(xiàn)17 引導(dǎo)界面17 主界面18 城市選擇界面19 數(shù)據(jù)獲取及解析19 聚合數(shù)據(jù)平臺申請數(shù)據(jù)19 根據(jù)城市名查詢天氣20 城市天氣三小時預(yù)報21 支持城市列表21 城市空氣質(zhì)量22 下拉刷新22 Service 初始化及實現(xiàn)23 存在問題及解決方案24 數(shù)據(jù)無法解析24 JSON 解析報錯. . . . 參考25 區(qū)域的數(shù)據(jù)解析無從下手25 間隔三小時天氣區(qū)域數(shù)據(jù)顯示不全25 分段顯示圖片26 無法獲取數(shù)據(jù)26第六章 系統(tǒng)測試27第七章 結(jié)論29參考文獻31謝辭32. . . . 參考第一章 緒論當(dāng)今社會,競爭激烈,企業(yè)乃至國家之間,競爭的是資源。本設(shè)計通過定位城市獲取氣象信息,用戶可以了解到實時天氣、未來三天天氣、空氣質(zhì)量等數(shù)據(jù),避免損失方便出行,具有一定的觀賞性和可用性。同時,隨著人們生活水平的大幅提高,大家對生活質(zhì)量的要求也隨之高漲,個人、企業(yè)乃至社會都迫切的需要隨時隨地的掌握準(zhǔn)確即時的天氣預(yù)報信息。本論文介紹了一款基于 Android 的天氣預(yù)報系統(tǒng)設(shè)計及實現(xiàn)過程。軟件主要功能包括加載界面模塊、城市選擇模塊、顯示天氣模塊、詳細(xì)信息模塊和數(shù)據(jù)刷新模塊。比資源更為重要的是——信息 [1]。因而,信息是最重要的資源,誰占有的信息多、掌握的信息準(zhǔn)確,誰就有了權(quán)威,有了制勝的先機。隨著智能手機的普及和 4G 技術(shù)的發(fā)展,手機端實現(xiàn)天氣查詢成為了更好的選擇,因此,實現(xiàn)手機端的天氣預(yù)報系統(tǒng)成為了人們迫切需要且切實可行的需求。同時,把氣象災(zāi)害造成的損失降到最低,也可以提高公共服務(wù)質(zhì)量,更好的發(fā)揮氣象事業(yè)對經(jīng)濟社會發(fā)展的現(xiàn)實性作用,有巨大的實用價值 [3]。氣象科技竟?fàn)幦遮吋ち?,在?yīng)對氣候變化和支撐國際談判中的基礎(chǔ)性地位日益提升。此外,類似的還有乘車指數(shù)、冰激凌指數(shù)、泳裝指數(shù)、食品霉變指數(shù)等,商家可據(jù)此提前制訂生產(chǎn)營銷計劃。當(dāng)你在暴雨中行駛時,高德地圖會提醒你:“前方道路已嚴(yán)重積水,您的車輛駛?cè)肟赡軙凰?,建議您繞道。開發(fā)者可以免費使用聚合數(shù)據(jù) API 進行移動 APP 的快速開發(fā),免除數(shù)據(jù)收集、維護等環(huán)節(jié),大大降低開發(fā)周期及成本。表 11 論文組織結(jié)構(gòu)第一章 緒論(目的,意義,現(xiàn)狀,趨勢,數(shù)據(jù)來源)第二章 平臺及關(guān)鍵技術(shù)介紹(概述,對比,基礎(chǔ)知識)第三章 開發(fā)環(huán)境搭建(所需軟件,環(huán)境配置)第四章 系統(tǒng)分析(功能,流程,UI 界面)第五章 詳細(xì)設(shè)計(創(chuàng)建工程,UI 實現(xiàn),數(shù)據(jù)獲取及解析,刷新,存在問題)第六章 系統(tǒng)測試(目的,環(huán)境,結(jié)果)第七章 結(jié)論其他 參考文獻,謝辭. . . . 參考第二章 平臺及關(guān)鍵技術(shù)介紹 Android 介紹Android 一詞的本義指“機器人” ,同時也是谷歌在 2022 年 11 月發(fā)布的基于 Linux 平臺的開源操作系統(tǒng)的名稱,該平臺由操作系統(tǒng)、中間件、用戶界面和應(yīng)用軟件組成 [11]。Android 操作系統(tǒng)最初由 Andy Rubin 開發(fā),主要支持手機。第一部 Android 智能手機發(fā)布于 2022 年 10 月。2022 年 09 月 24 日谷歌開發(fā)的操作系統(tǒng) Android 在迎來了 5 歲生日,全世界采用這款系統(tǒng)的設(shè)備數(shù)量已經(jīng)達到 10 億臺。下圖為市場占有比重 [13]。iPhone 作為 iOS 的代表作,自然免不了與 Android 的對比。3)Android 應(yīng)用中每一個 Activity 都必須要在 配置文件中聲明,否則系統(tǒng)將不識別也不執(zhí)行該 Activity。Android 開發(fā)中,一旦和界面掛上了勾,都簡化不了,想一想,獨立做一個應(yīng)用有多少時間淪落在了界面上,就能琢磨清楚了。(2)serviceservice 組件主要用于后臺處理耗時請求。2)只有需要在多個應(yīng)用程序間共享數(shù)據(jù)是才需要內(nèi)容提供者。ContentProvider 用于保存和獲取數(shù)據(jù),并使其對所有應(yīng)用程序可見。(4)broadcast receiver1)你的應(yīng)用可以使用它對外部事件進行過濾,只對感興趣的外部事件(如當(dāng)電話呼入時,或者數(shù)據(jù)網(wǎng)絡(luò)可用時)進行接收并做出響應(yīng)。一般來說是在狀態(tài)欄上放一個持久的圖標(biāo),用戶可以打開它并獲取消息。也就是說哪怕 app 本身未啟動,該 app 訂閱的廣播在觸發(fā)時也會對它起作用。需要注意的是在AndroidManifest 文件中進行配置的廣播接收者會隨系統(tǒng)的啟動而一直處于活躍狀態(tài),只要接收到感興趣的廣播就會觸發(fā)(即使程序未運行) 。建議盡量采用 XML 文件聲明界面元素布局。(1)減少布局層次,可考慮用 RelativeLayout 來代替 LinearLayout。(1) SharedPreferences. . . . 參考Android 提供用來存儲一些簡單的配置信息的一種機制,例如,一些默認(rèn)歡迎語、登錄的用戶名和密碼等。(2)文件存儲在 Android 中,其提供了 openFileInput 和 openFileOuput 方法讀取設(shè)備上的文件。(3)SQLite 數(shù)據(jù)庫方式SQLite 是 Android 所帶的一個標(biāo)準(zhǔn)的數(shù)據(jù)庫,它支持 SQL 語句,它是一個輕量級的嵌入式數(shù)據(jù)庫。數(shù)據(jù)在 Android 當(dāng)中是私有的,當(dāng)然這些數(shù)據(jù)包括文件數(shù)據(jù)和數(shù)據(jù)庫數(shù)據(jù)以及一些其他類型的數(shù)據(jù)。外界根本看不到,也不用看到這個應(yīng)用暴露的數(shù)據(jù)在應(yīng)用當(dāng)中是如何存儲的,或者是用數(shù)據(jù)庫存儲還是用文件存儲,還是通過網(wǎng)上獲得,這些一切都不重要,重要的是外界可以通過這一套標(biāo)準(zhǔn)及統(tǒng)一的接口和程序里的數(shù)據(jù)打交道,可以讀取程序的數(shù)據(jù),也可以刪除程序的數(shù)據(jù),當(dāng)然,中間也會涉及一些權(quán)限的問題。. . . . 參考 Android 基本架構(gòu)Android 其本質(zhì)就是在標(biāo)準(zhǔn)的 Linux 系統(tǒng)上增加了 Java 虛擬機 Dalvik,并在 Dalvik虛擬機上搭建了一個 JAVA 的 application framework,所有的應(yīng)用程序都是基于 JAVA 的application framework 之上。在 Application Framework 之下,由 C/C++的程序庫組成,通過 JNI 完成從 JAVA 到 C 的調(diào)用。幫助程序員快速的開發(fā)程序,并且該應(yīng)用程序重用機制也使用戶可以方便的替換程序組件。 4)通知管理器(Notification Manager)使得應(yīng)用程序可以在狀態(tài)欄中顯示自定義的提示信息。核心庫主要包括基本的 C 庫、以及多媒體庫以支持各種多媒體格式、位圖和矢量字體、2D 和 3D 圖形引擎、瀏覽器、數(shù)據(jù)庫支持。2)Android 運行庫Android 包括了一個核心庫,該核心庫提供了 Java 編程語言核心庫的大多數(shù)功能。同時虛擬機是基于寄存器的,所有的類都經(jīng)由 JAVA 編譯器編譯,然后通過 SDK 中的 dx 工具轉(zhuǎn)化成.dex 格式由虛擬機執(zhí)行。. . . . 參考第三章 開發(fā)環(huán)境搭建 開發(fā)環(huán)境介紹在 windows 安裝 Android 的開發(fā)環(huán)境不簡單也說不上算復(fù)雜,只要細(xì)心留意每一步即可完成開發(fā)環(huán)境部署。JDK默認(rèn)安裝成功后,會在系統(tǒng)目錄下出現(xiàn)兩個文件夾,一個代表 jdk,一個代表 jre。我們可以打開 jdk 的安裝目錄下的 Bin 目錄,里面有許多后綴名為 exe 的可執(zhí)行程序,這些都是 JDK 包含的工具。前面說了 JDK 包含了一堆開發(fā)工具,這些開發(fā)工具都在 JDK 的安裝目錄下,為了方便使用這些開發(fā)工具,我們有必要把 JDK 的安裝目錄設(shè)置了系統(tǒng)變量。(1)JAVA_HOME先設(shè)置這個系統(tǒng)變量名稱,變量值為 JDK 在你電腦上的安裝路徑:C:\Program Files\Java\。%JAVA_HOME%\jre\bin 。注意變量值字符串前面有一個.表示當(dāng)前目錄,設(shè)置CLASSPATH 的目的,在于告訴 Java 執(zhí)行環(huán)境,在哪些目錄下可以找到您所要執(zhí)行的 Java程序所需要的類或者包。Eclipse 的版本有多個,這里選擇 Eclipse IDE for Java EE Developers 這個版本。