(河南省氣象服務中心, 鄭州 450003)
隨著移動網絡技術的迅速的發展,通過移動智能終端獲取天氣預報信息已經成為很多用戶掌握氣象的方式,尤其是對氣象信息較為敏感的行業工作者,如農業、電力、水利等。用戶使用智能終端的操作系統以Android為主流應用對象,為此設計基于Android的天氣預報系統具有很好的應用價值[1]。在天氣預報系統的開發中分為客戶端和服務端,其中客戶端是指面向廣大用戶移動終端設備應用的APP。因為移動智能終端主要以手機為主,其可視化界面小,這就要求客戶端設計具有較強的UI帶入感,并能夠簡化和引導用戶快速掌握天氣預報客戶端的使用方法和流程[2],這對于設計師提出了更高的要求,所以針對天氣預報客戶端設計的研究就非常有現實意義。
Android是基于Linux平臺建立的具有源代碼開放特征的移動設備應用操作系統,它由Google公司提供的Dalvik操作運行[3],Android系統架構分為四層結構。Android系統主要包含Applications、Applications Framework、Libraries、Linux Kernel層。Applications是安卓系統的應用程序端,基于Android SDK開發,用于四大組件和網絡應用;Libraries為函數庫,以中間件的嵌入系統中;Applications Framework基于AOSP(Android Open Source Project)環境開發,用于系統的應用開發;Android runtime為運行時,是Android運行環境ART虛擬機;Linux Kernel為內核,采用Linux平臺編寫的底層環境。Android系統架構如圖1所示[4]。

圖1 Android系統架構
Android系統架構由上到下分別應用程序層、應用程序框架層、系統運行庫層和Linux內核層[5],其中應用程序層包含了移動設備所具有所有功能的應用程序,如電話撥號程序、短信編輯程序、Web瀏覽程序、衛星定位程序等,這使得Android應用程序的開發更加的靈活、個性化。應用程序框架層以一種簡化組件的方式為用戶提供應用程序快速開發的方案,用戶在程序開發中只需調用組件便可以實現組件功能,提高程序開發的效率。系統運行庫層包括系統庫和Android運行時,系統庫通過Surface Manager、Media Framework支撐起應用程序的框架,可以讓框架層與內核層之間進行互動;Android運行時通過核心庫進行API應用和Dalvik虛擬機進行實例應用。Linux內核層進行內存、進程、網絡協議等方面的管理[6]。
Android應用程序采用Java語言編寫,使用Android SDK工具將設計的程序連同數據和資源包一并打包成一個以.apk為后綴名的文件安裝在Android操作系統設備上。所安裝的Android應用程序在Android系統中都有一個屬于程序本身的“安全沙盒”,程序在運行時只能夠訪問到所需要的設備組件,進而保護系統的安全。
Android系統包含了Activities、Services、Content Provider、Broadcast receivers四大組件。Activities應用組件是一個人機交互的組件,它能夠將每一個Activity都賦予一個窗口,用來執行通話、拍照、程序應用等操作,窗口可調整懸浮狀態,用戶根據需要選擇放大某一Activity進行應用,新啟動的程序會被賦予一個main Activity,此時原來的Activity被暫停保留在back stack中。Services組件是用來實現程序后臺運行的組件,在用戶操作某一Activity時,需要在后臺運行其他的一些程序,但又無需跟運行程序進行交互,這時便通過Service隱藏在后臺為用戶提供服務。Content Provider組件為用戶提供了程序間的數據共享服務,通過Content Provider組件可以存儲并檢索數據,向應用程序提供數據接口。Broadcast receivers組件是一個接收事件聲明信息的組件,可以將應用程序發起的事件廣播通知給用戶。
天氣預報系統既有日常常用的天氣服務項目,也有針對于專業人士提供的氣象服務項目。為此在天氣預報客戶端的功能劃分方面,既要兼顧日常天氣服務功能也要兼顧專業氣象服務功能。
天氣預報客戶端可以通過氣象服務數據庫中獲取各個城市7天內的天氣預報、實況信息、預警信息和生活提示等[7],根據天氣預報的信息類型和系統操作的應用內容進行天氣預報客戶端功能的劃分,客戶端功能包括常規的天氣預報服務功能、天氣預警服務功能、專業氣象服務功能和輔助服務功能。每一個功能模塊下都按照用戶需要獲取天氣預報的應用而劃分出子功能模塊,便于用戶能夠快速將服務端的氣象數據轉化為簡單易懂的天氣預報信息。天氣預報客戶端總體功能結構如圖2所示。

圖2 天氣預報客戶端總體功能結構
2.2.1 天氣預報功能設計
天氣預報功能下設3個子功能,城市天氣實況、一周天氣預報及旅游景點預報。城市天氣實況通過用戶移動客戶端所在位置定位直接定位到移動客戶端所在城市的天氣實況信息,若移動端未開啟衛星定位功能則通過用戶注冊時注冊的手機號碼歸屬地確定移動客戶端所在位置。顯示的信息包括當天的氣溫、濕度、風向風速、最高溫度、最低溫度等信息,信息內容從氣象服務數據庫直接獲取。用戶也可以指定城市查看該城市當天的天氣情況。一周天氣預報功能為用戶提供了一周內每一天的天氣預報信息,包括最高溫、最低溫及天氣現象等。旅游景點預報為用戶提供全國各個城市的旅游景點天氣預報信息,用戶可根據城市的景點查看天氣信息。
2.2.2 天氣預警功能設計
天氣預警功能下設天氣預警信息、預警查詢及防災提醒功能。天氣預警信息顯示極端天氣情況,用戶可以自定義預警接收時段和預警提示音,天氣預警查詢功能為用戶供了全國各地區極端天氣情況的查詢服務。防災提醒功能針對極端天氣的情況為用戶提供防災相關知識。
天氣預警功能是針對用戶進行差異化服務的功能,不同類型的用戶對天氣預警的側重方向不同,為此在系統后端會劃分出例如農業用戶、電力用戶、水利用戶等不同用戶的類型,當用戶注冊系統應用時會根據用戶的選擇自動歸檔用戶所需的預警服務范圍,定向的為用戶提供可靠的、實用的極端天氣信息,幫助用戶解決實際問題。
2.2.3 專業氣象功能設計
專業氣象功能是為氣象管理專業人員提供的應用功能,專業氣象功能下設衛星云圖、雷達圖、雨量圖,可以為專業人士提供氣象動態服務。其中衛星云圖是通過氣象衛星獲得的地球云層覆蓋和地表特征的氣象圖,通過衛星云圖專業人員可以分析氣象活動中的變化位置、強度發展趨勢等。本文所設計的氣象系統其專業氣象功能會通過氣象衛星數據庫自動獲取6張衛星云圖,讓用戶了解衛星云圖的變化情況。雷達圖是通過氣象雷達發射器發射的天氣探測信息所獲得的回波圖像,雷達回波圖可以通過顏色回波的顏色變化判斷降雨范圍、降雨量和降雨發展趨勢。雷達圖的設計是采用自動下載各用于所在城市的天氣雷達圖為用戶提供雷達圖的變化情況。雨量圖為用戶提供1、3、6、12、24、48和72小時的雨量圖,讓用戶了解城市雨量的變化情況。
2.2.4 輔助服務功能設計
輔助服務功能為用戶出行、穿衣提供服務信息和信息反饋通道,為此設計服務輔助功能包含交通氣象服務功能、穿衣指數功能、信息反饋功能。其中交通氣象服務功能為用戶提供各個高速公路的氣象情況;穿衣指數為用戶提供城市溫度變化對應的穿衣厚度,穿衣指數由薄到厚分為8個等級,指導用戶外出穿衣;信息反饋功能為用戶與服務商進行信息溝通開辟通道,用戶可以將系統使用反饋提交給運營商。
基于Android的天氣預報客戶端通信接口分為數據源接口和用戶訪問接口兩個部分[8]。數據源接口是客戶端獲取天氣信息的接口,它通過連接氣象服務數據庫獲得氣象數據顯示在客戶端。用戶訪問接口是用戶訪問客戶端時通過用戶注冊自動生成用戶關聯關系的通信接口。例如:客戶端向氣象服務數據庫獲取天氣數據,基于Android的天氣預報客戶端以XML消息格式向氣象服務數據庫發送請求包獲取請求信息:
//實時天氣信息(0為實時天氣信息,1為一周內天氣信息)
得到的應答顯示在客戶端信息表現為:
若需要獲得一周內的天氣信息則
天氣預報客戶端設計完成需要對功能的銜接關系,布局的規范性和界面可視化效果進行實驗,檢查客戶端每一項功能的完整性、流暢性和規范性。
用戶使用天氣預報客戶端時需要先下載并安裝客戶端APP,首次使用用戶需要填寫手機號碼進行驗證,注冊成功后用戶進入系統會顯示用戶所在城市的天氣實時信息,在操作界面的下方顯示系統的應用功能。選擇不同的應用功能會對應顯示功能對應的內容。客戶端主要功能界面如圖3所示。

圖3 客戶端主要功能界面
3.1.1 天氣預報功能實驗
用戶選擇天氣預報功能可以選擇城市天氣實況、一周天氣預報和旅游景點預報3個子分類,進入城市天氣實況功能顯示客戶所在城市當天的天氣信息,用戶可以根據需求選擇城市,跳轉到各個城市天氣實況信息;客戶點擊一周天氣預報顯示客戶所在城市一周內的信息,用戶可以通過滑動界面選擇顯示日期;用戶點擊旅游景點預報會讓用戶選擇旅游景區,選擇景區后對應顯示景區所在地區的天氣實況信息。
3.1.2 天氣預警功能實驗
客戶選擇天氣預警功能顯示當前天氣預警信息,若無預警則預警信息內容為空;用戶如果查詢天氣預警信息可選擇天氣預警查詢功能,通過選擇城市、選擇時間來查看預警信息;若客戶端顯示天氣預警信息,則在防災提醒功能中對極端天氣提出防范措施。
3.1.3 專業氣象功能實驗
用戶點擊進入專業氣象功能可以選擇衛星云圖、雷達圖和雨量圖來對應查看當前天氣的情況,信息以圖表的形式呈現給用戶可以幫助用戶分析天氣情況的變化。
3.1.4 輔助服務功能實驗
用戶點擊進入輔助服務功能可以查看各個高速公路的交通氣象信息,還可以查看當前城市穿衣情況,便于為用戶出行提供參考。用戶可以通過信息反饋功能將建議發送給運營商,以便于運營商能夠更好的為用戶服務。
天氣預報客戶端的應用與后臺服務系統功能一一對應,分別對天氣預報系統的功能進行應用,分析系統的實用性。
3.2.1 天氣預報功能應用分析
操作天氣預報系統的天氣預報功能,調用所在城市天氣實況,此時顯示城市當前的天氣情況。選擇上一周的天氣預報功能分別顯示上周星期一至星期日每天的天氣情況。選擇旅游景點預報,列出省、市所包含的所有景點,分別選擇一個省市的區域,選擇該省市景點,此時顯示該景點的天氣情況。通過應用可以看出,天氣預報客戶端能夠按照既定的要求調取服務器的天氣信息顯示在客戶端。
3.2.2 天氣預警功能應用分析
操作天氣預報系統的天氣預警功能,發現當前沒有預警信息,查看以往天氣的預警信息,按照時間距當前時間的近遠列出了所有預警信息。選擇省市進行城市天氣預警信息定位,顯示所選擇的城市天氣預警信息,選擇天氣預警信息所對應的防災提醒功能,顯示了防災提示。通過該功能的應用可以看出,天氣預警功能可以及時的提供用戶極端天氣,并指導用戶做出應對措施。
3.2.3 專業氣象功能應用分析
操作天氣預報系統的專業氣象功能,分別查看衛星云圖、雷達圖和雨量圖,調用服務器端圖像數據顯示出了專業的圖像。通過專業氣象功能可以查看到專業的氣象信息,可以通過該圖像分析出天氣的發展趨勢,為未來的天氣分析做出預測。
3.2.4 輔助服務功能應用分析
操作天氣預報系統的輔助服務功能,點擊交通氣象服務功能顯示當前城市各條高速公路的天氣情況信息,選擇不同省市對應顯示連接的高速公路天氣情況。點擊穿衣指數顯示當前城市適合穿戴的衣物,選擇不同省市對應顯示該城市適合穿戴的衣物。點擊信息反饋功能彈出留言框,輸入留言后點擊發送提示信息發送成功。
1) 基于Android的天氣預報系統是一個非常實用的日常生活工具,在天氣預報客戶端的設計方面充分考慮應用設備的適用性和用戶使用的流暢性進行規劃,保證客戶端的應用可以滿足用戶的使用習慣。
2) 在客戶端功能上充分考慮用戶的需求劃分出功能模塊,包括天氣預報、天氣預警、專業氣象和輔助服務功能,讓客戶可以快速準確的獲得所需的天氣信息。
3) 天氣預報客戶端的通信既包括與氣象服務數據庫進行通信獲取氣象服務信息,也包括與用戶進行信息交互的信息,為此通信接口的設計可以保證信息通信的完整性和交互的準確性。
4) 通過系統的應用分析,本文所設計的天氣預報客戶端基本可以滿足大多數用戶對天氣預報服務的需求,在功能的使用方面具有較好的流暢性。