基于Android平臺氣象軟件的設計與實現(xiàn)_第1頁
基于Android平臺氣象軟件的設計與實現(xiàn)_第2頁
基于Android平臺氣象軟件的設計與實現(xiàn)_第3頁
基于Android平臺氣象軟件的設計與實現(xiàn)_第4頁
基于Android平臺氣象軟件的設計與實現(xiàn)_第5頁
已閱讀5頁,還剩13頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

1、14基于Android平臺氣象軟件的設計與實現(xiàn)摘 要在當今這個高速發(fā)展的信息時代,傳統(tǒng)互聯(lián)網(wǎng)已經(jīng)日趨成熟,而移動互聯(lián)網(wǎng)卻處于井噴式的爆發(fā)階段。隨著基于Android和iOS系統(tǒng)等智能手機操作系統(tǒng)的普及,智能手機為用戶提供著越來越便捷和人性化的互聯(lián)網(wǎng)服務。通過手機終端即可處理各種業(yè)務,遠可遠程物聯(lián)關燈,近可查閱地圖天氣。因此,應用軟件極其服務在智能手機上具有廣闊的開發(fā)空間。而當今主流的兩家智能手機系統(tǒng)平臺分別是由Android和iOS系統(tǒng)所占據(jù)。它們憑借其高智能化、交互性強、擴展性強、創(chuàng)新度高一舉將占據(jù)智能手機市場十幾年的塞班踢出歷史舞臺。也造就了移動互聯(lián)網(wǎng)的高速發(fā)展。因為蘋果和谷歌科技巨頭具有

2、強大的技術實力背景,人性化的交互設計,高水平的設計規(guī)范,完善的服務終端。所以系統(tǒng)用戶激活數(shù)一直很高。而其中的Android所具有的開源開放特性使它具有良好的拓展性。深受各大手機產(chǎn)商的歡迎,因此Android占據(jù)著最多的市場份額。并且它具有方便的開發(fā)調試工具,開放的體系架構,成熟的多媒體和各大組件,較低的開發(fā)成本。這都深深地吸引著開發(fā)者們。本文設計就是在基于Android平臺,使用相關的開發(fā)工具,結合實際工作內容,對氣象軟件應用進行設計與實現(xiàn)。關鍵詞: API;Android;SQLite;氣象軟件;JavaDesign and implementation of weather softwar

3、e Based on AndroidAbstractTodays rapid development of the information age,Traditional Internet has becoming mature.And mobile Internet is in the stage of the outbreak of the blowout. As based on Android and iOS system and so on the proliferation of smart phones, smart phones to provide users with mo

4、re convenient and humanized Internet services. Can deal with all kinds of business, through a mobile operator far a remote object to turn off the lights, almost can consult weather map. Therefore, the application software is service on a smartphone has a broad development space.And todays mainstream

5、 two smartphone system platform are dominated by Android and iOS. Them with its high intelligent, interactive strong, strong expansibility, high innovation degree of every will dominate the smartphone market more than ten years of symbian kicked out history stage, also contributed to the rapid devel

6、opment of mobile Internet. Because Apple and Google Company technology giant has strong technical strength background, humanized interaction design, high level of design specifications, the consummation service terminal. So the users of the system has been very high activation number. And with the a

7、ssistance of the Android open source and open features make it has good expansibility. He is popular with the major mobile phone makers, so the Android occupying most of the market. And it has a convenient development and debugging tools, an open architecture, mature multimedia and major components,

8、 lower development costs. This is deeply attract developers.Design is based on the Android platform, this paper use the relevant development tools, to design and implementation of meteorological software application.Key words:API;Android;SQLite Database;Weather software;Java1 緒 論1.1 研究背景與意義在現(xiàn)今信息化、智能

9、化的時代,移動互聯(lián)網(wǎng)的地位日趨重要,3G、4G通信技術高速發(fā)展,不管是國內的TD制式還是歐美的FDD制式,3G、4G通信技術在移動互聯(lián)網(wǎng)的發(fā)展歷程中具有重要的意義,是一塊不可替代的基石。現(xiàn)在只需輕輕一點,便可通過小小的手機終端享受到高效且方便的網(wǎng)絡服務。在2014年的臺灣資策會FIND的“臺灣最受歡迎的20大應用“調查報告中,在社交類和娛樂類之后就是天氣類,而這排名并不僅僅是臺灣,相信在國內和國外的應用排行中,天氣類的應用軟件都會有一席之地,因為現(xiàn)在的氣象信息可以十分精準的預測出當天的氣候狀態(tài),這種提前預警的好處,可以把氣象災害造成的損失降到最低。而這些服務只需通過手機輕輕一點即可實現(xiàn)。所以天

10、氣類的應用軟件無論是在哪個手機系統(tǒng)平臺上,滲透率都是非常之高的。隨著各類應用軟件的百花齊放,在當前巨大的移動互聯(lián)網(wǎng)背景下,應用軟件的格局和開發(fā)者的盈利模式逐漸有清晰的輪廓。就目前手機應用程序的盈利手段來說,移動廣告是十分重要的盈利手段。在滲透率高的應用上嵌入廣告SDK的話,可以賺取到一定的點擊量和展示量,因此,一些分發(fā)平臺為了幫助自己的廣告業(yè)務跑量,也會選擇開發(fā)一些實用的應用嵌入自己的SDK。而氣象軟件是相對比較新穎且實用的一款應用軟件。因此選擇了基于Android平臺氣象軟件的設計與實現(xiàn)。1.2 研究現(xiàn)狀和發(fā)展趨勢基于Android平臺開發(fā)氣象軟件應用,首先Android具有基于自己不同于別

11、人的優(yōu)勢與特點。第一,他具有強大的開放性。眾說周知,Android是一個開源的操作系統(tǒng),因為Android平臺基于BSD協(xié)議。而BSD協(xié)議鼓勵軟件開發(fā)作者公開后續(xù)其開發(fā)的源代碼,但它并不具有強迫性,因此使用者修改代碼之后,可以自行決定是否按照BSD協(xié)議進行公開。這樣使得Android一邊具有其開放性而另一邊又可適用于商業(yè)開發(fā)。第二點優(yōu)勢是硬件跨平臺,因為Android具有的開放性,各大廠商選擇Android作為自己手機的原生操作系統(tǒng),因此同一種系統(tǒng)軟件背后是多個廠商的多種硬件所支撐。通過將系統(tǒng)深度定制,來達到個性化的極致,以此吸引廣大消費者,搶占市場份額。第三點是并行運行模式。Android是

12、一個支持多任務操作系統(tǒng)的平臺,后臺可通過服務掛起,應用之間彼此不會互相影響,只要后臺掛著,你可以一邊下載,一邊聽歌,一邊玩游戲,相信在不久的將來,Android手機會發(fā)展到和PC操作系統(tǒng)一樣,可以分為多窗口工作模式,一個窗口看視頻,另外一個窗口玩游戲。最后一點就是非壟斷性。與蘋果公司的iOS系統(tǒng)和微軟公司的Windows Phone相比,在Android平臺上,可以定制自己所獨有的東西,這對開發(fā)者具有極大的吸引力。而手機的應用軟件就是手機操作系統(tǒng)的靈魂,可以說各式各樣的App造就了操作系統(tǒng)的豐富多彩,某些App軟件具有強大的用戶基數(shù)和穩(wěn)定的盈利模式,因此在現(xiàn)今移動互聯(lián)網(wǎng)格局戰(zhàn)略發(fā)展下,基于An

13、droid平臺開發(fā)的應用軟件是移動互聯(lián)網(wǎng)攻城掠地的第一城。1.3 SQLite數(shù)據(jù)庫簡介數(shù)據(jù)庫是程序進行數(shù)據(jù)管理的重要技術,現(xiàn)今信息資源的管理與存儲是愈加復雜、同時也愈加重要,而數(shù)據(jù)庫卻在對信息資源的管理和存儲中充當著至關重要的角色。而對于Android手機這種智能終端來說,自然也需要數(shù)據(jù)庫對其信息資源進行管理和存儲,Android搭載著一款輕型的SQLite數(shù)據(jù)庫,它是遵守ACID的嵌入式關系型數(shù)據(jù)庫管理系統(tǒng)。它是以嵌入式為設計目標的,而且目前已經(jīng)在很多嵌入式產(chǎn)品中使用了它,它的特點是高度便攜、使用方便、結構緊湊、高效、可靠。它能夠支持Windows/Linux/Unix等主流的操作系統(tǒng)的同

14、時也能夠跟很多程序語言相結合。1.4 開發(fā)環(huán)境簡介Android的系統(tǒng)架構可以大致可以分為四層架構,五塊區(qū)域。最底層也是最基礎的一層是Linux內核層:Android系統(tǒng)是基于開源的Linux2.6內核開發(fā)的,這一層是為Android設備的各種硬件提供了底層支持驅動,比如用于屏幕顯示的顯示驅動、用于多媒體播放的音頻驅動、用于拍照攝影的照相機驅動,以及藍牙、Wi-Fi驅動等。接著是系統(tǒng)運行庫層:Android系統(tǒng)所需要的特性支持都是由這一層的一些C/C+語言編寫的庫所提供的。比如數(shù)據(jù)庫是由SQLite所提供支持的, 3D繪圖是由OpenGL|ES庫提供了支持,瀏覽器內核是由WebKit庫提供了支

15、持等。還有就是Dalvik虛擬機包含在了Android運行時庫中。Dalvik虛擬機使得每一個Android應用都能夠運行在獨立的進程中并且擁有一個自己的Dalvik實例。不同于Java虛擬機,Dalvik是為移動設備專門量身定制的,它可以在手機內存、CPU性能有限等情況下。進行專門的優(yōu)化處理。接著是應用框架層:這一層是為開發(fā)者和Android自帶的一些核心應用提供了構建程序時需要用到的各種API。然后是最頂層的應用層:所有安裝在手機上的應用程序都是屬于這一層,比如微信,系統(tǒng)自帶的短信還有游戲都是屬于這層,這層是用Java語言編寫的。由于Android應用層的應用程序都是Java語言編寫的,所

16、以開發(fā)環(huán)境需要Java SDK以及Google提供的Android SDK,而開發(fā)工具就有Eclipse搭載ADT插件和剛興起不久的Android studio。此程序是用Eclipse開發(fā)的,因此只介紹Eclipse。準備好以上提到的SDK和程序,再配置環(huán)境變量,便可進行開發(fā)了。1.4.1 Java概述Java是目前全世界最流行的面向對象編程語言。與它類似的程序設計語言有C#、python和Ruby,它們在某些領域都有自己的特點和優(yōu)勢,所以彼此都是處于競爭者的狀態(tài)。Java語言是一種較為特殊的高級語言,因為Java程序要經(jīng)歷先編譯、后解釋兩個步驟。所以Java既有解釋性語言的特征,也有編譯性

17、語言的特征。Java有三個分支,分別為Java SE、Java ME、Java EE。其中Java EE企業(yè)級主要是用于Web的開發(fā),比如JSP、Servlet、EJB等都屬于Java EE的范疇。由于Java的安全、穩(wěn)定,這使得Java EE不僅在大型網(wǎng)站的架構上十分適用,在銀行和基金證券等金融行業(yè)也是備受青睞。還有就是Java ME移動設備,它是專門為機頂盒、移動電話和PDA之類的嵌入式消費電子設備提供的Java語言平臺。最后是Java SE標準版,它是Java EE和Java ME的基礎,核心語言都在Java SE中體現(xiàn),最先開始學習就是學Java SE,它主要用于桌面應用開發(fā)。1.4.

18、2 Eclipse+ADT概述是Java開發(fā)中最好用、最流行的IDE工具之一。而且它還是開源的,這使得MyEclipse和Aptana這些基于Eclipse制作出來的優(yōu)秀IDE得以成功問世。但它吸引眾多開發(fā)者的地方還不止于此,Eclipse它具有超強大的插件功能。因為它可以支持非常多的插件工具,使得它不僅可以用來開發(fā)Java,還可以非常輕松地支持幾乎所有主流語言的開發(fā),當然也非常適合Android開發(fā)。ADT全稱是Android Development Tools,是谷歌提供的一個Eclipse插件,用戶在Eclipse中提供一個強大的、高度集成的Android開發(fā)環(huán)境。安裝ADT插件,就可以

19、實現(xiàn)聯(lián)機調試,而且還能夠模擬各種手機事件、分析你的程序性能等眾多便捷的功能。2 需求分析2.1 研究目的主要是為了學習Android應用程序的設計與開發(fā),往安卓工程師的職位發(fā)展,配合公司跑量業(yè)務進行研究與學習。利用組件對氣象軟件進行開發(fā),通過項目實踐,將書本中學習到的知識運用起來,對知識點進行更加深刻的總結歸納。2.2 系統(tǒng)需求基于Android平臺的氣象軟件,主要強調的就是便捷性,一般人們在準備出門的時候會提前看一下天氣預報,根據(jù)氣溫提示考慮如何著裝以及是否帶傘等問題。此時便有以下幾點要求,第一、需要有便捷的查詢功能,最簡潔的提供資訊,直觀的收到我所需要了解的天氣信息即可。第二、需要準確的天

20、氣信息,因此需要著重考慮天氣API接口。第三、信息要實時更新,所以后臺服務要按照一定的時間間隔,從服務器上獲取信息。并且提供手動更新,獲取實時天氣信息。2.3 需求分析根據(jù)系統(tǒng)分析,Android氣象軟件要求如下 :1. 軟件可羅列出全國所有省、市、縣。2. 軟件可查看全國的任意所選城市天氣信息。3. 軟件可定位出你當前所在地理信息位置。4. 軟件可自由切換全國各大城市以及查看它的天氣信息。5. 軟件可提供手動更新功能以及后臺自動更新天氣信息的功能。6. 程序響應速度快,獲取后臺信息快速無延誤,安全性高。2.4 功能分析圖下圖是氣象軟件的功能分析圖 圖2-1 系統(tǒng)功能分析圖3 總體設計3.1

21、用戶界面設計根據(jù)需求分析可知道,首先用戶點擊進入應用程序時,系統(tǒng)會獲取服務器上返回的文本信息,用程序處理完之后再進行適配ListView便可獲得初始界面,用初始界面進行初始化就可以到主界面了。設計初衷就是為了簡潔明了,一目了然。設計出來的界面草圖如下所示。 圖3-1 初始化界面設計草圖 圖3-2 主界面設計草圖3.2 總體功能設計3.2.1 模塊設計功能模塊設計總體分為4部分,分別是活動啟動,后臺Service服務,用戶界面以及數(shù)據(jù)庫,模塊包名如下圖所示:活動啟動:活動是Android程序的門面,在應用中所看到的東西,都是活動,它與用戶交互最直接的組件。它有四種啟動模式,分別是Standard

22、、singleTop、singleTask還有SingleInstance。本程序是默認的Standard啟動模式。后臺Service:負責執(zhí)行那些不需要去和用戶交互而且還要求在系統(tǒng)中長期運行的任務。它并不依賴用戶界面,所以當程序切換到后臺,或者用戶直接打開另外一個應用程序時,服務仍然能夠保持正常運行。適用于一些下載任務和自動后臺更新服務,例如一定時間內自動與服務器交互獲得氣象數(shù)據(jù)并且更新。用戶界面:由XML語言編寫的布局文件,布局文件中可以用許多系統(tǒng)自帶控件進行裝飾,也可以設置自定義控件,為了讓每個控件都有條不紊地擺放在界面上,我們需要設置相應的布局來使控件按照布局的規(guī)則放置,常見的四種基本

23、布局是LinearLayout、RelativeLayout、TableLayout、FrameLayout。本文初始化界面是用ListView,而主界面是用多重布局嵌套。圖3-3 模塊包名圖Activity包主要用于存放所有與活動相關的代碼,包內有ChooseAreaActivity類和WeatherActivity類,它們分別代表選擇天氣活動界面和顯示天氣主活動界面。db包則是用于存放數(shù)據(jù)庫相關的代碼,包內有WeatherDB類,它負責省市縣三級聯(lián)動的數(shù)據(jù)存儲,還有一個建庫工具類OpenHelper。而model包主要用于存放所有數(shù)據(jù)模型相關的代碼,例如省模塊的Province類、市模塊的

24、County類、縣模塊City類。Receiver包用于存放所有廣播接收器相關的代碼,service包用于存放和服務有關的代碼,包內的AutoUpdateService主要用于服務后臺自動更新,使天氣信息可以在一定時間自動從服務器上獲取數(shù)據(jù)并且刷新。util包是工具包,用于存放工具類相關的代碼,主要有網(wǎng)絡連接服務的HttpUtil工具類還有HttpCallbackListener監(jiān)聽類。3.3 數(shù)據(jù)庫設計3.3.1 系統(tǒng)數(shù)據(jù)分析通過分析氣象API接口,知道氣象信息并不需要利用數(shù)據(jù)庫進行存儲,只需進行緩存就好。而真正我們需要處理的數(shù)據(jù)項就是建立Province、City、County三張表,分別

25、存放省、市、縣的各種數(shù)據(jù)信息。3.4 API接口分析當我們將手機上獲得的省市縣數(shù)據(jù)處理成城市代號并訪問相應的地址時,中國氣象網(wǎng)會返回相應的天氣代號,以下為部分城市天氣代號表的一部分:圖3-4 城市天氣代號表當我們把經(jīng)過處理的天氣代號發(fā)送到查詢天氣接口時,服務器會把該城市的當前的天氣信息以JSON格式返回給我們,如下所示:“weatherinfo”:“city”:”浦東”, “cityid”:”101021300”, “temp1”:”21”, “temp2”:”9”, “weather”:”多云轉小雨”, “img1”:”d1.gif”, “img2”:”n7.gif”, “ptime”:”1

26、1:00”一下是可供參照的氣象編碼表和風力編碼表:圖3-5 天氣現(xiàn)象編碼表圖3-6 風力方向編碼表3.5 數(shù)據(jù)字典3.5.1 省級信息表描述:對省級基本信息的存儲,省級表的基本信息包括: 自增長主鍵id,province_name、province_code。表3-1 省級信息表列名數(shù)據(jù)類型可否為空屬性名稱說明idinteger否id自增長主鍵Province_nameText否Province name/Province_codetext否Province_code/3.5.2 市級信息表描述:對市級基本信息的存儲,省級表的基本信息包括: 自增長主鍵id,city_name,city_cod

27、e,province_id。表3-2 市級信息表列名數(shù)據(jù)類型可否為空屬性名稱說明idInteger否Id自增長主鍵City_nameText否City_name/City_codetext否City_code/Province_idinteger否Province_id外鍵3.5.3縣級信息表描述:對縣級基本信息的存儲,省級表的基本信息包括: 自增長主鍵id,county_name,county_code,city_id。表3-3 縣級信息表列名數(shù)據(jù)類型可否為空屬性名稱說明IdInteger否Id自增長主鍵County_nameText否County_name/County_codetext否

28、County_code/city_idinteger否city_id外鍵4 設計思想與實現(xiàn)整個氣象軟件是我自己獨立設計完成的雖然簡單功能點并不多,技術要求也不高,但想實現(xiàn)卻需要用到UI、網(wǎng)絡、定位、數(shù)據(jù)存儲、服務等技術,算是比較考驗綜合應用能力。也算是重溫了基礎知識點和四大組件。4.1 省市縣三級聯(lián)動模塊省界面如圖4.1:圖4-1 省界面市界面如圖4.2:圖4-2 市界面縣區(qū)界面如圖4.3:圖4-3 省界面全國的省市縣數(shù)據(jù)都是從服務器端獲取到的,由于服務器返回的省市縣數(shù)據(jù)都是“代號|城市,代號|城市”這種格式,所以要需要進行解析處理。處理完后,就可以編寫界面,主要是通過ListView將省市縣數(shù)據(jù)顯示在其中。接著是配合適配器查詢省市縣,優(yōu)先從數(shù)據(jù)庫中查詢,沒有再從服務器端獲取,一般第一次初始化都是要從服務器端獲取。最后通過返回主線程進行UI控件處理就可以完成以上效果。4.2 主界面模塊

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經(jīng)權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
  • 6. 下載文件中如有侵權或不適當內容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論