(河南省氣象服務(wù)中心, 鄭州 450003)
隨著移動網(wǎng)絡(luò)技術(shù)的迅速的發(fā)展,通過移動智能終端獲取天氣預(yù)報(bào)信息已經(jīng)成為很多用戶掌握氣象的方式,尤其是對氣象信息較為敏感的行業(yè)工作者,如農(nóng)業(yè)、電力、水利等。用戶使用智能終端的操作系統(tǒng)以Android為主流應(yīng)用對象,為此設(shè)計(jì)基于Android的天氣預(yù)報(bào)系統(tǒng)具有很好的應(yīng)用價(jià)值[1]。在天氣預(yù)報(bào)系統(tǒng)的開發(fā)中分為客戶端和服務(wù)端,其中客戶端是指面向廣大用戶移動終端設(shè)備應(yīng)用的APP。因?yàn)橐苿又悄芙K端主要以手機(jī)為主,其可視化界面小,這就要求客戶端設(shè)計(jì)具有較強(qiáng)的UI帶入感,并能夠簡化和引導(dǎo)用戶快速掌握天氣預(yù)報(bào)客戶端的使用方法和流程[2],這對于設(shè)計(jì)師提出了更高的要求,所以針對天氣預(yù)報(bào)客戶端設(shè)計(jì)的研究就非常有現(xiàn)實(shí)意義。
Android是基于Linux平臺建立的具有源代碼開放特征的移動設(shè)備應(yīng)用操作系統(tǒng),它由Google公司提供的Dalvik操作運(yùn)行[3],Android系統(tǒng)架構(gòu)分為四層結(jié)構(gòu)。Android系統(tǒng)主要包含Applications、Applications Framework、Libraries、Linux Kernel層。Applications是安卓系統(tǒng)的應(yīng)用程序端,基于Android SDK開發(fā),用于四大組件和網(wǎng)絡(luò)應(yīng)用;Libraries為函數(shù)庫,以中間件的嵌入系統(tǒng)中;Applications Framework基于AOSP(Android Open Source Project)環(huán)境開發(fā),用于系統(tǒng)的應(yīng)用開發(fā);Android runtime為運(yùn)行時(shí),是Android運(yùn)行環(huán)境ART虛擬機(jī);Linux Kernel為內(nèi)核,采用Linux平臺編寫的底層環(huán)境。Android系統(tǒng)架構(gòu)如圖1所示[4]。
圖1 Android系統(tǒng)架構(gòu)
Android系統(tǒng)架構(gòu)由上到下分別應(yīng)用程序?qū)?、?yīng)用程序框架層、系統(tǒng)運(yùn)行庫層和Linux內(nèi)核層[5],其中應(yīng)用程序?qū)影艘苿釉O(shè)備所具有所有功能的應(yīng)用程序,如電話撥號程序、短信編輯程序、Web瀏覽程序、衛(wèi)星定位程序等,這使得Android應(yīng)用程序的開發(fā)更加的靈活、個(gè)性化。應(yīng)用程序框架層以一種簡化組件的方式為用戶提供應(yīng)用程序快速開發(fā)的方案,用戶在程序開發(fā)中只需調(diào)用組件便可以實(shí)現(xiàn)組件功能,提高程序開發(fā)的效率。系統(tǒng)運(yùn)行庫層包括系統(tǒng)庫和Android運(yùn)行時(shí),系統(tǒng)庫通過Surface Manager、Media Framework支撐起應(yīng)用程序的框架,可以讓框架層與內(nèi)核層之間進(jìn)行互動;Android運(yùn)行時(shí)通過核心庫進(jìn)行API應(yīng)用和Dalvik虛擬機(jī)進(jìn)行實(shí)例應(yīng)用。Linux內(nèi)核層進(jìn)行內(nèi)存、進(jìn)程、網(wǎng)絡(luò)協(xié)議等方面的管理[6]。
Android應(yīng)用程序采用Java語言編寫,使用Android SDK工具將設(shè)計(jì)的程序連同數(shù)據(jù)和資源包一并打包成一個(gè)以.apk為后綴名的文件安裝在Android操作系統(tǒng)設(shè)備上。所安裝的Android應(yīng)用程序在Android系統(tǒng)中都有一個(gè)屬于程序本身的“安全沙盒”,程序在運(yùn)行時(shí)只能夠訪問到所需要的設(shè)備組件,進(jìn)而保護(hù)系統(tǒng)的安全。
Android系統(tǒng)包含了Activities、Services、Content Provider、Broadcast receivers四大組件。Activities應(yīng)用組件是一個(gè)人機(jī)交互的組件,它能夠?qū)⒚恳粋€(gè)Activity都賦予一個(gè)窗口,用來執(zhí)行通話、拍照、程序應(yīng)用等操作,窗口可調(diào)整懸浮狀態(tài),用戶根據(jù)需要選擇放大某一Activity進(jìn)行應(yīng)用,新啟動的程序會被賦予一個(gè)main Activity,此時(shí)原來的Activity被暫停保留在back stack中。Services組件是用來實(shí)現(xiàn)程序后臺運(yùn)行的組件,在用戶操作某一Activity時(shí),需要在后臺運(yùn)行其他的一些程序,但又無需跟運(yùn)行程序進(jìn)行交互,這時(shí)便通過Service隱藏在后臺為用戶提供服務(wù)。Content Provider組件為用戶提供了程序間的數(shù)據(jù)共享服務(wù),通過Content Provider組件可以存儲并檢索數(shù)據(jù),向應(yīng)用程序提供數(shù)據(jù)接口。Broadcast receivers組件是一個(gè)接收事件聲明信息的組件,可以將應(yīng)用程序發(fā)起的事件廣播通知給用戶。
天氣預(yù)報(bào)系統(tǒng)既有日常常用的天氣服務(wù)項(xiàng)目,也有針對于專業(yè)人士提供的氣象服務(wù)項(xiàng)目。為此在天氣預(yù)報(bào)客戶端的功能劃分方面,既要兼顧日常天氣服務(wù)功能也要兼顧專業(yè)氣象服務(wù)功能。
天氣預(yù)報(bào)客戶端可以通過氣象服務(wù)數(shù)據(jù)庫中獲取各個(gè)城市7天內(nèi)的天氣預(yù)報(bào)、實(shí)況信息、預(yù)警信息和生活提示等[7],根據(jù)天氣預(yù)報(bào)的信息類型和系統(tǒng)操作的應(yīng)用內(nèi)容進(jìn)行天氣預(yù)報(bào)客戶端功能的劃分,客戶端功能包括常規(guī)的天氣預(yù)報(bào)服務(wù)功能、天氣預(yù)警服務(wù)功能、專業(yè)氣象服務(wù)功能和輔助服務(wù)功能。每一個(gè)功能模塊下都按照用戶需要獲取天氣預(yù)報(bào)的應(yīng)用而劃分出子功能模塊,便于用戶能夠快速將服務(wù)端的氣象數(shù)據(jù)轉(zhuǎn)化為簡單易懂的天氣預(yù)報(bào)信息。天氣預(yù)報(bào)客戶端總體功能結(jié)構(gòu)如圖2所示。
圖2 天氣預(yù)報(bào)客戶端總體功能結(jié)構(gòu)
2.2.1 天氣預(yù)報(bào)功能設(shè)計(jì)
天氣預(yù)報(bào)功能下設(shè)3個(gè)子功能,城市天氣實(shí)況、一周天氣預(yù)報(bào)及旅游景點(diǎn)預(yù)報(bào)。城市天氣實(shí)況通過用戶移動客戶端所在位置定位直接定位到移動客戶端所在城市的天氣實(shí)況信息,若移動端未開啟衛(wèi)星定位功能則通過用戶注冊時(shí)注冊的手機(jī)號碼歸屬地確定移動客戶端所在位置。顯示的信息包括當(dāng)天的氣溫、濕度、風(fēng)向風(fēng)速、最高溫度、最低溫度等信息,信息內(nèi)容從氣象服務(wù)數(shù)據(jù)庫直接獲取。用戶也可以指定城市查看該城市當(dāng)天的天氣情況。一周天氣預(yù)報(bào)功能為用戶提供了一周內(nèi)每一天的天氣預(yù)報(bào)信息,包括最高溫、最低溫及天氣現(xiàn)象等。旅游景點(diǎn)預(yù)報(bào)為用戶提供全國各個(gè)城市的旅游景點(diǎn)天氣預(yù)報(bào)信息,用戶可根據(jù)城市的景點(diǎn)查看天氣信息。
2.2.2 天氣預(yù)警功能設(shè)計(jì)
天氣預(yù)警功能下設(shè)天氣預(yù)警信息、預(yù)警查詢及防災(zāi)提醒功能。天氣預(yù)警信息顯示極端天氣情況,用戶可以自定義預(yù)警接收時(shí)段和預(yù)警提示音,天氣預(yù)警查詢功能為用戶供了全國各地區(qū)極端天氣情況的查詢服務(wù)。防災(zāi)提醒功能針對極端天氣的情況為用戶提供防災(zāi)相關(guān)知識。
天氣預(yù)警功能是針對用戶進(jìn)行差異化服務(wù)的功能,不同類型的用戶對天氣預(yù)警的側(cè)重方向不同,為此在系統(tǒng)后端會劃分出例如農(nóng)業(yè)用戶、電力用戶、水利用戶等不同用戶的類型,當(dāng)用戶注冊系統(tǒng)應(yīng)用時(shí)會根據(jù)用戶的選擇自動歸檔用戶所需的預(yù)警服務(wù)范圍,定向的為用戶提供可靠的、實(shí)用的極端天氣信息,幫助用戶解決實(shí)際問題。
2.2.3 專業(yè)氣象功能設(shè)計(jì)
專業(yè)氣象功能是為氣象管理專業(yè)人員提供的應(yīng)用功能,專業(yè)氣象功能下設(shè)衛(wèi)星云圖、雷達(dá)圖、雨量圖,可以為專業(yè)人士提供氣象動態(tài)服務(wù)。其中衛(wèi)星云圖是通過氣象衛(wèi)星獲得的地球云層覆蓋和地表特征的氣象圖,通過衛(wèi)星云圖專業(yè)人員可以分析氣象活動中的變化位置、強(qiáng)度發(fā)展趨勢等。本文所設(shè)計(jì)的氣象系統(tǒng)其專業(yè)氣象功能會通過氣象衛(wèi)星數(shù)據(jù)庫自動獲取6張衛(wèi)星云圖,讓用戶了解衛(wèi)星云圖的變化情況。雷達(dá)圖是通過氣象雷達(dá)發(fā)射器發(fā)射的天氣探測信息所獲得的回波圖像,雷達(dá)回波圖可以通過顏色回波的顏色變化判斷降雨范圍、降雨量和降雨發(fā)展趨勢。雷達(dá)圖的設(shè)計(jì)是采用自動下載各用于所在城市的天氣雷達(dá)圖為用戶提供雷達(dá)圖的變化情況。雨量圖為用戶提供1、3、6、12、24、48和72小時(shí)的雨量圖,讓用戶了解城市雨量的變化情況。
2.2.4 輔助服務(wù)功能設(shè)計(jì)
輔助服務(wù)功能為用戶出行、穿衣提供服務(wù)信息和信息反饋通道,為此設(shè)計(jì)服務(wù)輔助功能包含交通氣象服務(wù)功能、穿衣指數(shù)功能、信息反饋功能。其中交通氣象服務(wù)功能為用戶提供各個(gè)高速公路的氣象情況;穿衣指數(shù)為用戶提供城市溫度變化對應(yīng)的穿衣厚度,穿衣指數(shù)由薄到厚分為8個(gè)等級,指導(dǎo)用戶外出穿衣;信息反饋功能為用戶與服務(wù)商進(jìn)行信息溝通開辟通道,用戶可以將系統(tǒng)使用反饋提交給運(yùn)營商。
基于Android的天氣預(yù)報(bào)客戶端通信接口分為數(shù)據(jù)源接口和用戶訪問接口兩個(gè)部分[8]。數(shù)據(jù)源接口是客戶端獲取天氣信息的接口,它通過連接氣象服務(wù)數(shù)據(jù)庫獲得氣象數(shù)據(jù)顯示在客戶端。用戶訪問接口是用戶訪問客戶端時(shí)通過用戶注冊自動生成用戶關(guān)聯(lián)關(guān)系的通信接口。例如:客戶端向氣象服務(wù)數(shù)據(jù)庫獲取天氣數(shù)據(jù),基于Android的天氣預(yù)報(bào)客戶端以XML消息格式向氣象服務(wù)數(shù)據(jù)庫發(fā)送請求包獲取請求信息:
//實(shí)時(shí)天氣信息(0為實(shí)時(shí)天氣信息,1為一周內(nèi)天氣信息)
得到的應(yīng)答顯示在客戶端信息表現(xiàn)為:
若需要獲得一周內(nèi)的天氣信息則
天氣預(yù)報(bào)客戶端設(shè)計(jì)完成需要對功能的銜接關(guān)系,布局的規(guī)范性和界面可視化效果進(jìn)行實(shí)驗(yàn),檢查客戶端每一項(xiàng)功能的完整性、流暢性和規(guī)范性。
用戶使用天氣預(yù)報(bào)客戶端時(shí)需要先下載并安裝客戶端APP,首次使用用戶需要填寫手機(jī)號碼進(jìn)行驗(yàn)證,注冊成功后用戶進(jìn)入系統(tǒng)會顯示用戶所在城市的天氣實(shí)時(shí)信息,在操作界面的下方顯示系統(tǒng)的應(yīng)用功能。選擇不同的應(yīng)用功能會對應(yīng)顯示功能對應(yīng)的內(nèi)容??蛻舳酥饕δ芙缑嫒鐖D3所示。
圖3 客戶端主要功能界面
3.1.1 天氣預(yù)報(bào)功能實(shí)驗(yàn)
用戶選擇天氣預(yù)報(bào)功能可以選擇城市天氣實(shí)況、一周天氣預(yù)報(bào)和旅游景點(diǎn)預(yù)報(bào)3個(gè)子分類,進(jìn)入城市天氣實(shí)況功能顯示客戶所在城市當(dāng)天的天氣信息,用戶可以根據(jù)需求選擇城市,跳轉(zhuǎn)到各個(gè)城市天氣實(shí)況信息;客戶點(diǎn)擊一周天氣預(yù)報(bào)顯示客戶所在城市一周內(nèi)的信息,用戶可以通過滑動界面選擇顯示日期;用戶點(diǎn)擊旅游景點(diǎn)預(yù)報(bào)會讓用戶選擇旅游景區(qū),選擇景區(qū)后對應(yīng)顯示景區(qū)所在地區(qū)的天氣實(shí)況信息。
3.1.2 天氣預(yù)警功能實(shí)驗(yàn)
客戶選擇天氣預(yù)警功能顯示當(dāng)前天氣預(yù)警信息,若無預(yù)警則預(yù)警信息內(nèi)容為空;用戶如果查詢天氣預(yù)警信息可選擇天氣預(yù)警查詢功能,通過選擇城市、選擇時(shí)間來查看預(yù)警信息;若客戶端顯示天氣預(yù)警信息,則在防災(zāi)提醒功能中對極端天氣提出防范措施。
3.1.3 專業(yè)氣象功能實(shí)驗(yàn)
用戶點(diǎn)擊進(jìn)入專業(yè)氣象功能可以選擇衛(wèi)星云圖、雷達(dá)圖和雨量圖來對應(yīng)查看當(dāng)前天氣的情況,信息以圖表的形式呈現(xiàn)給用戶可以幫助用戶分析天氣情況的變化。
3.1.4 輔助服務(wù)功能實(shí)驗(yàn)
用戶點(diǎn)擊進(jìn)入輔助服務(wù)功能可以查看各個(gè)高速公路的交通氣象信息,還可以查看當(dāng)前城市穿衣情況,便于為用戶出行提供參考。用戶可以通過信息反饋功能將建議發(fā)送給運(yùn)營商,以便于運(yùn)營商能夠更好的為用戶服務(wù)。
天氣預(yù)報(bào)客戶端的應(yīng)用與后臺服務(wù)系統(tǒng)功能一一對應(yīng),分別對天氣預(yù)報(bào)系統(tǒng)的功能進(jìn)行應(yīng)用,分析系統(tǒng)的實(shí)用性。
3.2.1 天氣預(yù)報(bào)功能應(yīng)用分析
操作天氣預(yù)報(bào)系統(tǒng)的天氣預(yù)報(bào)功能,調(diào)用所在城市天氣實(shí)況,此時(shí)顯示城市當(dāng)前的天氣情況。選擇上一周的天氣預(yù)報(bào)功能分別顯示上周星期一至星期日每天的天氣情況。選擇旅游景點(diǎn)預(yù)報(bào),列出省、市所包含的所有景點(diǎn),分別選擇一個(gè)省市的區(qū)域,選擇該省市景點(diǎn),此時(shí)顯示該景點(diǎn)的天氣情況。通過應(yīng)用可以看出,天氣預(yù)報(bào)客戶端能夠按照既定的要求調(diào)取服務(wù)器的天氣信息顯示在客戶端。
3.2.2 天氣預(yù)警功能應(yīng)用分析
操作天氣預(yù)報(bào)系統(tǒng)的天氣預(yù)警功能,發(fā)現(xiàn)當(dāng)前沒有預(yù)警信息,查看以往天氣的預(yù)警信息,按照時(shí)間距當(dāng)前時(shí)間的近遠(yuǎn)列出了所有預(yù)警信息。選擇省市進(jìn)行城市天氣預(yù)警信息定位,顯示所選擇的城市天氣預(yù)警信息,選擇天氣預(yù)警信息所對應(yīng)的防災(zāi)提醒功能,顯示了防災(zāi)提示。通過該功能的應(yīng)用可以看出,天氣預(yù)警功能可以及時(shí)的提供用戶極端天氣,并指導(dǎo)用戶做出應(yīng)對措施。
3.2.3 專業(yè)氣象功能應(yīng)用分析
操作天氣預(yù)報(bào)系統(tǒng)的專業(yè)氣象功能,分別查看衛(wèi)星云圖、雷達(dá)圖和雨量圖,調(diào)用服務(wù)器端圖像數(shù)據(jù)顯示出了專業(yè)的圖像。通過專業(yè)氣象功能可以查看到專業(yè)的氣象信息,可以通過該圖像分析出天氣的發(fā)展趨勢,為未來的天氣分析做出預(yù)測。
3.2.4 輔助服務(wù)功能應(yīng)用分析
操作天氣預(yù)報(bào)系統(tǒng)的輔助服務(wù)功能,點(diǎn)擊交通氣象服務(wù)功能顯示當(dāng)前城市各條高速公路的天氣情況信息,選擇不同省市對應(yīng)顯示連接的高速公路天氣情況。點(diǎn)擊穿衣指數(shù)顯示當(dāng)前城市適合穿戴的衣物,選擇不同省市對應(yīng)顯示該城市適合穿戴的衣物。點(diǎn)擊信息反饋功能彈出留言框,輸入留言后點(diǎn)擊發(fā)送提示信息發(fā)送成功。
1) 基于Android的天氣預(yù)報(bào)系統(tǒng)是一個(gè)非常實(shí)用的日常生活工具,在天氣預(yù)報(bào)客戶端的設(shè)計(jì)方面充分考慮應(yīng)用設(shè)備的適用性和用戶使用的流暢性進(jìn)行規(guī)劃,保證客戶端的應(yīng)用可以滿足用戶的使用習(xí)慣。
2) 在客戶端功能上充分考慮用戶的需求劃分出功能模塊,包括天氣預(yù)報(bào)、天氣預(yù)警、專業(yè)氣象和輔助服務(wù)功能,讓客戶可以快速準(zhǔn)確的獲得所需的天氣信息。
3) 天氣預(yù)報(bào)客戶端的通信既包括與氣象服務(wù)數(shù)據(jù)庫進(jìn)行通信獲取氣象服務(wù)信息,也包括與用戶進(jìn)行信息交互的信息,為此通信接口的設(shè)計(jì)可以保證信息通信的完整性和交互的準(zhǔn)確性。
4) 通過系統(tǒng)的應(yīng)用分析,本文所設(shè)計(jì)的天氣預(yù)報(bào)客戶端基本可以滿足大多數(shù)用戶對天氣預(yù)報(bào)服務(wù)的需求,在功能的使用方面具有較好的流暢性。