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

?

基于Android和Google Maps 的生活輔助系統(tǒng)的設(shè)計與實現(xiàn)

2012-09-20 08:19:28徐光俠
關(guān)鍵詞:應(yīng)用程序短信文檔

徐光俠,封 雷,涂 演,李 成

(1.重慶郵電大學(xué)軟件學(xué)院,重慶 400065;2.重慶郵電大學(xué)通信與信息工程學(xué)院,重慶 400065)

0 引言

隨著移動設(shè)備的不斷發(fā)展,智能移動終端應(yīng)用程序的開發(fā)也呈現(xiàn)了很大的發(fā)展空間。2007年底,由Google牽頭30家移動技術(shù)和無線應(yīng)用領(lǐng)域的企業(yè)組成手機開發(fā)聯(lián)盟(open handset alliance),發(fā)布了一個開放的智能移動設(shè)備設(shè)計的軟件平臺Android。針對目前在越來越快節(jié)奏的經(jīng)濟生活中,人們迫切想知道別人或自己所處的空間環(huán)境和周邊的狀況,例如指南針功能、天氣預(yù)報功能等。該開發(fā)軟件的特殊之處在于任意手機使用者可以通過短信形式自動獲取軟件使用者所處的位置,例如當(dāng)需要獲取用戶甲的位置時,只需要發(fā)送一條含有特殊字符的短信到對方手機上,就可以獲取到對方當(dāng)前所在地點,最終實現(xiàn)地理信息的共享。

1 研究基礎(chǔ)

1.1 Android系統(tǒng)架構(gòu)研究

Android手機系統(tǒng)是基于Linux平臺的開源手機操作系統(tǒng),該平臺由操作系統(tǒng)、中間件、用戶界面和應(yīng)用軟件組成。它采用軟件堆層(software stack),又名軟件疊層的架構(gòu),主要分為3部分。底層以Linux內(nèi)核工作為基礎(chǔ),由C語言開發(fā),只提供基本功能;中間層包括函數(shù)庫Library和虛擬機(virtual machine),由C++開發(fā),最上層是各種應(yīng)用軟件。Android系統(tǒng)架構(gòu)由5部分組成,分別是Linux Kernel,Android Runtime,Libraries,Application Framework,Applications[1]。

1.2 Android傳感器接口劃分

傳感器類型分為方向、加速度、光線、磁場、臨近性和溫度;編寫傳感器應(yīng)用程序必須是基于常見的Active(活動),因為傳感探頭只是利用獲取的數(shù)據(jù)來更新屏幕,且在使用傳感器時應(yīng)先引用Android.hardware.sensor,該活動的onCreate方法可以引用Sensor Manager,其中包含了所有與傳感器有關(guān)的函數(shù)方法。

1.3 Google Maps接口開發(fā)

Android的地圖使用包(google.Android.Maps)包括一系列地圖開發(fā)功能類,在使用這些類時可以獲得渲染、控制圖層(共計20個地圖層)覆蓋等功能,程序員可以輕易實現(xiàn)Google Maps地圖開發(fā)。其中MapView類是Map的基本類,當(dāng)添加一個Map-View類后,就可以在屏幕上獲得一個無功能的Google Maps。在獲取Google Maps服務(wù)時,需要開發(fā)者獲取一個準許使用MapView的API Key,才能在地圖上加載地圖資源。

2 軟件架構(gòu)

Android和Google Maps的生活輔助系統(tǒng)主要分為3個子模塊:天氣預(yù)報模塊,Google Maps模塊,指南針模塊。其結(jié)構(gòu)如圖1所示[2-3]。

天氣預(yù)報模塊主要通過解析Google Weather或者Yahoo網(wǎng)站的XML文檔實現(xiàn)天氣的實時預(yù)測。Google Maps模塊通過手機短信模塊與Google API的整合,運用多線程技術(shù),使手機程序在后臺運行,攔截監(jiān)聽短信,當(dāng)捕獲含有特殊短信內(nèi)容的短信時,即喚醒程序,發(fā)送使用者的位置告知短信發(fā)送人,同時地圖還擁有當(dāng)前位置顯示,衛(wèi)星、街道視圖的切換等功能。指南針模塊則通過對Android手機底層硬件接口,從傳感器探頭上獲得數(shù)據(jù)包并處理成可以告知方位的指南針程序。

圖1 Android and Google生活輔助系統(tǒng)架構(gòu)層次圖Fig.1 Anroid and Google assisted living system architecture hierarchy diagram

3 主要關(guān)鍵技術(shù)

3.1 應(yīng)用程序及生存周期

Android中間件是構(gòu)成Android OS的核心部分,它分為底層的庫文件和運行環(huán)境,以及上層的應(yīng)用程序框架,中間件可以稱作是連接操作系統(tǒng)與應(yīng)用程序的紐帶,在中間件的底層庫與運行環(huán)境中,底層庫文件包含了輕量級SQLite數(shù)據(jù)庫,媒體框架,System C庫文件,外觀管理員(surface manager),SGL,SSL,3D函數(shù)庫與FreeType等庫文件。雖然Android平臺使用 Java語言編碼,卻使用自帶的 Android Runtime來運行,該Runtime內(nèi)有2個重要元件,分別是Dalvik Virtual Machine(Dalvik虛擬機器)與Core Libraries(核心函數(shù)庫)。

核心函數(shù)庫里包含了絕大多數(shù)Java程序語言所需要調(diào)用的函數(shù),而每個Android程序都以各自進程來執(zhí)行,并且都以自屬的Dalvik虛擬機器來同時執(zhí)行,各個程序的執(zhí)行效率不會受到影響。應(yīng)用程序框架包含了10個主要的軟件元件,如Location Manager(位置管理器)、Activity Manager(程序管理器)、Window Manager(視窗管理器)、Resource Manager(資源管理器)等,便于用戶開發(fā)不同類型的應(yīng)用程序,這種框架在移動終端應(yīng)用程序開發(fā)歷史上是獨有的。在應(yīng)用程序執(zhí)行時,通常使用Intent類和IntentFilter類來進行不同窗體之間的切換。在Android.content.Intent包中,一個 Intent描述的是應(yīng)用程序想做的Active,而IntentFilter表示一個活動能處理的所有Intent。而在界面布局方面,Android的界面,需要寫在res/layout的XML里面,一般情況下一個XML對應(yīng)一個界面。Android界面布局類似于html,要先給Android定框架,然后再在框架里面放控件,Android提供了幾種框架類型如下[4]:AbsoluteLayout,RelativeLayout,TableLayout,F(xiàn)rameLayout,LinearLayout(線性布局)。應(yīng)用程序在Android系統(tǒng)中的生存周期如圖2所示。

圖2 應(yīng)用程序在Android系統(tǒng)中的生存周期Fig.2 Life circle of Android application

3.2 指南針功能實現(xiàn)

在Android的SDK文檔中顯示其系統(tǒng)可支持的傳感器類型共有11種[5]。在本程序中使用到的傳感器種類有3種:加速度傳感器(BMA150 3-axis accelerometer),磁場傳感器(AK8973 3-axis magnetic field sensor),方位角傳感器(AK8973 orientation sensor)。其中Android提供的API對于不同傳感器的調(diào)用都是用同一個接口,這樣可以利于開發(fā),首先得到傳感器的控制,然后再調(diào)用感興趣的感應(yīng)事件。

注冊傳感器的方法代碼為:mSensorManager.registerListener(mListener,SensorManager.SENSOR_ORIENTATION,SensorManager.SENSOR_DELAY_NORMAL)。

如果想要獲得其他感應(yīng)事件,僅需修改第2個參數(shù)為相應(yīng)的傳感器對應(yīng)的枚舉數(shù)值,第3個參數(shù)是感應(yīng)事件的頻率,設(shè)置感應(yīng)事件頻率,有4種頻率模式可選,每個頻率差為0.04 s。然后設(shè)置一個監(jiān)聽器,利用監(jiān)聽接口onSensorChanged來讀取具體感應(yīng)的內(nèi)容。

3.3 Android Maps

本系統(tǒng)開發(fā)平臺搭建在JDK 1.6.4,Eclipse 3.3(Europa)下,采用的SDK是適用的Android1.6及其以上版本,即SDK Tools中的ADT 0.8.0壓縮包。采用C/S系統(tǒng)架構(gòu)模式,服務(wù)器端調(diào)用Google Maps地圖資源,客戶端實現(xiàn)短信監(jiān)聽、接收、發(fā)送數(shù)據(jù)等功能。Android終端服務(wù)模式如圖3所示。

圖3 Android maps服務(wù)架構(gòu)Fig.3 Android maps services architecture

首先,創(chuàng)建了一個MapView后,用戶需要用到getController()來獲取地圖資源的控制,同時通過OverLay在Map上繪制圖層信息或者其他信息。又因為這個不是庫類的標(biāo)準包,所以開發(fā)者需要在AndroidManifestfile.xml里面添加一個許可認證:〈uses-library Android:name="com.google.Android.maps"/〉。

其次,在Android的定位(Android.location)接口中包含了幾個與位置service相關(guān)的類,就可以使用這幾個服務(wù)類來獲得Android提供的定向API,同時需要手持移動設(shè)備支持GPS模塊或者A-GPS。在使用LocationManager來提供定位服務(wù)時不會直接提供使用者的坐標(biāo)情況,首先需要一個句柄,它可以通過系統(tǒng)提供的getSystemService來獲得并實現(xiàn)對它的應(yīng)用。當(dāng)程序擁有了指向LocationManager的句柄服務(wù)時,然后就可以使用下列3個功能:1)搜索LocationManager服務(wù)所能給的地理位置坐標(biāo);2)注銷、釋放或者獲得LocationProvider提供的地理位置信息;3)當(dāng)手持移動設(shè)備進入某一個活動范圍以后,可以激活一個Intent來實現(xiàn)下一個功能模塊的設(shè)定(在用虛擬機進行開發(fā)、模擬時并不能夠獲取位置信息,通常在制作GIS應(yīng)用時需使用工程機進行開發(fā))。

3.4 GSM短信服務(wù)(SMS)擴展應(yīng)用

Android API支持開發(fā)者可以發(fā)送和接收SMS消息的應(yīng)用程序,在對移動設(shè)備SMS模塊加以開發(fā)的過程中需加入〈uses-permission Android:name="Android.permission.READ_SMS"/〉與〈uses-permission Android:name="Android.permission.RECEIVE_SMS"/〉2個許可,通過SmsManager這個類來進行消息的管理和應(yīng)用,其次在Android設(shè)備接收到SMS后,移動設(shè)備是pdu(protocol description unit)的形式。而當(dāng)需要進行SMS相關(guān)信息存取的時候,可以使用 Android.telephony.gsm.SmsMessage這個包來進行相關(guān)操作。

游泳過程中,上臂旋轉(zhuǎn)外展時,水的阻力會對肩部造成很大的壓力。一旦長時間保持不正確的泳姿,會讓肩袖處于過度運動狀態(tài)。幾種泳姿比較起來,自由泳、蝶泳和仰泳比較容易出現(xiàn)游泳肩。比如自由泳時,在“拉水階段”多使用胸肌、闊背肌等內(nèi)旋轉(zhuǎn)肌,而在“恢復(fù)階段”則多使用三角肌、岡下肌等外旋轉(zhuǎn)肌。通常來說,外旋轉(zhuǎn)肌較薄弱,極容易損傷。而蛙泳的基本姿勢確定了其肩部活動的范圍較小,因此會好一些。

首先,對接收到的短信還需要進行相關(guān)的判斷,判斷其為正常短信或是含有特殊字符,如果是非正常短信(含有預(yù)先設(shè)定的特殊字符),首先應(yīng)對短信進行如下拆分。

其次,在進行SMS匹配成功后對主程序喚起。

Intent mRunPackageIntent=new Intent(context,Gmaps.class);mRunPackageIntent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK)[6];

然后,加載地理位置數(shù)據(jù),完畢之后再發(fā)送到特殊短信發(fā)送者的手中,這樣做的好處是對正常短信沒有絲毫干擾。

3.5 關(guān)于SAX解析器對Google Weather的解析

SAX(simple API for XML)是一個公共的基于事件的XML文檔解析標(biāo)準,類似于只讀(read-only)和前向(forward-only)游標(biāo)。在SAX解析器裝載XML文件時,它遍歷文件文檔并在其主機應(yīng)用程序中產(chǎn)生事件(經(jīng)由回調(diào)函數(shù)、指派函數(shù)或者任何可調(diào)用平臺完成這一功能)表示這一過程。由此,編寫SAX應(yīng)用程序就如同采用最現(xiàn)代的工具箱編寫GUI程序。大多數(shù)SAX實現(xiàn)都會產(chǎn)生以下若干類型的事件,在文檔的開始和結(jié)束時觸發(fā)文檔處理事件。

在文檔內(nèi)每一XML元素接受解析的前后觸發(fā)元素事件。任何元數(shù)據(jù)通常都由單獨的事件交付。在處理文檔的DTD或Schema時產(chǎn)生DTD或Schema事件。錯誤事件用來通知主機應(yīng)用程序解析錯誤。在處理文檔時最重要的就是元素事件,通常SAX解析器會向指定主機甲應(yīng)用程序提供包含元素信息的事件參數(shù);在最低程度下也會提供元素的名字。具體取決于特定實現(xiàn),可以定義不同類型的元素事件代表不同類型元素的處理。在項目中,運用它來做Google weather API的解析。其次在開發(fā)天氣軟件時需要一個WEP服務(wù)端來提供數(shù)據(jù),本程序使用的是Google提供的天氣API,然后創(chuàng)建一個Google Weather Handler gwh=new Google Weather Handler();以便解析Google Weather API里面的內(nèi)容,例如Google服務(wù)“Google Weather”的XML文件中:

第1個標(biāo)記〈weather module_id=“…”〉開始準備讀取值—天氣信息;第2個標(biāo)記〈forecast_information〉中的信息是需要獲取指定地方的天氣情況。按條件讀取后可以得到“current_date_time”,“Citiy”,“postal_code”,“forecast_date data”4 條信息。所有〈current_conditions〉標(biāo)記中的接口名字以及〈forecast_conditions〉按上述方式處理后,再用停詞表(stop words list)進行處理,得到表示該WD(Weather-Data)文件特征的關(guān)鍵字集合為WDKeyword=[Get,Weather,Get,City,forecast_date data]。

在WD文件關(guān)鍵字集合的基礎(chǔ)上,可以定義WD文件的向量為

(2)式中:TFi為單個關(guān)鍵詞包所含信息[8]。值得注意的是,需要在程序的開始引用JAVA的網(wǎng)絡(luò)包import java.net.URL 和 import java.net.URLCon-nection以及使用SAX解析器的時候需要用到的import javax.xml.parsers.SAXParser和 import javax.xml.parsers.SAXParserFactory[9]。

4 功能實現(xiàn)

在如上所述的環(huán)境、設(shè)計和開發(fā)規(guī)程步驟情況下實現(xiàn)了生活即時助手,其功能描述如下所述。

1)基于Google Maps開發(fā)的M-GIS信息服務(wù)實時當(dāng)前位置查詢、周邊情況、地點查詢,如圖4—5所示。并能通過2種方式進行定位:一種是A-GPS(assisted GPS);另一種是移動位置服務(wù)(location based service,LBS)方式。

2)對手機SMS模塊和Google Maps模塊加以整合開發(fā),用后臺線程監(jiān)聽的方式,實現(xiàn)程序保持線程狀態(tài)進行多點動態(tài)監(jiān)聽含有特殊字符短信,并在調(diào)用程序后發(fā)送當(dāng)前移動設(shè)備位置坐標(biāo),實現(xiàn)程序的后臺接收,自動反饋功能,如圖6所示。

3)通過對氣象網(wǎng)站XML文檔的解析實現(xiàn)網(wǎng)絡(luò)在線分析文檔,反饋實時氣候信息條件,并反饋出地理位置所在地的詳細天氣情況,如圖7所示。

5 結(jié)論

Android系統(tǒng)網(wǎng)絡(luò)集成性很高,內(nèi)部集成了大量的Google應(yīng)用,涵蓋了生活中各個方面的網(wǎng)絡(luò)應(yīng)用,對長期使用網(wǎng)絡(luò),信息依賴度比較高的人群很合適。開發(fā)的“基于Android系統(tǒng)的生活即時助手”是為了方便那些愛好外出游玩的人群,使他們在外出旅游時可以讓親友及時了解位置,也可以通過指南針、地圖、天氣等服務(wù)綜合了解當(dāng)時所處的狀況,自我進行判斷、處理問題。把程序整合到手機設(shè)備上主要是利用了移動設(shè)備的便攜性,為人們的日常生活帶來更多的便利。

[1]KUMAR S,QADEER M A,GUPTA A.Location based services using android(LBSOID)[C]//IEEE.2009 IEEE International Conference on Internet Multimedia Services Architecture and Applications(IMSAA).Bangalore:IEEE Press,2009:1-5.

[2]SHU Xian-hua,DU Zhen-jun,CHEN Rong.Research on Mobile Location Service Design Based on Android[C]//IEEE.WiCom'09.5th International Conference on Wireless Communications,Networking and Mobile Computing.Beijing:IEEE Press,2009:1-4.

[3]LI Xu-dong,YAN Gao-shi,TANG Hai.Android Based Wireless Location and Surrounding Search System Design[C]//2010 Ninth International Symposium on Distributed Computing and Applications to Business Engineering and Science(DCABES).Hong Kong:IEEE Press,2010:421-423.

[4]廖軍,郭達.移動互聯(lián)網(wǎng)應(yīng)用趨勢—基于Web的終端平臺[J].信息通信技術(shù),2010,17(04):20-23.LIAO Jun,GUO Da.Application of mobile Internet trends terminals based on Web platform[J].Information and communication technology,2010,17(04):20-23.

[5]裴春梅,楊秀清,王貴明.傳感器在智能手機中的應(yīng)用[J].湖南農(nóng)業(yè)大學(xué)學(xué)報:自然科學(xué)版,2009,35(10X):108-109.PEI Chun-mei,YANG Xiu-qing,WANG Gui-ming.The sensor in the intelligent mobile phone application[J].Journal of Hunan Agricultural University:Natural Science Edition,2009,35(10X):108-109.

[6]彭璇,吳肖.Google Map API在網(wǎng)絡(luò)地圖服務(wù)中的應(yīng)用[J].測繪信息與工程,2010,35(01):25-27.PENG Xuan,WU Xiao.Google Map API in the network map service application[J].Engineering of Surveying and mapping,2010,35(01):25-27.

[7]費洪曉,康松林,朱小娟,等.基于詞頻統(tǒng)計的中文分詞的研究[J].計算機工程與應(yīng)用,2005,41(07):67-68.FEI Hong-xiao,KANG Song-lin,ZHU Xiao-juan,et al.Based on word frequency statistics of Chinese word segmentation research[J].Computer engineering and applications,2005,41(07):67-68.

[8]孟德欣,謝二蓮.使用Google XML APIs Service實現(xiàn)Web查詢[J].計算機應(yīng)用研究,2004,24(z1):252-253.MENG De-xin,XIE Er-lian.Google XML APIs Service.Use Web query[J].Application Research of computers,2004,24(z1):252-253.

[9]閻嘯天武穆清.輔助定位衛(wèi)星多普勒頻移特性[J].北京郵電大學(xué)學(xué)報,2009,32(2):66-70.YAN Xiao-tian WU Mu-qing.The auxiliary positioning satellite Doppler shift characteristics[J].Journal of Beijing University of Posts and Telecommunications,2009,32(2):66-70.

猜你喜歡
應(yīng)用程序短信文檔
有人一聲不吭向你扔了個文檔
刪除Win10中自帶的應(yīng)用程序
電腦報(2019年12期)2019-09-10 05:08:20
道歉短信
代發(fā)短信
基于RI碼計算的Word復(fù)制文檔鑒別
Persistence of the reproductive toxicity of chlorpiryphos-ethyl in male Wistar rat
關(guān)閉應(yīng)用程序更新提醒
電腦迷(2012年15期)2012-04-29 17:09:47
不讓他人隨意下載Google文檔
電腦迷(2012年4期)2012-04-29 06:12:13
三星電子將開設(shè)應(yīng)用程序下載商店
“八一”節(jié)日短信之一
沭阳县| 自治县| 麻栗坡县| 西宁市| 孝感市| 大城县| 枣庄市| 仁寿县| 灵寿县| 仙桃市| 满洲里市| 宽城| 临西县| 明水县| 佛冈县| 鹤山市| 临沧市| 西藏| 永仁县| 清新县| 奉贤区| 长海县| 肇州县| 文水县| 永仁县| 内黄县| 曲沃县| 弥勒县| 宝坻区| 思茅市| 汾阳市| 马关县| 临汾市| 舞阳县| 西平县| 耒阳市| 长治县| 固始县| 壤塘县| 宾阳县| 百色市|