国产日韩欧美一区二区三区三州_亚洲少妇熟女av_久久久久亚洲av国产精品_波多野结衣网站一区二区_亚洲欧美色片在线91_国产亚洲精品精品国产优播av_日本一区二区三区波多野结衣 _久久国产av不卡

?

基于Android系統(tǒng)的揚州空氣質(zhì)量AQI指數(shù)手機查詢客戶端的設(shè)計與實現(xiàn)

2015-03-19 08:44:10
關(guān)鍵詞:控件揚州空氣質(zhì)量

張 亮 王 超 王 祥

(揚州工業(yè)職業(yè)技術(shù)學(xué)院電氣信息工程學(xué)院 江蘇揚州 225127)

?

基于Android系統(tǒng)的揚州空氣質(zhì)量AQI指數(shù)手機查詢客戶端的設(shè)計與實現(xiàn)

張 亮 王 超 王 祥

(揚州工業(yè)職業(yè)技術(shù)學(xué)院電氣信息工程學(xué)院 江蘇揚州 225127)

隨著城市化進程的加快,中國各地區(qū)的空氣質(zhì)量越來越受人關(guān)注,各地環(huán)保部門紛紛開通了官方網(wǎng)站來發(fā)布實時空氣質(zhì)量指數(shù),但官方發(fā)布的支持手機端的查詢軟件還非常少見。本項目采用java編程語言,在Android平臺實現(xiàn)了一個查詢客戶端來讀取并解析揚州環(huán)保局所發(fā)布的實時空氣指數(shù),供智能手機用戶隨時了解揚州地區(qū)的空氣質(zhì)量,經(jīng)過測試,取得了良好的效果。

Android; 空氣質(zhì)量; AQI

0 引言

近年來,隨著中國工業(yè)化進程的快速發(fā)展以及家用汽車的普及,各大城市空氣質(zhì)量明顯下降,據(jù)研究,PM2.5已經(jīng)取代PM10,成為城市空氣污染的第一因素。PM2.5主要對呼吸系統(tǒng)和心血管系統(tǒng)造成傷害,包括呼吸道受刺激、咳嗽、呼吸困難、降低肺功能、加重哮喘、導(dǎo)致慢性支氣管炎、心律失常、非致命性的心臟病、心肺病患者的過早死。因此,對包括PM2.5在內(nèi)的空氣指數(shù)進行實時查詢并發(fā)出預(yù)警,對敏感人群有十分重要的意義。

1 研究背景

目前,各地環(huán)保部門基本都開設(shè)了官方網(wǎng)站來發(fā)布空氣質(zhì)量實時指數(shù),為了實現(xiàn)動態(tài)效果,這些網(wǎng)頁一般都采用了大量的第三方控件,如Flex、silverlight等技術(shù),手機瀏覽器無法解析這類非標準HTML網(wǎng)頁,必須使用電腦來查看。而隨著智能手機的普及,人們迫切需要通過手機來隨時了解所在地區(qū)的空氣質(zhì)量,但官方網(wǎng)站很少提供手機查詢客戶端下載。目前雖有一些手機APP可以提供包括揚州在內(nèi)的各大城市空氣質(zhì)量指數(shù),但其數(shù)據(jù)來源不明,通過實測發(fā)現(xiàn),很多時候這些軟件顯示的數(shù)據(jù)和官方網(wǎng)站的數(shù)據(jù)并不一致,權(quán)威性和可靠性無法得到保障[1]。

2 客戶端實現(xiàn)

本項目的目標是開發(fā)一個基于Android系統(tǒng)的手機客戶端,通過移動數(shù)據(jù)網(wǎng)絡(luò)功能,模擬http操作,獲取揚州環(huán)保局官方網(wǎng)頁提供的空氣指數(shù)實時數(shù)據(jù)并進行解析,使用戶可以隨時隨地地查詢當前揚州的空氣污染指數(shù)并做出相應(yīng)的防護。

2.1 數(shù)據(jù)獲取

揚州環(huán)保局早在2013年就建立了官方空氣質(zhì)量指數(shù)(AQI)發(fā)布平臺,網(wǎng)址為http://222.189.163.87:8023/#,目前已經(jīng)能夠提供包括揚州市區(qū)和下轄全部縣市在內(nèi)共8個監(jiān)測點的實時空氣質(zhì)量指數(shù),是揚州地區(qū)最權(quán)威的空氣質(zhì)量指數(shù)發(fā)布單位,想開發(fā)揚州空氣質(zhì)量指數(shù)手機客戶端,必須從該平臺獲取實時數(shù)據(jù)。遺憾的是,該網(wǎng)站本身不提供任何公開的API接口對外發(fā)布數(shù)據(jù),如想獲得數(shù)據(jù),只能對網(wǎng)站本身前端代碼進行分析,找出其數(shù)據(jù)接口。通過使用瀏覽器開發(fā)者工具對網(wǎng)站代碼載入后進行跟蹤分析,可以得出該網(wǎng)站后臺AQI數(shù)據(jù)接口地址為http://222.189.163.87:8023/Ajax/AjaxTab.ashx?li=AQI,PM2.5數(shù)據(jù)接口為http://222.189.163.87:8023/Ajax/AjaxTable.ashx?li=PM25_1,其他指標的接口也可以以此類推。以AQI接口為例,在瀏覽器打開該URL后,顯示的是多條類似[{"site":"2000","siteName":"揚州監(jiān)測站","經(jīng)度":"119.40444","緯度":"32.40944","item":"AQI","IAQI":"68"},]這樣形式的JSON格式數(shù)據(jù),因此,客戶端軟件需要對JSON數(shù)據(jù)進行解析,才能顯示正確的結(jié)果[2]。

2.2 JSON數(shù)據(jù)解析

JSON(JavaScript Object Notation)是一種輕量級的數(shù)據(jù)交換格式,易于人閱讀和編寫,同時也易于機器解析和生成。JSON采用完全獨立于語言的文本格式,但是也使用了類似于C語言家族的習(xí)慣(包括C, C++, C#, Java, JavaScript, Perl, Python等)。這些特性使JSON成為理想的數(shù)據(jù)交換語言[3]。在Android客戶端設(shè)計實踐中,大量采用JSON格式數(shù)據(jù)在客戶端和服務(wù)器端進行信息的交互,因此,在Android程序設(shè)計中,對JSON數(shù)據(jù)的解析是非常普遍的需求,實現(xiàn)的方法也是多種多樣的,Android系統(tǒng)本身就自帶了org.json包用于對JSON數(shù)據(jù)進行解析,但通過實測,官方包中提供的類功能太過簡單,使用也比較繁瑣,并不適合使用。除了官方提供的包,目前網(wǎng)絡(luò)上還存在大量第三方類庫提供JSON解析功能,其中Google提供的gson[4]庫是其中杰出的代表,在本項目中,即選擇gson類庫來進行JSON解析。gson是一個開源項目,為Android平臺提供了一個輕量級的高效的JSON庫,使用方便,其關(guān)鍵代碼如下:

Type listType = new TypeToken>() {}.getType();

Gson gson = new Gson();

LinkedList aqidatas = gson.fromJson(aqiresult, listType);

其中Aqi類是項目中自定義的空氣指數(shù)類,用來保存監(jiān)測站點名稱和實時AQI指數(shù),aqiresult是通過HttpURLConnection類從數(shù)據(jù)接口獲取到的原始JSON數(shù)據(jù)字符串,可以看到,gson的使用非常簡單,只要通過gson.fromJson這個簡單的方法,就可以把原始的JSON數(shù)組解析為本地類型對象的鏈表。

2.3 主界面設(shè)計

通過數(shù)據(jù)接口獲取數(shù)據(jù)并解析后,如何將數(shù)據(jù)顯示到程序主界面上成為主要任務(wù)。本項目選擇Listview控件來進行數(shù)據(jù)的展現(xiàn)。通過將上文得到的Aqi鏈表作為數(shù)據(jù)源與Listview適配器相連,并通過恰當?shù)牟季止芾?,可以很容易地在主界面展示相關(guān)的數(shù)據(jù)。另外,除獲取AQI數(shù)據(jù)外,本項目還獲取和解析了實時PM2.5和PM10數(shù)據(jù),為了能夠在同一個界面上方便地瀏覽多種數(shù)據(jù),需要采用多屏切換技術(shù)。在Android程序開發(fā)中,有多種技術(shù)可以實現(xiàn)多屏切換,傳統(tǒng)上APP程序通常使用多個標簽tab和activity來實現(xiàn)這一效果,用戶點擊不同的tab標簽,就可以在不同的界面之間進行切換,如新浪微博官方客戶端就用了這種實現(xiàn)方式。但這種實現(xiàn)方式最大的缺點是不能通過手指滑屏實現(xiàn)多個屏幕的滾動切換。隨著微信等支持滑屏切換技術(shù)的客戶端的流行,這種多屏切換方式越來越得到用戶的喜愛和認可,因此,Google在官方設(shè)計規(guī)范中也推薦這一技術(shù),同時在Android Support v4包中提供了ViewPager和Fragment兩個類來支持這一方式的實現(xiàn)。在具體編程中,需要實例化一個主界面activity對象和以及多個和滑屏界面一一對應(yīng)的fragment對象。通過對activity布局文件的設(shè)置,將ViewPager對象作為控件布置在主界面activity的合適位置。再通過不同的布局文件為每一個fragment進行布局,并將所有fragment和FragmentPagerAdapter對象相關(guān)聯(lián),最后通過ViewPager. setAdapter(FragmentPagerAdapter fm)方法將上述適配器對象和ViewPager進行綁定,即可實現(xiàn)滑動滾屏效果。在設(shè)計本項目時,項目團隊考慮到空氣指數(shù)是實時更新的,用戶大都習(xí)慣采用刷新主界面的方式來試圖獲取最新的數(shù)據(jù),如果不提供這一刷新功能,即使主界面上顯示的就是實時從官方服務(wù)器抓取的數(shù)據(jù),可能也會降低很多用戶的信任程度。因此,在開發(fā)時必須提供對LIstView控件的刷新功能。Google官方開發(fā)套件中提供的ListView類并無相關(guān)功能,但第三方開源項目PullToRefresh[5]為實現(xiàn)這一功能提供了便利,在開發(fā)時,只需要在工程中導(dǎo)入相關(guān)lib的jar包,并使用包中提供的PullToRefreshListView取代原有ListView控件,在對PullToRefreshListView對象設(shè)置setOnRefreshListener監(jiān)聽器后,即可監(jiān)聽刷新事件,并在回調(diào)方法中調(diào)用聯(lián)網(wǎng)更新數(shù)據(jù)的代碼。最后,通過調(diào)用PullToRefreshListView的getRefreshableView方法獲取真正在界面上顯示的ListView對象,通過設(shè)置適配器的方法將得到的數(shù)據(jù)在界面上進行展示。通過上述步驟,即可實現(xiàn)主界面列表的下拉刷新,限于篇幅,對具體代碼不再贅述,相關(guān)API用法可參考github開源代碼庫[6]。本項目最終效果如圖1所示。

3 結(jié)束語

本項目系揚州工業(yè)職業(yè)技術(shù)學(xué)院大學(xué)生實踐創(chuàng)新項目成果,開發(fā)完成后,已在校園內(nèi)部進行了初步測試,測試結(jié)果表明,由于該軟件兼容性好,安裝使用方便且流量消耗很小而深受廣大學(xué)生歡迎。項目團隊正在優(yōu)化相關(guān)模塊功能,進一步對系統(tǒng)進行完善,并爭取能夠早日在各大Android市場上架供公眾下載使用。

[1] 季云峰. 基于Android和ARM的嵌入式web服務(wù)器平臺設(shè)計[J]. 無錫職業(yè)技術(shù)學(xué)院學(xué)報,2012(3):69-71.

[2] 宋杰,黨李成,郭振朝,等. Android OS手機平臺的安全機制分析和應(yīng)用研究[J]. 計算機技術(shù)與發(fā)展,2010(6):152-155.

[3] 胡史望,莫家慶. 基于Android的移動應(yīng)用開發(fā)研究[J]. 軟件導(dǎo)刊,2014(11):18-20.

[4] 沈美. 淺析在Android系統(tǒng)中JSON和GSON的用法[J]. 電腦編程技巧與維護,2014(24):81-83.

[5] 孔令宏. Android中的ListView控件的優(yōu)化方法[J]. 電子技術(shù)與軟件工程,2013(21):270.

[6] 王倩文.基于Android的城市空氣質(zhì)量查詢系統(tǒng)的設(shè)計與實現(xiàn)[J].電腦知識與技術(shù),2013(34):7898-7900.

Design and Implementation of Mobile App Inquiring Yangzhou AQI Based on Android System

ZHANG Liang WANG Chao WANG Xiang

(Department of Electronic Information and Engineering, Yangzhou Polytechnic Institute, Yangzhou 225127, China)

With the rapid development of urbanization, more and more people are paying attention to air quality. Environment protection departments are setting up official websites to publish the real time AQI, but little effort is made to develop mobile app to inquiry the information on smart phone. In this project, a mobile app based on Android platform is developed using java. This app can provide the real time AQI of Yangzhou. The effectiveness of this program is proved in practical use.

Android; air quality; AQI

2015-01-13

2013年江蘇省大學(xué)生實踐創(chuàng)新訓(xùn)練研究成果(201313754013X)

張 亮(1981-),男,講師,碩士,主要研究方向:計算機

TP 311.52

A

1672-2434(2015)02-0011-03

猜你喜歡
控件揚州空氣質(zhì)量
我那水蛇腰的揚州
文苑(2020年11期)2021-01-04 01:52:48
揚州的夏日
文苑(2020年5期)2020-11-19 10:41:17
關(guān)于.net控件數(shù)組的探討
軟件(2018年7期)2018-08-13 09:44:42
揚州的秋日
“空氣質(zhì)量發(fā)布”APP上線
車內(nèi)空氣質(zhì)量標準進展
汽車與安全(2016年5期)2016-12-01 05:22:14
重視車內(nèi)空氣質(zhì)量工作 制造更環(huán)保、更清潔、更健康的汽車
汽車與安全(2016年5期)2016-12-01 05:22:13
開展“大氣污染執(zhí)法年”行動 加快推動空氣質(zhì)量改善
下?lián)P州
就這樣玩會VBA中常見的自定義控件
電腦迷(2012年24期)2012-04-29 00:44:03
永春县| 富民县| 射阳县| 嘉祥县| 松江区| 和平区| 施秉县| 汨罗市| 宁晋县| 凤庆县| 镇赉县| 大荔县| 新民市| 巫溪县| 治多县| 诸暨市| 万盛区| 辽阳市| 海盐县| 登封市| 南乐县| 龙门县| 兰考县| 东阳市| 循化| 甘泉县| 札达县| 监利县| 长春市| 环江| 枣庄市| 三明市| 石柱| 都昌县| 和静县| 鄢陵县| 定西市| 安平县| 三门县| 云梦县| 金乡县|