韓黎晶+李志平
摘要:該文結(jié)合當(dāng)下熱門(mén)話題“智慧旅游”,分析其應(yīng)用價(jià)值,介紹了一個(gè)基于Android平臺(tái)針對(duì)云南旅游的旅游類APP的設(shè)計(jì)與實(shí)現(xiàn)。使用Java語(yǔ)言及ADT Bundle、MyEclipse、MySQL等開(kāi)發(fā)工具,實(shí)現(xiàn)了用戶觀賞了解云南景點(diǎn)的詳細(xì)信息、創(chuàng)建并管理自己的行程備忘錄事件、瀏覽云南著名美食并為其評(píng)分、登錄/注冊(cè)、預(yù)定購(gòu)票、后臺(tái)信息管理等功能,從而使人們告別傳統(tǒng)旅行模式,享受智能化、信息化和更加方便快捷的旅游體驗(yàn)。
關(guān)鍵詞:Android;Java;APP;智慧旅游;移動(dòng)設(shè)備
中圖分類號(hào):TP311.52 文獻(xiàn)標(biāo)識(shí)碼:A 文章編號(hào):1009-3044(2017)29-0042-04
Abstract: By combining with the current hot topic “Smart Tourism” and analyzing its application value, this paper introduced a tourism applications designation and development which is Based on the Android platform. Using Java language and Eclipse, MyEclipse, MySQL as development tools, my APP eventually achieved lots of functions like users can watch to know detailed information about scenic spots in Yunnan, create and manage your own trip memo event, browse famous Yunnan foods and rate them, login and register, book ticket and users information management in the background. All of those functions would help people to farewell to the conventional travel model and enjoy an intelligent, informational, and more quickly and easily tourism experience.
Key words: Android; Java; APP; Smart Tourism; mobile device
1 概述
1.1 研究背景及意義
隨著我國(guó)經(jīng)濟(jì)的飛速發(fā)展和物質(zhì)生活水平的不斷提高,人們?cè)趯W(xué)習(xí)工作之余也在追求高層次的精神生活,越來(lái)越多的人選擇旅游來(lái)放松心情。由此,“智慧旅游”[1]這一概念在當(dāng)今信息化的大背景下應(yīng)運(yùn)而生。它是互聯(lián)網(wǎng)和旅游產(chǎn)業(yè)相結(jié)合的產(chǎn)物,通過(guò)互聯(lián)網(wǎng)和信息系統(tǒng)的參與,使游客能借助便攜的終端上網(wǎng)設(shè)備自主獲取旅游相關(guān)信息,及時(shí)安排和調(diào)整旅行計(jì)劃,達(dá)到旅游信息智能獲取、方便實(shí)現(xiàn)旅游計(jì)劃的目的。
旅行行為本身具有流動(dòng)性,得益于智能手機(jī)等移動(dòng)設(shè)備的普及和APP的快速發(fā)展,順應(yīng)“智慧旅游”的大時(shí)代背景,旅游類APP因其特有的便捷性改變了人們的旅行方式 [2],使人們的自主性旅游變得更輕松、便捷。在國(guó)外,Vayama.com[3]開(kāi)發(fā)的城市指南應(yīng)用“PocketGuide”的服務(wù)在五大洲的60個(gè)城市中得以應(yīng)用,擁有多達(dá)100萬(wàn)人的用戶群;“Computer Electronics Canadas”[4]因坐擁成千上萬(wàn)關(guān)注者而被評(píng)為加拿大最受歡迎的智能旅游手機(jī)應(yīng)用程序,它為旅游者提供吃、住、行、游、購(gòu)、娛等必須的旅游服務(wù)。而國(guó)內(nèi)的途牛、同程旅游等也成為了用戶旅游出行的裝機(jī)必備應(yīng)用。
1.2 開(kāi)發(fā)平臺(tái)和工具概述
Android[5]是一個(gè)十分安全可靠的嵌入式操作系統(tǒng),本文選用它作為開(kāi)發(fā)平臺(tái)。同時(shí),選用JDK(Java軟件開(kāi)發(fā)工具包)、谷歌公司提供的集成式IDE[6]—ADT Bundle作為開(kāi)發(fā)環(huán)境,因?yàn)樗锩婕闪薊clipse和各種插件,使用方便;還使用了MyEclipse 10來(lái)編寫(xiě)后臺(tái)代碼、Tomcat作為服務(wù)器、MySQL提供數(shù)據(jù)庫(kù)支持。
2 需求分析
旅游類APP的需求主要分為兩類:內(nèi)容需求和體驗(yàn)需求。內(nèi)容需求主要是表現(xiàn)在界面設(shè)計(jì)和顯示效果上,體驗(yàn)需求則是針對(duì)客戶端的交互設(shè)計(jì),經(jīng)分析,旅游類APP所需的功能應(yīng)包括:
1) 開(kāi)啟畫(huà)面。軟件啟動(dòng)畫(huà)面是用戶對(duì)軟件的第一印象;
2) 不同類型的模塊。每個(gè)模塊內(nèi)容需有不同的表現(xiàn)形式來(lái)使軟件豐富有趣,還應(yīng)保證軟件的易用性,便于用戶操作;
3) 權(quán)限劃分。用戶權(quán)限不同,能體驗(yàn)的功能也不一樣;
4) 良好的用戶交互體驗(yàn)。將該軟件的“智慧性”運(yùn)用到實(shí)際操作中;
5) 后臺(tái)管理。對(duì)傳到服務(wù)器的用戶數(shù)據(jù)進(jìn)行管理操作。
3 總體設(shè)計(jì)
3.1 總體功能設(shè)計(jì)
該APP分為三個(gè)模塊,系統(tǒng)流程圖如圖1所示。
3.2 數(shù)據(jù)庫(kù)設(shè)計(jì)
3.2.1 數(shù)據(jù)庫(kù)模型設(shè)計(jì)
APP使用數(shù)據(jù)庫(kù)進(jìn)行登錄、注冊(cè)、購(gòu)票等操作的數(shù)據(jù)信息管理,故數(shù)據(jù)庫(kù)應(yīng)包含用戶信息實(shí)體以及購(gòu)票信息實(shí)體,它們的關(guān)系如圖2所示。
3.2.2 數(shù)據(jù)表設(shè)計(jì)
1) usermsg(用戶信息表)
用戶信息表用來(lái)存儲(chǔ)和管理用戶的登錄注冊(cè)信息,如表1所示。
2) ticket(購(gòu)票信息表)
購(gòu)票信息表用來(lái)存儲(chǔ)管理不同登錄用戶的不同購(gòu)票信息,如表2所示。endprint
4 各模塊實(shí)現(xiàn)功能的技術(shù)分析及功能測(cè)試
4.1 開(kāi)啟畫(huà)面
開(kāi)啟畫(huà)面是必備要素,用于給APP使用者良好的第一映象。啟動(dòng)時(shí)的開(kāi)啟動(dòng)畫(huà),延時(shí)2s后跳轉(zhuǎn)到APP的主體框架。如圖3所示。技術(shù)分析如下:
1) 在Manifast.xml中聲明該Java文件是APP首先運(yùn)行的;
2) 使用Handler機(jī)制實(shí)現(xiàn)開(kāi)啟畫(huà)面的延時(shí)跳轉(zhuǎn),使用intent跳轉(zhuǎn)到APP的主框架的Activity。
4.2 主框架
此APP分為三個(gè)模塊:發(fā)現(xiàn)、美食、娛樂(lè)。點(diǎn)擊不同模塊按鈕切換不同界面,選中的按鈕有顏色,沒(méi)選中的為灰色。
技術(shù)分析:使用Fragment搭建整體框架,模塊按鈕使用ImageButton控件,用線性布局將三個(gè)模塊按鈕置于Fragment的低端,上方采用FrameLayout作為容器,盛放模塊的內(nèi)容。
4.3 “發(fā)現(xiàn)”模塊
該模塊對(duì)云南的著名景點(diǎn)進(jìn)行推薦,用戶可直觀地欣賞到各景點(diǎn)的美景,點(diǎn)擊查看景點(diǎn)的詳細(xì)文字及圖片信息。模塊界面如上圖3的右圖所示。
1) 功能實(shí)現(xiàn)
①最上方實(shí)現(xiàn)了圖片輪詢效果,三張景點(diǎn)圖片支持自動(dòng)或手動(dòng)的無(wú)限循環(huán)輪播,使頁(yè)面具有動(dòng)畫(huà)效果,如圖4所示。每張圖片點(diǎn)進(jìn)去是對(duì)應(yīng)景點(diǎn)的詳細(xì)介紹信息,通過(guò)進(jìn)度條可看到信息加載程度。
②在“行程備忘錄”中用戶可制定自己的行程計(jì)劃并對(duì)其進(jìn)行管理,這是旅行類APP需要的“小工具類”。備忘錄界面如圖5所示。用戶可自己增加行程、修改行程、刪除行程,以“刪除”為例,詳細(xì)功能實(shí)現(xiàn)及測(cè)試如圖6所示。
③下方的景點(diǎn)圖片上實(shí)現(xiàn)了播放器功能,用戶可在線觀看該景點(diǎn)的宣傳片,并可暫停、快進(jìn)、快退來(lái)調(diào)節(jié)播放進(jìn)度。功能測(cè)試如圖7所示。
2) 技術(shù)分析
①使用ViewPager實(shí)現(xiàn)圖片輪詢效果, 它需繼承Javav4包,用適配器Adapter盛裝圖片;用Handler實(shí)現(xiàn)圖片延時(shí)跳轉(zhuǎn);鏈接加載進(jìn)度條由ProgressBar控件實(shí)現(xiàn),由WebView控件顯示鏈接的內(nèi)容;
②行程備忘錄使用Eclipse中的本地?cái)?shù)據(jù)庫(kù)實(shí)現(xiàn)對(duì)行程事件的增刪改查操作;備忘錄上方的四個(gè)事件按鈕使用了TabHost來(lái)實(shí)現(xiàn)點(diǎn)擊切換功能;
③播放器使用了VideoView組件,編寫(xiě)代碼實(shí)現(xiàn)播放宣傳片時(shí)設(shè)備自動(dòng)橫屏以便觀看。
4.4 “美食”模塊
美食是吸引人們到一個(gè)地方旅游的重要因素之一,該模塊精選了云南最具特色的美食,用精美的圖片讓用戶領(lǐng)略云南美食的特色與文化。頁(yè)面如圖8所示。用戶可滑動(dòng)畫(huà)廊瀏覽美食圖片,增加了APP的趣味性、動(dòng)態(tài)性以及與用戶的互動(dòng)效果;中間是美食圖片及簡(jiǎn)介,點(diǎn)擊可查看對(duì)應(yīng)美食的詳細(xì)介紹,如圖9所示。最下方對(duì)云南美食進(jìn)行評(píng)分并反饋評(píng)分結(jié)果,測(cè)試效果如圖10所示。
技術(shù)分析如下:
1) 使用Gallery控件實(shí)現(xiàn)畫(huà)廊效果;
2) 中間可點(diǎn)擊的圖片使用ListView,它包含多個(gè)item,每個(gè)item對(duì)應(yīng)一個(gè)信息欄,裝在Adapter中;使用RatingBar實(shí)現(xiàn)評(píng)分功能,Activity需繼承OnRatingBarChangeListener接口,評(píng)分及反饋功能具體實(shí)現(xiàn)在下文測(cè)試部分詳述。
4.5 “娛樂(lè)”模塊
預(yù)定型功能是智慧旅游類APP的重要功能之一,有預(yù)定功能的APP能使人們根據(jù)自身的需求隨時(shí)進(jìn)行提前的預(yù)訂或購(gòu)買(mǎi),更符合人們當(dāng)即決策的思路。此模塊實(shí)現(xiàn)娛樂(lè)類別下的電影訂票功能。界面如圖11所示。
1) 點(diǎn)擊某一電影欄查看其詳細(xì)信息,點(diǎn)選座購(gòu)票進(jìn)行購(gòu)票,左上的返回按鈕可回到上一級(jí),如圖12所示。
2) 點(diǎn)擊“選座購(gòu)票”按鈕后,若用戶沒(méi)有登錄則會(huì)跳到登錄注冊(cè)界面。注冊(cè)、登錄的流程圖如圖13、14所示;點(diǎn)擊“注冊(cè)”按鈕進(jìn)行注冊(cè),信息填寫(xiě)不完整或輸入的賬號(hào)已存在都會(huì)跳出錯(cuò)誤提示,若信息填寫(xiě)無(wú)誤則完成注冊(cè),功能測(cè)試如圖15所示;用戶填寫(xiě)自己的信息登錄成功即可進(jìn)入購(gòu)票,若信息填寫(xiě)不完整、錯(cuò)誤或賬號(hào)不存在的話會(huì)有錯(cuò)誤提示,功能測(cè)試如圖16所示。
③選座購(gòu)票:點(diǎn)擊“選座購(gòu)票”進(jìn)入購(gòu)票界面,首先選擇要看的場(chǎng)次,再在該場(chǎng)次中選擇座位,每個(gè)用戶最多選4個(gè)座位,已被預(yù)訂的座位不可選,在已選的座位上再點(diǎn)擊一次即刪除當(dāng)前選擇,已選的座位信息會(huì)在下方實(shí)時(shí)顯示,按“確定選票”,再點(diǎn)擊“我的選票”即可查看選票信息,購(gòu)票成功,用戶可退出登錄。圖17是電影場(chǎng)次選擇頁(yè)面,圖18是選座購(gòu)票頁(yè)面。詳細(xì)的購(gòu)票流程的功能測(cè)試部分如圖19所示。
4.6 后臺(tái)管理模塊
功能實(shí)現(xiàn):用戶在娛樂(lè)模塊登錄注冊(cè)、購(gòu)票的信息都會(huì)傳到服務(wù)器上讓后臺(tái)管理員對(duì)其進(jìn)行管理。管理員登錄功能測(cè)試如圖20所示;用戶的信息管理功能(修改、刪除用戶信息)的測(cè)試結(jié)果如圖21所示;后臺(tái)數(shù)據(jù)分頁(yè)功能如圖22所示。
技術(shù)分析如下:
1) MyEclipse 10為編寫(xiě)后臺(tái)代碼的平臺(tái),使用開(kāi)源框架Struts[7],它基于Web的MVC模型,極大地簡(jiǎn)化了Web應(yīng)用程序的開(kāi)發(fā),使用Json[8]提供服務(wù)器和Android APP之間的數(shù)據(jù)接口,實(shí)現(xiàn)Web服務(wù)器端和安卓移動(dòng)終端、MySQL之間的數(shù)據(jù)傳遞。
2) 管理員登錄頁(yè)面使用了Javaweb網(wǎng)頁(yè)技術(shù),用html(http協(xié)議超文本標(biāo)記語(yǔ)言)、css(樣式表)、JavaScript腳本語(yǔ)言設(shè)計(jì)網(wǎng)頁(yè)布局;使用jsp技術(shù)起到在html中嵌入Java代碼的作用;使用Structs2框架來(lái)制作action接口和返回參數(shù),或者返回頁(yè)面,一個(gè)action對(duì)應(yīng)一個(gè)動(dòng)作jquery,其作用是實(shí)現(xiàn)頁(yè)面上的一些動(dòng)態(tài)效果(如頁(yè)面上的滑動(dòng)解鎖效果)。jdbc是一種用于執(zhí)行SQL語(yǔ)句的Java API,使用jdbc驅(qū)動(dòng)程序來(lái)建立服務(wù)器與數(shù)據(jù)庫(kù)的連接。endprint