• 
    

    
    

      99热精品在线国产_美女午夜性视频免费_国产精品国产高清国产av_av欧美777_自拍偷自拍亚洲精品老妇_亚洲熟女精品中文字幕_www日本黄色视频网_国产精品野战在线观看

      ?

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

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

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

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

      0 引言

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

      1 研究基礎(chǔ)

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

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

      1.2 Android傳感器接口劃分

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

      1.3 Google Maps接口開發(fā)

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

      2 軟件架構(gòu)

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

      天氣預(yù)報(bào)模塊主要通過解析Google Weather或者Yahoo網(wǎng)站的XML文檔實(shí)現(xiàn)天氣的實(shí)時(shí)預(yù)測(cè)。Google Maps模塊通過手機(jī)短信模塊與Google API的整合,運(yùn)用多線程技術(shù),使手機(jī)程序在后臺(tái)運(yùn)行,攔截監(jiān)聽短信,當(dāng)捕獲含有特殊短信內(nèi)容的短信時(shí),即喚醒程序,發(fā)送使用者的位置告知短信發(fā)送人,同時(shí)地圖還擁有當(dāng)前位置顯示,衛(wèi)星、街道視圖的切換等功能。指南針模塊則通過對(duì)Android手機(jī)底層硬件接口,從傳感器探頭上獲得數(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的核心部分,它分為底層的庫(kù)文件和運(yùn)行環(huán)境,以及上層的應(yīng)用程序框架,中間件可以稱作是連接操作系統(tǒng)與應(yīng)用程序的紐帶,在中間件的底層庫(kù)與運(yùn)行環(huán)境中,底層庫(kù)文件包含了輕量級(jí)SQLite數(shù)據(jù)庫(kù),媒體框架,System C庫(kù)文件,外觀管理員(surface manager),SGL,SSL,3D函數(shù)庫(kù)與FreeType等庫(kù)文件。雖然Android平臺(tái)使用 Java語言編碼,卻使用自帶的 Android Runtime來運(yùn)行,該Runtime內(nèi)有2個(gè)重要元件,分別是Dalvik Virtual Machine(Dalvik虛擬機(jī)器)與Core Libraries(核心函數(shù)庫(kù))。

      核心函數(shù)庫(kù)里包含了絕大多數(shù)Java程序語言所需要調(diào)用的函數(shù),而每個(gè)Android程序都以各自進(jìn)程來執(zhí)行,并且都以自屬的Dalvik虛擬機(jī)器來同時(shí)執(zhí)行,各個(gè)程序的執(zhí)行效率不會(huì)受到影響。應(yīng)用程序框架包含了10個(gè)主要的軟件元件,如Location Manager(位置管理器)、Activity Manager(程序管理器)、Window Manager(視窗管理器)、Resource Manager(資源管理器)等,便于用戶開發(fā)不同類型的應(yīng)用程序,這種框架在移動(dòng)終端應(yīng)用程序開發(fā)歷史上是獨(dú)有的。在應(yīng)用程序執(zhí)行時(shí),通常使用Intent類和IntentFilter類來進(jìn)行不同窗體之間的切換。在Android.content.Intent包中,一個(gè) Intent描述的是應(yīng)用程序想做的Active,而IntentFilter表示一個(gè)活動(dòng)能處理的所有Intent。而在界面布局方面,Android的界面,需要寫在res/layout的XML里面,一般情況下一個(gè)XML對(duì)應(yīng)一個(gè)界面。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 指南針功能實(shí)現(xiàn)

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

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

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

      3.3 Android Maps

      本系統(tǒng)開發(fā)平臺(tái)搭建在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地圖資源,客戶端實(shí)現(xiàn)短信監(jiān)聽、接收、發(fā)送數(shù)據(jù)等功能。Android終端服務(wù)模式如圖3所示。

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

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

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

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

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

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

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

      其次,在進(jìn)行SMS匹配成功后對(duì)主程序喚起。

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

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

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

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

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

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

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

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

      4 功能實(shí)現(xiàn)

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

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

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

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

      5 結(jié)論

      Android系統(tǒng)網(wǎng)絡(luò)集成性很高,內(nèi)部集成了大量的Google應(yīng)用,涵蓋了生活中各個(gè)方面的網(wǎng)絡(luò)應(yīng)用,對(duì)長(zhǎng)期使用網(wǎng)絡(luò),信息依賴度比較高的人群很合適。開發(fā)的“基于Android系統(tǒng)的生活即時(shí)助手”是為了方便那些愛好外出游玩的人群,使他們?cè)谕獬雎糜螘r(shí)可以讓親友及時(shí)了解位置,也可以通過指南針、地圖、天氣等服務(wù)綜合了解當(dāng)時(shí)所處的狀況,自我進(jìn)行判斷、處理問題。把程序整合到手機(jī)設(shè)備上主要是利用了移動(dòng)設(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]廖軍,郭達(dá).移動(dòng)互聯(lián)網(wǎng)應(yīng)用趨勢(shì)—基于Web的終端平臺(tái)[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]裴春梅,楊秀清,王貴明.傳感器在智能手機(jī)中的應(yīng)用[J].湖南農(nóng)業(yè)大學(xué)學(xué)報(bào):自然科學(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].測(cè)繪信息與工程,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]費(fèi)洪曉,康松林,朱小娟,等.基于詞頻統(tǒng)計(jì)的中文分詞的研究[J].計(jì)算機(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實(shí)現(xiàn)Web查詢[J].計(jì)算機(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é)報(bào),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)用程序短信文檔
      有人一聲不吭向你扔了個(gè)文檔
      刪除Win10中自帶的應(yīng)用程序
      道歉短信
      代發(fā)短信
      基于RI碼計(jì)算的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é)日短信之一
      石嘴山市| 大厂| 临汾市| 荔浦县| 吉木萨尔县| 岗巴县| 大荔县| 静海县| 延寿县| 汶上县| 富宁县| 岳普湖县| 巴马| 延吉市| 历史| 康保县| 从化市| 镇坪县| 佳木斯市| 白城市| 诸城市| 文昌市| 疏勒县| 长岭县| 绥化市| 林口县| 新源县| 宜兴市| 林州市| 昔阳县| 桂林市| 兴山县| 汾阳市| 遵义县| 梅河口市| 衢州市| 元阳县| 迁安市| 奈曼旗| 同德县| 东乡县|