青幼蕾,譚妙,童強,羅琪,孫懷琳,徐帥
(1.樂山師范學院 旅游學院,四川樂山,430047;2.樂山師范學院電子與材料工程學院,四川樂山,430047)
近年來,生活水平不斷提高,社會壓力也不斷增大,所以越來越多的人出行旅游。很多人選擇各種旅行社作為出行的中介,但是站在大多數(shù)人的角度來說,他們是不愿意在享受的時候受到約束的,所以有更多的人選擇按照自己的規(guī)劃出行。那么這些游客來到各地旅游應該去哪里看一看,去哪里吃一吃才會感覺到不虛此行呢?那么為各地的游客打造一款實用的APP就迫在眉睫了。在當今社會手機已經(jīng)成為人們生活中比不可少的一部分,而各地的景點的信息大都只能在PC端上搜索到,在移動端上只能看到其他游客的一些評價。為了促進各地旅游的發(fā)展,還應注重移動端的開發(fā)[1],讓用戶能夠直接了解到各地景區(qū)的最新資訊。旅游APP就為用戶定制了各地旅游值得一去的景點,規(guī)劃了游玩行程,挑選了來到當?shù)夭坏貌怀缘拿朗?,以及景點的地圖定位,方便快捷。
本軟件啟動后進入主界面后,可以點擊切換到“概覽”、“景點”、“行程”以及“美食”四個界面,通過點擊每個界面里面的控件或者item可以跳轉(zhuǎn)到對應的Activity里面進行item的詳細展示,再點擊Toolbar中的返回按鈕又可以回到主界面;在主界面里通過側(cè)滑可以跳轉(zhuǎn)到登錄界面[2]。從上面的描述中總結(jié)起來,系統(tǒng)具有以下的功能需求:(1)正常啟動APP;(2)顯示主界面:概覽攻略、熱門景點、行程路線以及重慶美食和登錄界面;(3)子界面展示:通過點擊主界面的item能夠跳轉(zhuǎn)到Activity進行詳細介紹。
Android最開始是使用Eclipse搭建的開發(fā)環(huán)境[3]。Android開發(fā)至今已有二十幾個版本,現(xiàn)在很多人仍然在使用Eclipse,其實Google公司已經(jīng)推出了新的編程工具Android Studio。與Eclipse相比,Android在構(gòu)建程序界面更方便,編輯歷史、打印日志更詳細;添加了智能識別功能,并且資源文件可以在代碼中進行預覽。所以,今后的趨勢更偏向于使用Android Studio。
進入Android開發(fā)者網(wǎng)站(http://www. androiddev tools.cn/)下載Android Studio,選擇適合自己平臺的Android Studio,最好是已經(jīng)帶了SDK和JDK[4],如圖1的第一個。下載后只需要按照步驟直接安裝,成功后就可以新建項目寫代碼了。
圖1 Android Studio版本
本軟件是一款旅游類型的軟件,展示界面較多,本文挑了3個具有代表性的界面做詳細介紹:
(1)在登錄界面中有點擊返回按鈕(Toolbar)、頭像、頭像背景、用戶名、密碼以及登錄和注冊按鈕。
(2)在MainActivity的景點這個Fragment的界面中有點擊側(cè)滑登錄按鈕(Toolbar)、底部導航、頂部導航以及景點的item。
(3)在美食點進去的Activity里面有前一個頁面?zhèn)鬟f過來的美食圖片,美食名字,美食簡介以及美食的item。
根據(jù)以上三點,分別設(shè)計其界面布局,如圖2所示。
圖2 界面示意圖
本軟件中的數(shù)據(jù)基本上存儲在數(shù)據(jù)庫中,考慮到方便性和性價比問題,本軟件使用的是云數(shù)據(jù)庫Bmob[5]。Bmob有以下優(yōu)點:第一點,能夠輕松搭建數(shù)據(jù)庫,可直接對數(shù)據(jù)庫表進行增、刪、改、查操作,它支持10種不同數(shù)據(jù)類型存儲,例如String,Number,數(shù)組等;第二點,支持多種文件的上傳和存儲,例如圖片、視頻、音頻、文檔等,并且使用了CDN加速服務、多語言SDK和Bmob提供的API接口能夠讓數(shù)據(jù)快速上傳,安全可靠;第三點,邏輯實現(xiàn)非常靈活,支持在線編寫和調(diào)試代碼,可輕松實現(xiàn)業(yè)務需求;第四點,支持定時更新,例如每天24點準時更新獲獎名單,如果配合云邏輯使用,能夠?qū)崿F(xiàn)更加復雜的業(yè)務。
要使用Bmob云數(shù)據(jù)庫只需要在它的官網(wǎng)上注冊一個賬號,成功后就可以申請創(chuàng)建數(shù)據(jù)庫了。要將數(shù)據(jù)庫應用到APP中需要獲取對應的Key[6],下載對應版本的SDK并將其嵌入到移動應用中,便可操作了,程序模塊如圖3所示,源代碼結(jié)構(gòu)如圖4所示。
圖3 應用程序結(jié)構(gòu)
圖4 工程源碼結(jié)構(gòu)
應用登錄界面是每個APP中必不可少的,它能夠?qū)⒂脩魧υ撥浖褂玫男畔⑦M行保存,方便用戶再次使用,其界面設(shè)計如圖5所示。該頁面包括登錄和注冊兩個功能,實現(xiàn)原理差不多。輸入用戶信息后點擊登錄時,第一步,判斷是否輸入用戶名,若用戶名為空,彈出“用戶名不能為空”并返回。第二步,判斷密碼是否為空,若密碼為空,彈出“密碼不能為空”并返回,第三步,當用戶名和密碼均不為空時,去數(shù)據(jù)庫根據(jù)用戶名查找數(shù)據(jù)。第四步,判斷輸入密碼與數(shù)據(jù)庫查找密碼是否一致,若不一致彈出“用戶名或密碼錯誤”;若一致彈出“登錄成功”并跳轉(zhuǎn)到主界面MainActivity[7]。由此完成登錄功能。
圖5 登錄界面
以重慶為例,景點界面又有“重慶熱門景點”、“紅色之旅不可錯過”、“巴渝文化之最佳體驗地”、“重慶周邊最美古鎮(zhèn)”四個子界面,通過點擊頂部的四個按鈕來進行切換,其實就是一個頂部導航功能的實現(xiàn),如圖6所示。
圖6 景點界面
行程界面的布局設(shè)計有兩種類型,LinearLayout和列表,如圖7所示。在這個界面中由于LinearLayout所需要的數(shù)據(jù)較少,可直接采用靜態(tài)加載數(shù)據(jù),就是在設(shè)置子控件屬性的時候,數(shù)據(jù)均采用資源文件里面的。而列表中需要加載許多的數(shù)據(jù),所以采用動態(tài)加載數(shù)據(jù)[8]。如果是字符串可以輕松加載,但是圖片則非常麻煩,如果處理不好會出現(xiàn)內(nèi)存溢出的情況,所有Android開發(fā)人常使用框架來完成。常用的圖片處理框架有ImageLoader、Picasso、Glide、Fresco四種,在本軟件中采用Picasso來完成圖片加載,因為Picasso自帶統(tǒng)計監(jiān)控功能,支持優(yōu)先級處理等。
圖7 行程界面
美食界面其實主要展示的是兩個列表,而且都是使用RecycleView來說實現(xiàn)的,如圖8所示。RecyclerView是新出來的Android 5.0 materials design中的組件之一,它不僅提供了一種耦合度更低的方式來復用ViewHolder,還可以輕松實現(xiàn)ListView、GridView以及瀑布流三種效果,本設(shè)計中實現(xiàn)了前面兩種效果。
圖8 美食界面
(1)當什么都沒輸入或者只輸入密碼,點擊登錄或注冊時,打印日志“用戶名不能為空”。
(2)當沒有輸入了用戶名沒有輸入密碼,點擊登錄或者注冊時,打印日志“密碼不能為空”。
(3)當密碼輸入錯誤時,點擊登錄按鈕會打印日志“用戶名或密碼錯誤”和輸入錯誤的密碼。
(4)當用戶名和密碼均輸入正確時,點擊登錄或注冊會打印日志“登錄成功”
(5)當輸入了用戶名和密碼,而該用戶名已經(jīng)被注冊,這時點擊注冊會打印日志“該用戶已注冊”和注冊的用戶名。
(6)當輸入用戶名和密碼,而用戶名未被注冊時,打印日志“注冊成功”。
圖9 測試效果圖
本軟件中幾乎所有的數(shù)據(jù)都存儲在云數(shù)據(jù)庫中,所以都需要進行網(wǎng)絡請求才能獲取到。比如實現(xiàn)美食界面的網(wǎng)格布局列表,當進入該頁面時,打印出數(shù)據(jù)條數(shù)和詳細數(shù)據(jù)。
圖10 網(wǎng)絡測試效果圖