劉永濤
摘 要:在如今這個(gè)智能手機(jī)系統(tǒng)群雄紛爭的時(shí)候,Android的最大特點(diǎn)是其開放性體系架構(gòu),不僅具有非常好的開發(fā)、調(diào)試環(huán)境,而且還支持各種可擴(kuò)展的用戶體驗(yàn),包括豐富的圖形組件、多媒體支持功能以及強(qiáng)大的瀏覽器。因此,對(duì)于軟件從業(yè)人員來說,Android平臺(tái)具有無限的吸引力。本文就在分析討論Android手機(jī)軟件開發(fā)技術(shù)原理的基礎(chǔ)上,開發(fā)出能為用戶提供更好的基于Android平臺(tái)的手機(jī)氣象軟件。
關(guān)鍵詞:android;氣象軟件;智能手機(jī)平臺(tái)
一、研究內(nèi)容
Android平臺(tái)手機(jī)氣象軟件是基于Android手機(jī)平臺(tái),運(yùn)用Java語言,從Google上獲取天氣預(yù)報(bào)信息,開發(fā)出針對(duì)使用Android平臺(tái)的手機(jī)天氣預(yù)報(bào)系統(tǒng)。讓廣大公眾能夠在第一時(shí)間方便且快捷地獲取最新的氣象預(yù)報(bào)(預(yù)警)信息,以便提前預(yù)防,把氣象災(zāi)害造成的損失降到最低。同時(shí)也可以強(qiáng)化氣象公共服務(wù)的職能,完善公共服務(wù)體系、改善公共服務(wù)手段、增加公共服務(wù)產(chǎn)品、提高公共服務(wù)質(zhì)量,更好地發(fā)揮了氣象事業(yè)對(duì)經(jīng)濟(jì)社會(huì)發(fā)展的現(xiàn)實(shí)性作用。Android的上層應(yīng)用程序是用Java語言開發(fā),同時(shí)還需要基于Dalvik虛擬機(jī),所以,Google公司推薦使用主流的Java繼承開發(fā)環(huán)境Eclipse。只有Eclipse還不夠,因?yàn)槭鞘褂肑ava語言進(jìn)行開發(fā),還應(yīng)該有由SUN公司提供的Java SDK(其中包括JRE:Java Runtime Environment)。此外,Android的應(yīng)用程序開發(fā)和Java開發(fā)有較大區(qū)別的,所以還需要有Google提供的Android SDK。同時(shí),還需要在Eclipse安裝ADT,為Android開發(fā)提供開發(fā)工具的升級(jí)或者變更,是Eclipse下開發(fā)工具的升級(jí)下載的工具。
二、程序概要設(shè)計(jì)
根據(jù)需求分析可以知道,應(yīng)用程序應(yīng)包含三個(gè)主要的用戶界面,這里需要進(jìn)一步分析每個(gè)用戶界面中應(yīng)該包括哪些顯示內(nèi)容。在“設(shè)置頁面”中,需要對(duì)要顯示天氣預(yù)報(bào)的城市及更新頻率進(jìn)行設(shè)置。在“顯示頁面”中,顯示當(dāng)前的天氣狀況,包括城市名稱、溫度、濕度、風(fēng)向、雨雪情況和獲取數(shù)據(jù)時(shí)間等信息。在“詳細(xì)頁面”動(dòng)態(tài)顯示當(dāng)前天氣情況,還要顯示未來四天的天氣情況。 本軟件中有兩部分?jǐn)?shù)據(jù)需要存儲(chǔ),一個(gè)是顯示頁面的數(shù)據(jù),另一個(gè)詳細(xì)頁面的數(shù)據(jù)。因此選擇SQLite數(shù)據(jù)庫作為存儲(chǔ)數(shù)據(jù)的方法,建立數(shù)據(jù)庫forcasts.db,并且建立兩張表weather_forcastt和weather_widget,分別存儲(chǔ)顯示頁面的數(shù)據(jù)和詳細(xì)頁面的數(shù)據(jù)。從功能需求上分析可以看出,整個(gè)應(yīng)用程序應(yīng)劃分為4個(gè)模塊,分別是程序啟動(dòng)、用戶界面、后臺(tái)服務(wù)和數(shù)據(jù)庫適配器。從模塊結(jié)構(gòu)圖中不難看出,后臺(tái)服務(wù)是整個(gè)應(yīng)用程序的核心,主要是“數(shù)據(jù)獲取模塊”,負(fù)責(zé)周期性的從Google獲取天氣信息。后臺(tái)服務(wù)在程序啟動(dòng)時(shí)就由AppWidgetProvider啟動(dòng),也可由用戶界面通過startService()進(jìn)行啟動(dòng),啟動(dòng)后的后臺(tái)服務(wù)將一直保持運(yùn)行狀態(tài)。用戶界面從數(shù)據(jù)庫中獲取天氣信息,而沒有直接通過網(wǎng)絡(luò)訪問Google的天氣數(shù)據(jù)。之所以這么實(shí)際,一方面可以避免因網(wǎng)絡(luò)通信不暢造成界面失去響應(yīng);另一方面,后臺(tái)服務(wù)可以及時(shí)更新數(shù)據(jù),以保證數(shù)據(jù)的準(zhǔn)確性。數(shù)據(jù)庫適配器封裝了所有對(duì)SQLite數(shù)據(jù)庫操作的方法,用戶界面和后臺(tái)服務(wù)會(huì)調(diào)用它來實(shí)現(xiàn)數(shù)據(jù)庫操作。在完成用戶界面設(shè)計(jì)、數(shù)據(jù)庫設(shè)計(jì)和模塊設(shè)計(jì)后,至此程序設(shè)計(jì)階段基本完成
三、結(jié)語
本軟件是一個(gè)應(yīng)用程序,啟動(dòng)程序后可以進(jìn)行城市、更新頻率的設(shè)置,可以通過圖片和文字顯示當(dāng)前和未來的天氣狀況,包括溫度、濕度、風(fēng)向和雨雪情況等。這些天氣數(shù)據(jù)是通過后臺(tái)服務(wù)獲取的,這個(gè)后臺(tái)服務(wù)可以按照一定時(shí)間間隔,從Google上獲取天氣預(yù)報(bào)信息,并將天氣信息保存在數(shù)據(jù)庫中。
參考文獻(xiàn):
[1](英)Herbert Schildt Java參考大全(J2SE 5 Edition),清華大學(xué)出版社
[2](美)鮑格斯坦(Bergsten,H.)著,林琪,朱濤江 譯.JSP設(shè)計(jì)(第三版)/ OReilly Java系列[M].北京:中國電力出版社,2004年12月.
[3]王向輝,張國印,沈潔.Android應(yīng)用程序開發(fā).清華大學(xué)出版社,2010年3月.