亚洲免费av电影一区二区三区,日韩爱爱视频,51精品视频一区二区三区,91视频爱爱,日韩欧美在线播放视频,中文字幕少妇AV,亚洲电影中文字幕,久久久久亚洲av成人网址,久久综合视频网站,国产在线不卡免费播放

        ?

        Android開發(fā)技術(shù)在無人值守遙測站中的應(yīng)用研究

        2016-01-26 10:15:54于興晗侯煜蓋優(yōu)普郭易

        于興晗,侯煜,蓋優(yōu)普,郭易

        (中國水利水電科學(xué)研究院,北京 100044)

        ?

        于興晗,侯煜,蓋優(yōu)普,郭易

        (中國水利水電科學(xué)研究院,北京 100044)

        摘要:Android是一種基于Linux的開放源代碼的操作系統(tǒng),主要用于移動設(shè)備,由Google公司和開放手機聯(lián)盟領(lǐng)導(dǎo)及開發(fā)。通過實例,詳細描述Android開發(fā)技術(shù)在新型無人值守遙測站上的應(yīng)用研究。對于其中的關(guān)鍵實現(xiàn)技術(shù),給出了Java源代碼。通過研究,實現(xiàn)了一個可以在裝有Android系統(tǒng)的無人值守遙測站上運行的App。

        關(guān)鍵詞:Android;無人值守遙測站;App;Java

        引言

        自2008年10月,第一部Android智能手機發(fā)布以來,Android系統(tǒng)逐漸擴展到平板電腦及其他很多領(lǐng)域,如電視、數(shù)碼相機、游戲機等。目前,在水情測報領(lǐng)域,我國自主開發(fā)的無人值守遙測站仍以單片機為主,開發(fā)模式也還是使用基于C語言的單流程結(jié)構(gòu),所有的工作流程都是通過單一程序?qū)崿F(xiàn)的,代碼可讀性差,很難實施團隊開發(fā),不利于技術(shù)的推廣。國內(nèi)基于嵌入式操作系統(tǒng)的無人值守遙測站還處于起步階段,一些重大項目,如《長江三峽水利樞紐梯級水庫調(diào)度自動化系統(tǒng)屏山—寸灘區(qū)間水情遙測系統(tǒng)》項目中使用的嵌入式遙測站就是由美國Sutron公司開發(fā)的嵌入式數(shù)據(jù)采集器Xpert和Xlite。國內(nèi)嵌入式開發(fā)技術(shù)還是處于起點低、基數(shù)小、資源少和技術(shù)落后的狀態(tài)。

        水情測報領(lǐng)域的無人值守遙測站,是一種先進的水情信息實時收集處理系統(tǒng),也是一項現(xiàn)代化的、非工程性的防洪措施,應(yīng)用通信、遙測和計算技術(shù)來完成江河、水庫、流域內(nèi)的降雨量、水位和流量等數(shù)據(jù)的實時收集和處理,以實現(xiàn)防洪、供水、發(fā)電等優(yōu)化調(diào)度,提高防洪能力及水資源利用水平[2]。因此,通信作為無人值守遙測站和中心站聯(lián)系的主要手段,其穩(wěn)定性和工作效率是設(shè)計無人值守遙測站重點考慮的問題。

        本文通過對Android系統(tǒng)的幾項關(guān)鍵技術(shù)進行分析,結(jié)合無人值守遙測站的工作流程,在Android 4.0基礎(chǔ)上設(shè)計并實現(xiàn)出一款高效和實用的App,為Android開發(fā)技術(shù)在水利行業(yè)應(yīng)用提供了依據(jù)。

        1研究概況

        1.1Android開發(fā)技術(shù)簡介

        在快速發(fā)展的移動開發(fā)領(lǐng)域,Android的發(fā)展較為迅速。Android系統(tǒng)正以其開放性(開發(fā)的平臺允許任何移動終端廠商加入到Android聯(lián)盟中來)、豐富的硬件(越來越多的硬件產(chǎn)品支持)、方便開發(fā)(Android平臺提供給第三方開發(fā)商一個十分寬泛、自由的環(huán)境,不會受到各種條條框框的阻擾)和Google應(yīng)用(Android手機平臺可以無縫結(jié)合一些優(yōu)秀的Google服務(wù),如地圖、郵件、搜索等)的特點吸引越來越多的嵌入式開發(fā)者加入其中。

        Android開發(fā)技術(shù)是以應(yīng)用其4大開發(fā)組件為主,4大組件為:活動、服務(wù)、廣播接收器、內(nèi)容提供商。

        1.2設(shè)計結(jié)構(gòu)

        根據(jù)Android開發(fā)技術(shù)的特點,結(jié)合水情測報領(lǐng)域無人值守遙測站的工作過程,App設(shè)計結(jié)構(gòu)如圖1所示。

        圖1 App結(jié)構(gòu)圖

        其中各層的細節(jié)如表1所列。

        表1 各層詳細內(nèi)容

        在整個App設(shè)計中,只有應(yīng)用層是與水情測報領(lǐng)域無人值守遙測站的工作業(yè)務(wù)相關(guān),因此這一部分的設(shè)計對專業(yè)的要求也比較高,應(yīng)能以提高用戶體驗為主。其中Web發(fā)布和email通信都是作為數(shù)據(jù)庫應(yīng)用的擴展功能而存在,不再單獨設(shè)計。

        2實現(xiàn)

        在本文中,由于篇幅有限,只針對關(guān)鍵技術(shù)實現(xiàn)的關(guān)鍵節(jié)點給出源代碼,列出的所有代碼均是在開發(fā)環(huán)境eclipse-java-luna-SR1+ADT23.0.4下編譯完成的,而且均在實際無人值守遙測站硬件上運行測試過。

        2.1App主視圖

        App主視圖采用“圖標(biāo)+標(biāo)題”的表格形式實現(xiàn),使用戶可以直接快速定位并啟動應(yīng)用App模塊。本文設(shè)計并實現(xiàn)的App界面視圖如圖2所示。

        圖2 App主視圖

        其中,界面UI元素定義如表2所列,應(yīng)用App定義如表3所列,啟動相應(yīng)App使用長擊動作。

        表2 界面UI元素定義

        表3 應(yīng)用App定義

        本系統(tǒng)中,所有的應(yīng)用App設(shè)計都包含3部分:UI視圖設(shè)計(用于與用戶交互,與具體專業(yè)業(yè)務(wù)相關(guān))、啟動代碼(用于和驅(qū)動層的連接,提供給驅(qū)動層使用的接口函數(shù))和配置信息存儲(調(diào)用驅(qū)動層存儲配置信息函數(shù)來實現(xiàn))。

        2.2數(shù)據(jù)庫

        傳統(tǒng)的無人值守遙測站將現(xiàn)場采集的數(shù)據(jù)以二進制自定義格式的形式按順序存儲在本地,一般不存在單獨的數(shù)據(jù)管理,功能單一、效率不高。

        在App設(shè)計中,為了提高數(shù)據(jù)管理效率,增加高級數(shù)據(jù)管理功能,使用了一款輕型的遵守ACID關(guān)系型的數(shù)據(jù)庫,即Android的SQLite。

        數(shù)據(jù)庫顯示視圖略——編者注,為了使數(shù)據(jù)顯示美觀,使用隨機變換的字體顏色,且相鄰行的顏色不完全相同,凸顯數(shù)據(jù)元素,使用戶一目了然(注:字體顏色的區(qū)分可以參見網(wǎng)絡(luò)版)。

        數(shù)據(jù)庫實現(xiàn)的代碼主要包含3部分:顯示視圖、數(shù)據(jù)訪問接口和配置信息存儲。本文在視圖處理上采用了與App主界面相同的處理辦法,即使用Activity的派生類來實現(xiàn);為實現(xiàn)逐行顯示的效果,使用了Android提供的ListView組件,對每行元素的單元格分別逐個處理顯示(內(nèi)容和顏色)。數(shù)據(jù)訪問接口代碼則是通過派生Android SQLiteOpenHelper類實現(xiàn)的。

        2.3JavaMail

        由于Android系統(tǒng)是由Google公司領(lǐng)導(dǎo)開發(fā)的,因此在有些功能實現(xiàn)上具有明顯的傾向性,如Android系統(tǒng)自帶的郵件系統(tǒng)只支持Google公司的Gmail系統(tǒng),在國內(nèi)使用會受到明顯的限制,為了支持國內(nèi)的郵件系統(tǒng),本文使用了由Sun公司發(fā)布的用于處理Email的API(JavaMail),來實現(xiàn)一些常用的電子郵件應(yīng)用。JavaMail結(jié)構(gòu)圖略——編者注。

        JavaMail通過SMTP Server進行郵件的發(fā)送,用戶只需要根據(jù) JavaMail 定義的接口實現(xiàn)自己的 Provider,即可實現(xiàn)對不同協(xié)議Store郵件的收取。

        通過JavaMail實現(xiàn)的數(shù)據(jù)分享功能執(zhí)行結(jié)果略——編者注。其中0000 0000為無人值守遙測站的站號,郵件內(nèi)容為分享的數(shù)據(jù)。

        2.4Web發(fā)布

        Web服務(wù)器是可以為向其發(fā)出請求的瀏覽器提供文檔的程序,主要功能是提供網(wǎng)上信息瀏覽服務(wù)。本文在App中,使用Android的內(nèi)置服務(wù)功能實現(xiàn)了Http Web服務(wù)器功能,可以將選定的數(shù)據(jù)發(fā)布到固定IP上,其他處在同一局域網(wǎng)內(nèi)的設(shè)備(如電腦、手機、iPad和PC機等)可以通過瀏覽器瀏覽數(shù)據(jù)。本文提供的代碼僅支持微軟IE和360瀏覽器。

        2.4.1工作流程

        Web服務(wù)器的工作流程如圖3所示。

        圖3 Web服務(wù)器工作流程

        其中,監(jiān)視端口要使用Android Service的派生類,TCP連接和會話線程使用的是Thread的派生類,對端口的訪問使用Android的ServerSocket和Socket類。

        2.4.2視圖

        圖4 Web Server啟動界面

        啟動Web分享數(shù)據(jù)功能后,彈出視圖如圖4所示。單擊啟動按鈕,可將選定的數(shù)據(jù)發(fā)布到地址http://192.168.2.114:8080,其中IP地址為遙測站的默認地址,在WiFi連接的時候不可設(shè)置,端口號可以修改。

        本界面的視圖使用的是Android提供的AlertDialog類自定義的顯示視圖,單擊啟動按鈕后將啟動Web Server服務(wù)線程,在后臺監(jiān)視8080端口,當(dāng)接收到請求數(shù)據(jù)訪問時,啟動數(shù)據(jù)發(fā)布線程將數(shù)據(jù)發(fā)布到端口。這時,若通過IE或者360瀏覽器訪問http://192.168.2.114:8080時,在瀏覽器界面上將會顯示分享的數(shù)據(jù),顯示結(jié)果略——編者注。

        2.5通信服務(wù)

        本文通信任務(wù)大部分是使用Android系統(tǒng)本身提供的通信服務(wù)實現(xiàn)的,如發(fā)送短信使用的是Android提供的SmsManager服務(wù),接收短信使用Android的BroadcastReceiver服務(wù),網(wǎng)絡(luò)使用WIFI_SERVICE服務(wù)等。針對這些常用的通信服務(wù),Android系統(tǒng)都做了代碼優(yōu)化,開發(fā)者只需編寫少量的代碼即可實現(xiàn)高效的通信功能。為便于讀者理解,本文給出了實現(xiàn)手機對無人值守遙測站控制的典型的短信接收服務(wù)的關(guān)鍵代碼。

        //注冊短信廣播

        final String SMS_RECEIVED = "android.provider.Telephony.SMS_RECEIVED";

        IntentFilterfilter = new IntentFilter(SMS_RECEIVED);

        BroadcastReceiverreceiver = new SMSReceive();

        registerReceiver(receiver, filter);

        只需將這段代碼放在onCreate()函數(shù)中,即可實現(xiàn)對短信的監(jiān)控。其中SMSReceive為BroadcastReceiver的派生類,用于對系統(tǒng)所接收信息進行處理。本文代碼運行結(jié)果如圖5所示。其中(+86 136-0117-5481)為無人值守遙測站的手機號,123456為遙測站密碼,vd為招測當(dāng)前數(shù)據(jù)命令;后續(xù)的為遙測站返回數(shù)據(jù),其中00000000為站號,后面為數(shù)據(jù)采集時間、傳感器名和數(shù)據(jù)的當(dāng)前值。

        圖5 手機招測執(zhí)行結(jié)果

        2.6數(shù)據(jù)圖表

        為了增強系統(tǒng)的實用性,提高數(shù)據(jù)處理效率,在App設(shè)計時增加了數(shù)據(jù)分析圖表功能,使用的是一個Android系統(tǒng)上制作圖表的框架achartengine圖表引擎實現(xiàn),目前它支持如下的圖表類型:line chart(折線圖)、area chart(面積圖、分區(qū)圖、對比圖)、scatter chart(散點圖)、time chart(時間圖/進度表)、bar chart(條形圖/柱狀圖)、pie chart(餅圖)、bubble chart(氣泡圖)、doughnut chart(圓環(huán)圖)、range (high-low) bar chart(范圍條形圖)、dial chart/gauge(撥號盤/壓力表) 、combined (any combination of line, cubic line, scatter, bar, range bar, bubble) chart(組合圖)、cubic line chart(立方折線圖)。

        上述所有支持的圖表類型都可以包含多個系列,支持水平(默認)或垂直方式展示圖表,并且支持許多其他的自定義功能。所有圖表都可以建立為一個view,也可以建立為一個用于啟動activity的intent。這個模型和繪圖過程的代碼進行了很好的優(yōu)化處理,可以處理和顯示值的數(shù)量非常大。本文通過圖表框架achartengine實現(xiàn)的餅狀圖如圖6所示。

        圖6 餅狀視圖

        結(jié)語

        本文所開發(fā)出的App不但實現(xiàn)了無人值守遙測站的基本功能(包括現(xiàn)場數(shù)據(jù)的采集、存儲和發(fā)送),而且使用Android系統(tǒng)提供的軟件資源,將一些復(fù)雜的實用功能(如與智能手機互聯(lián)、WiFi通信、Web發(fā)布和數(shù)據(jù)圖表等)也在App中得到了實現(xiàn)。本次App的開發(fā)研究,將用戶體驗首次引入無人值守遙測站的設(shè)計中。

        隨著通信技術(shù)更新?lián)Q代的周期越來越短,支持新通信技術(shù)的無人值守遙測站也會不斷更新。而作為以通信技術(shù)為核心的嵌入式操作系統(tǒng)Android就非常適合應(yīng)用到水情測報領(lǐng)域的無人值守遙測站,并且隨著應(yīng)用Android系統(tǒng)的設(shè)備越來越多,其資源也會越來越豐富。

        將Android系統(tǒng)加入無人值守遙測站,還會為無人值守遙測站帶來新的研究方向,如消息推送、云中心、WiFi熱點、WiFi Direct、Webkit、GIS和云存儲等,極大地豐富了無人值守遙測站的功能。

        參考文獻

        [1] 軟件開發(fā)技術(shù)聯(lián)盟.Android開發(fā)實踐[M].北京:清華大學(xué)出版社,2013.

        [2] 于興晗,胡宇豐,郭易,等.CE數(shù)據(jù)采集器設(shè)計和開發(fā)實例[M].北京:中國水利水電出版社,2014.

        [3] 孫增義,吳躍.水情自動測報技術(shù)基礎(chǔ)及其應(yīng)用[M].北京:中國水利水電出版社,1999.

        [4] 毛學(xué)工,安波,蹇德平,等.雅礱江流域梯級電站水情自動測報系統(tǒng)[M].北京:中國水利水電出版社,2012.

        于興晗(工程師),長期從事32位嵌入式數(shù)據(jù)采集系統(tǒng)研究。

        Yu Xinghan,Hou Yu,Gai Youpu,Guo Yi

        (China Water Conservancy and Hydropower Research Institute,Beijing 100044,China)

        Abstract:Android is an operating system of free and opening source codes based on Linux,which mainly is used in mobile devices.It is leaded and developed by Google company and the open handset alliance.In this paper,the application of Android technology in the novel unattended telemetry station is introduced.The Java source codes of the key technology are given.Through this study,an App running on the telemetering station is achieved,which installs Android system.

        Key words:Android;unattended telemetry station;App;Java

        收稿日期:(責(zé)任編輯:薛士然2015-07-09)

        中圖分類號:TP316

        文獻標(biāo)識碼:A

        国产精品国产亚洲精品看不卡| 中文字幕一区二区三区综合网| 风流熟女一区二区三区| 深夜福利啪啪片| 秋霞鲁丝片av无码| 久久婷婷是五月综合色狠狠| 成人全部免费的a毛片在线看| 国产成人无码av一区二区在线观看| 18分钟处破好疼哭视频在线观看 | 国产av熟女一区二区三区| 在线亚洲欧美日韩精品专区| 国产精品午夜波多野结衣性色| 国产av三级精品车模| 久久亚洲中文字幕精品一区| 国产又滑又嫩又白| 音影先锋色天堂av电影妓女久久| 亚洲中文字幕一区av| 色88久久久久高潮综合影院| 亚洲精品一区久久久久一品av| 精品少妇人妻av一区二区| 无遮挡十八禁在线视频国产制服网站 | 亚洲av无码专区在线电影| 国产一线视频在线观看高清| 亚洲美女主播内射在线| 久久久中文久久久无码| 久久久噜噜噜久久中文字幕色伊伊| 久久国产品野战| 日韩男女av中文字幕| 无码人妻精品中文字幕| 久久精品视频在线看99| 国产一区二区丁香婷婷| 亚洲av熟女一区二区三区站| 40岁大乳的熟妇在线观看| 亚洲无码a∨在线视频| 国产精品女丝袜白丝袜美腿| 亚洲精品第一国产综合精品 | 精品人妻伦九区久久AAA片69| 女同性恋亚洲一区二区| 青青草成人在线免费视频| 免费视频成人片在线观看| 国产极品美女高潮无套在线观看 |