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