當(dāng)前位置:首頁 > 嵌入式 > 嵌入式軟件
[導(dǎo)讀]Android城市導(dǎo)游系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)

摘 要: 智能手機(jī)與Internet 服務(wù)的結(jié)合是未來信息發(fā)展和軟件應(yīng)用的趨勢(shì)。Android 手機(jī)操作系統(tǒng)是Google 公司于2007 年11 月宣布的基于Linux? V2.6 內(nèi)核的開源的手機(jī)操作系統(tǒng),具有廣泛的應(yīng)用和發(fā)展前景。本文中將Web 開發(fā)中的三層架構(gòu)移植改進(jìn)為數(shù)據(jù)服務(wù)器、應(yīng)用服務(wù)器和手機(jī)客戶端三層的系統(tǒng)架構(gòu),提出了基于web services 的一種軟件開發(fā)框架,并依據(jù)這種框架開發(fā)了Android 城市導(dǎo)游系統(tǒng),可以實(shí)現(xiàn)對(duì)城市主要景點(diǎn)、住宿、飲食、購(gòu)物等基礎(chǔ)信息的在線查詢。

  1 引言

  手機(jī)是人們可以隨身攜帶的便利的通訊工具,隨著智能手機(jī)的出現(xiàn),它也成為人們快速方便的獲得信息的一種重要途徑。而越來越多的手機(jī)軟件更是迅速的改變著人們的生活。但是,由于硬件及存儲(chǔ)空間的限制,手機(jī)中存儲(chǔ)的信息也受到了限制。

  本文中,將手機(jī)軟件開發(fā)與Internet 相結(jié)合,將Web 三層架構(gòu)移植到手機(jī)軟件的開發(fā)中,設(shè)計(jì)并實(shí)現(xiàn)了基于Android 操作系統(tǒng)的手機(jī)應(yīng)用軟件--城市導(dǎo)游系統(tǒng),可以實(shí)現(xiàn)對(duì)城市主要景區(qū)、酒店、旅店的分類查詢,以及通過使用者的手機(jī)定位功能實(shí)現(xiàn)對(duì)其周邊景區(qū)、酒店、旅店的信息查詢,實(shí)現(xiàn)了城市導(dǎo)游中的游玩、飲食、住宿等的查詢需求。

  2 Android 操作系統(tǒng)介紹

  Android 是Google 于2007 年11 月宣布的基于Linux? V2.6 內(nèi)核的開源的手機(jī)操作系統(tǒng)。最初,Android 的部署目標(biāo)是移動(dòng)電話領(lǐng)域,包括智能電話和更廉價(jià)的翻蓋手機(jī)。但是,Android 全面的計(jì)算服務(wù)和豐富的功能支持完全有能力擴(kuò)展到移動(dòng)電話市場(chǎng)以外。因此 Android 也可以用于其他的平臺(tái)和應(yīng)用程序,發(fā)展前景非常廣闊。

  Android 系統(tǒng)采用了分層的架構(gòu),從高層到低層分別是應(yīng)用程序?qū)?、?yīng)用程序框架層、系統(tǒng)運(yùn)行庫(kù)和Linux 核心層。在應(yīng)用程序?qū)又?,提供了豐富的核心應(yīng)用程序,包括email 客戶端,SMS 短消息程序,日歷,地圖,瀏覽器,聯(lián)系人管理程序等。所有的應(yīng)用程序都是使用JAVA 語言編寫的。應(yīng)用程序框架層簡(jiǎn)化了組件的重用,任何一個(gè)應(yīng)用程序都可以發(fā)布或使用其他應(yīng)用程序發(fā)布的功能塊。系統(tǒng)運(yùn)行庫(kù)包含一組核心庫(kù)和Dalvik 虛擬機(jī)。應(yīng)用程序框架層。Linux 核心層用來提供系統(tǒng)的底層服務(wù),位于硬件和其它軟件層之間,采用 YAFFS2 文件系統(tǒng)。

  3 系統(tǒng)框架設(shè)計(jì)

  在基于Web 的軟件開發(fā)中,常用到Web 三層架構(gòu),即用戶接口層,業(yè)務(wù)邏輯層,數(shù)據(jù)訪問層。用戶接口層,即客戶端或?yàn)g覽器端,主要負(fù)責(zé)數(shù)據(jù)的顯示。業(yè)務(wù)邏輯層,即應(yīng)用服務(wù)器,主要負(fù)責(zé)數(shù)據(jù)的業(yè)務(wù)邏輯處理。數(shù)據(jù)訪問層,即數(shù)據(jù)服務(wù)器,主要負(fù)責(zé)對(duì)數(shù)據(jù)庫(kù)的存取操作。

  Web 三層架構(gòu)可以移植到手機(jī)應(yīng)用程序的開發(fā)中,將手機(jī)的應(yīng)用程序作為客戶端,負(fù)責(zé)用戶接口層的工作,而大量的數(shù)據(jù)存儲(chǔ)在Internet 數(shù)據(jù)服務(wù)器中,邏輯業(yè)務(wù)的處理由應(yīng)用服務(wù)器負(fù)責(zé),從而實(shí)現(xiàn)智能手機(jī)與Internet 的結(jié)合,可以使手機(jī)輕松方便的訪問Internet 上的大量數(shù)據(jù)。

  在基于Android 的城市導(dǎo)游系統(tǒng)中,采用了客戶端、應(yīng)用服務(wù)器和數(shù)據(jù)服務(wù)器三層架構(gòu)。本系統(tǒng)整體架構(gòu)如圖1 所示??蛻舳耸腔贏ndroid 操作系統(tǒng)的手機(jī)應(yīng)用程序,負(fù)責(zé)數(shù)據(jù)的輸入、解析和顯示。應(yīng)用服務(wù)器主要以Web Services 的方式提供服務(wù),并在數(shù)據(jù)處理中使用了Lucene 索引和中文切詞技術(shù)。數(shù)據(jù)服務(wù)器主要負(fù)責(zé)數(shù)據(jù)的存儲(chǔ),數(shù)據(jù)庫(kù)采用MySQL.

  將系統(tǒng)的整體架構(gòu)分成三個(gè)部分,各個(gè)部分相對(duì)獨(dú)立,將數(shù)據(jù)的存儲(chǔ)、處理和顯示分開,有利于系統(tǒng)的開發(fā)和維護(hù);各個(gè)部分之間的聯(lián)系通過軟件來連接,也有利于系統(tǒng)的變遷和升級(jí)。

圖1 系統(tǒng)架構(gòu)圖

  4 系統(tǒng)的模塊圖

  城市導(dǎo)游系統(tǒng)主要實(shí)現(xiàn)對(duì)城市景區(qū)、購(gòu)物、食宿等信息的查詢,以及通過手機(jī)定位查詢周邊的相關(guān)信息。系統(tǒng)的模塊圖如圖2 所示。其中,在景區(qū)、購(gòu)物、食宿的各個(gè)模塊中,還可以具體按照城市的分區(qū)查詢、精確查詢、按照排行等進(jìn)行進(jìn)一步細(xì)致的查詢。

圖2 系統(tǒng)模塊圖

5 系統(tǒng)的設(shè)計(jì)實(shí)現(xiàn)

5.2 邏輯業(yè)務(wù)處理

  對(duì)數(shù)據(jù)的邏輯處理是連接數(shù)據(jù)服務(wù)器和客戶端的重要組成部分。將數(shù)據(jù)的處理部分獨(dú)立出來,將數(shù)據(jù)的存儲(chǔ)和顯示分開,真正實(shí)現(xiàn)了系統(tǒng)的邏輯獨(dú)立性和物理獨(dú)立性。對(duì)于數(shù)據(jù)的邏輯處理, 采用基于Apache Axis2 引擎來建立Web Services 服務(wù)的方法來實(shí)現(xiàn)。將所需要的數(shù)據(jù)以服務(wù)的方式提供,便于客戶端對(duì)數(shù)據(jù)的訪問,也有利于服務(wù)的更新與維護(hù)。

  Apache Axis2 是新一代的SOAP 引擎,采用名為AXIOM(AXIs Object Model)的新核心 XML 處理模型,利用新的XML 解析器提供的靈活性按需構(gòu)造對(duì)象模型。

  客戶端對(duì)數(shù)據(jù)的需求往往是批量的數(shù)據(jù),即從數(shù)據(jù)庫(kù)或索引中查詢出的數(shù)據(jù)是多條記錄集的形式。而對(duì)于這些記錄集的處理是相當(dāng)復(fù)雜的,為了簡(jiǎn)化WebServices 的處理和客戶端的解析,將結(jié)果集封裝在自圖7 景點(diǎn)查詢界面定義的類中。

  如在景區(qū)模塊中,定義了類SceneryArray 存放景點(diǎn)列表信息的記錄集。定義了函數(shù)public SceneryArraygetService1(String area),主要功能是根據(jù)用戶輸入的信息,查詢并返回查詢到的景點(diǎn)列表,把結(jié)果集封裝到自定義類SceneryArray 的對(duì)象中, 返回SceneryArray 的對(duì)象。對(duì)于函數(shù)getSercice1(Stringarea)將發(fā)布成Web Services 服務(wù)。

  5.3 客戶端的設(shè)計(jì)

  客戶端,也就是用戶所使用的智能手機(jī),本系統(tǒng)基于Android 操作系統(tǒng)開發(fā)。用戶可以通過智能手機(jī)提供的輸入界面輸入要查詢的信息,然后連接服務(wù)器,最后將所需數(shù)據(jù)在客戶端顯示。由于Web Services提供的數(shù)據(jù)是自定義類的形式,客戶端還要負(fù)責(zé)對(duì)數(shù)據(jù)的部分解析處理。在客戶端, 采用了KSoap2 Android 來實(shí)現(xiàn)連接服務(wù)器和數(shù)據(jù)的解析等工作。KSoap2 Android 是 Android 平臺(tái)上一個(gè)高效、輕量級(jí)的 SOAP 開發(fā)包。等同于 Android 上的KSoap2 的移植版本。是一個(gè)SOAPwebservice客戶端包。主要用于資源受限制的Java 環(huán)境如Applets 或J2ME 應(yīng)用程序(CLDC/CDC/MIDP)。

  6 設(shè)計(jì)結(jié)果與分析

  城市導(dǎo)游系統(tǒng)使用戶可以便捷的通過智能手機(jī)終端連接和訪問Internet 服務(wù)器,獲得數(shù)據(jù)和信息服務(wù)。將手機(jī)的方便快捷與Internet 服務(wù)器的大數(shù)據(jù)容量和高性能服務(wù)支持有效的結(jié)合起來,發(fā)揮二者之優(yōu)勢(shì)。圖7 是系統(tǒng)的景點(diǎn)查詢界面,圖8 是通過手機(jī)定位以便查詢周邊信息的界面。

圖7 景點(diǎn)查詢界面

圖8 地圖定位界面。

  7 結(jié)束語

  本系統(tǒng)中將Web 開發(fā)中的三層架構(gòu)移植改進(jìn)為數(shù)據(jù)服務(wù)器、應(yīng)用服務(wù)器和手機(jī)客戶端三層的系統(tǒng)架構(gòu),便于系統(tǒng)各部分的獨(dú)立開發(fā),有利于系統(tǒng)的更新和維護(hù),并可以方便的將本系統(tǒng)升級(jí)以適用于不同手機(jī)操作平臺(tái),從而實(shí)現(xiàn)本系統(tǒng)的跨平臺(tái)應(yīng)用。智能手機(jī)與Internet 服務(wù)的結(jié)合必將成為未來信息發(fā)展的趨勢(shì),而基于智能手機(jī)和Internet 服務(wù)的軟件應(yīng)用也必將有著廣泛的應(yīng)用前景。

  5.1 數(shù)據(jù)服務(wù)器的實(shí)現(xiàn)

  數(shù)據(jù)服務(wù)器主要負(fù)責(zé)數(shù)據(jù)的存儲(chǔ),包括數(shù)據(jù)庫(kù)和文件兩種形式。數(shù)據(jù)庫(kù)采用MySQL 數(shù)據(jù)庫(kù)。MySQL是一個(gè)小型關(guān)系型數(shù)據(jù)庫(kù)管理系統(tǒng),它被廣泛地應(yīng)用在Internet 上的中小型網(wǎng)站中。其體積小、速度快、總體擁有成本低,既能夠作為一個(gè)單獨(dú)的應(yīng)用程序應(yīng)用在客戶端服務(wù)器網(wǎng)絡(luò)環(huán)境中,也能夠作為一個(gè)庫(kù)而嵌入到其他的軟件中提供多語言支持,非常靈活。城市導(dǎo)游系統(tǒng)的數(shù)據(jù)庫(kù)結(jié)構(gòu)如下。

 ?。?) Scenery:負(fù)責(zé)記錄景點(diǎn)的信息。

圖3 scenery

 ?。?) Market:負(fù)責(zé)記錄消費(fèi)場(chǎng)所的信息。

圖4 market.

 ?。?)restaurant:負(fù)責(zé)記錄餐飲場(chǎng)所的信息。

圖5 restaurant.

 ?。?)hotel:負(fù)責(zé)記錄住宿信息。

圖6 restaurant.

  對(duì)于數(shù)據(jù)庫(kù)中的大量數(shù)據(jù),根據(jù)用戶對(duì)這些數(shù)據(jù)的敏感度不同,數(shù)據(jù)的查詢概率也不同,對(duì)于經(jīng)常查詢的數(shù)據(jù),可以通過建立索引的方式來提高查詢的速度。本系統(tǒng)采用Lucene 檢索引擎和中文切詞技術(shù),針對(duì)數(shù)據(jù)庫(kù)中,查詢概率較大的數(shù)據(jù)建立索引文件,將對(duì)數(shù)據(jù)庫(kù)中大量數(shù)據(jù)的查詢轉(zhuǎn)化為對(duì)索引文件的查詢,從而大大的提高了查詢效率。而索引文件的建立和查詢都是通過軟件實(shí)現(xiàn),有利于數(shù)據(jù)的更新和維護(hù)。

本站聲明: 本文章由作者或相關(guān)機(jī)構(gòu)授權(quán)發(fā)布,目的在于傳遞更多信息,并不代表本站贊同其觀點(diǎn),本站亦不保證或承諾內(nèi)容真實(shí)性等。需要轉(zhuǎn)載請(qǐng)聯(lián)系該專欄作者,如若文章內(nèi)容侵犯您的權(quán)益,請(qǐng)及時(shí)聯(lián)系本站刪除。
換一批
延伸閱讀

9月2日消息,不造車的華為或?qū)⒋呱龈蟮莫?dú)角獸公司,隨著阿維塔和賽力斯的入局,華為引望愈發(fā)顯得引人矚目。

關(guān)鍵字: 阿維塔 塞力斯 華為

倫敦2024年8月29日 /美通社/ -- 英國(guó)汽車技術(shù)公司SODA.Auto推出其旗艦產(chǎn)品SODA V,這是全球首款涵蓋汽車工程師從創(chuàng)意到認(rèn)證的所有需求的工具,可用于創(chuàng)建軟件定義汽車。 SODA V工具的開發(fā)耗時(shí)1.5...

關(guān)鍵字: 汽車 人工智能 智能驅(qū)動(dòng) BSP

北京2024年8月28日 /美通社/ -- 越來越多用戶希望企業(yè)業(yè)務(wù)能7×24不間斷運(yùn)行,同時(shí)企業(yè)卻面臨越來越多業(yè)務(wù)中斷的風(fēng)險(xiǎn),如企業(yè)系統(tǒng)復(fù)雜性的增加,頻繁的功能更新和發(fā)布等。如何確保業(yè)務(wù)連續(xù)性,提升韌性,成...

關(guān)鍵字: 亞馬遜 解密 控制平面 BSP

8月30日消息,據(jù)媒體報(bào)道,騰訊和網(wǎng)易近期正在縮減他們對(duì)日本游戲市場(chǎng)的投資。

關(guān)鍵字: 騰訊 編碼器 CPU

8月28日消息,今天上午,2024中國(guó)國(guó)際大數(shù)據(jù)產(chǎn)業(yè)博覽會(huì)開幕式在貴陽舉行,華為董事、質(zhì)量流程IT總裁陶景文發(fā)表了演講。

關(guān)鍵字: 華為 12nm EDA 半導(dǎo)體

8月28日消息,在2024中國(guó)國(guó)際大數(shù)據(jù)產(chǎn)業(yè)博覽會(huì)上,華為常務(wù)董事、華為云CEO張平安發(fā)表演講稱,數(shù)字世界的話語權(quán)最終是由生態(tài)的繁榮決定的。

關(guān)鍵字: 華為 12nm 手機(jī) 衛(wèi)星通信

要點(diǎn): 有效應(yīng)對(duì)環(huán)境變化,經(jīng)營(yíng)業(yè)績(jī)穩(wěn)中有升 落實(shí)提質(zhì)增效舉措,毛利潤(rùn)率延續(xù)升勢(shì) 戰(zhàn)略布局成效顯著,戰(zhàn)新業(yè)務(wù)引領(lǐng)增長(zhǎng) 以科技創(chuàng)新為引領(lǐng),提升企業(yè)核心競(jìng)爭(zhēng)力 堅(jiān)持高質(zhì)量發(fā)展策略,塑強(qiáng)核心競(jìng)爭(zhēng)優(yōu)勢(shì)...

關(guān)鍵字: 通信 BSP 電信運(yùn)營(yíng)商 數(shù)字經(jīng)濟(jì)

北京2024年8月27日 /美通社/ -- 8月21日,由中央廣播電視總臺(tái)與中國(guó)電影電視技術(shù)學(xué)會(huì)聯(lián)合牽頭組建的NVI技術(shù)創(chuàng)新聯(lián)盟在BIRTV2024超高清全產(chǎn)業(yè)鏈發(fā)展研討會(huì)上宣布正式成立。 活動(dòng)現(xiàn)場(chǎng) NVI技術(shù)創(chuàng)新聯(lián)...

關(guān)鍵字: VI 傳輸協(xié)議 音頻 BSP

北京2024年8月27日 /美通社/ -- 在8月23日舉辦的2024年長(zhǎng)三角生態(tài)綠色一體化發(fā)展示范區(qū)聯(lián)合招商會(huì)上,軟通動(dòng)力信息技術(shù)(集團(tuán))股份有限公司(以下簡(jiǎn)稱"軟通動(dòng)力")與長(zhǎng)三角投資(上海)有限...

關(guān)鍵字: BSP 信息技術(shù)
關(guān)閉
關(guān)閉