武千惠,溫川雪
(1.廣州醫科大學信息管理系,廣州511436;2.廣東省廣晟財務有限公司,廣州510623)
基于Android的掌上廣州
武千惠1,2,溫川雪1
(1.廣州醫科大學信息管理系,廣州511436;2.廣東省廣晟財務有限公司,廣州510623)
設計一款名為“掌上廣州”的移動App,是基于Android的便捷的廣州旅游信息軟件。其在Android Studio開發環境下,具有友好生動的界面,信息量豐富,具有購物、景點、醫療、美食、住宿等豐富的欄目。此外,系統在百度地圖API的基礎上上進行二次開發,把百度地圖的定位和導航功能與旅游軟件的特色功能進行了融合。經測試,該App在多個版本的Android平臺上均能流暢地運行。
Android;廣州;手機
Android系統是第一個為移動終端打造的真正開放和完整的移動軟件操作系統,其開源性、占有率高、適用范圍廣等特點,較其他系統不可替代的優異性[1-2]。
本App對廣州的美食、餐飲、醫療、景點進行等進行了介紹,對眾多的外來人員來說是一款非常實用的App。它利用Java語言和Android Studio編輯工具開發[3-4],采用Android開源系統技術,還涉及到Android SDK、Dalvik等相關理論及技術,目的是讓用戶全方位地、更加方便快捷地了解廣州的各種信息,以便用戶安排計劃出行、娛樂、生活、工作等[5]。
1.1 啟動頁面
App啟動后首先進入的是一個啟動頁面,然后給主功能頁面出現提供一個緩沖。其一般的功能是為App做一些系統信息的配置,例如檢查App更新,為主動登錄的App做用戶登錄等[6]。
1.2 注冊登錄頁面
軟件的功能是公共的,數據屬于個人私有的,因此本軟件為了保護用戶隱私,在使用本軟件時必須注冊自己的獨立賬號才能登錄。
1.3 首頁
用戶可以點擊美食、景點、住宿、醫療、購物、交通、氣候等功能按鈕,查詢廣州著名的小吃、菜肴,欣賞廣州各大著名景點,查看有名的大型購物商場、了解廣州各大醫院的基本信息,還可以查看酒店住宿信息等,可以讓用戶們更加快速了解廣州并更加便捷的生活,為來廣州旅游、生活、工作的外地人帶來了極大的快捷。

圖1 首頁用例圖
1
1.4 搜索頁面
在搜索板塊中,本軟件提供了搜索建議框與本應用中的動態列表選項。點擊搜索框,可鏈接到百度地圖接口,引用百度地圖進行地點搜索;用戶也可以搜索到本應用中已有的信息,并快捷搜索到相應界面,在動態列表選項中用戶可以左右上下滑動來翻看信息,選定指定頁面。
1.5 我的頁面
可以設置個人頭像,頭像設置是使用本地相冊取圖裁剪,再保存圖片路徑到數據庫。還可以查看更多關于本軟件的消息以及包括了清除緩存功能,讓用戶更好的體驗使用軟件的樂趣[7]。

圖2 掌上廣州系統的網絡拓撲圖

圖3 掌上廣州系統類圖
2.1 啟動頁面的實現
App啟動后首先進入的是一個啟動頁面,如圖4所示,是個全屏頁面,隱藏了默認的狀態欄ActionBar。頁面的主布局,是一個LinearLayout的控件,圖片是通過屬性設置的。當點擊App進入,自動開啟一個計時任務,讓這個頁面顯示3秒后開啟主界面[8]。

圖4 啟動頁面

圖5 登錄界面
2.2 登錄、注冊功能的實現
用戶注冊實現的過程主要有幾個步驟,用戶從鍵盤向輸入框輸入用戶信息,當用戶點擊確認按鈕從輸入框提取信息。首先會對信息做判空驗證,如果驗證通過,就將數據寫入本地數據庫。本地數據庫保存的數據結構如表1。

表1 數據庫用戶數據結構
用戶登錄實現的過程主要有幾個步驟,用戶從鍵盤向輸入框輸入用戶信息,當用戶點擊確認按鈕從輸入框提取信息。首先會對信息做判空驗證,如果驗證通過,就根據用戶名和密碼去本地數據庫提取用戶信息,數據庫如果存在該用戶,登錄成功,否則給出用戶不存在的提醒。用戶登錄和注冊的實現界面如圖5、6。
2.3 首頁模塊的實現
用戶登錄成功后就會進入App主界面,設計為購物、景點、美食、文化、醫療和住宿信息的功能選項模塊。界面實現的布局結構,由上往下,由左往右,分別是TextView,一個自定義的滑動View,這個View繼承自ViewPage,在原生View的基礎上面開啟了定時任務,每過5秒切換圖片,然后就是為這個View設置點擊事件,處理當用戶點擊后的功能。再下面是一個GridView分開的六個模塊,六個模塊是通過適配器放入數據。底部導航欄是三個按鈕,按鈕是ImageView控件設置了點擊事件?;瑒幽K的設計可以是手動滑動,還可以通過下方按鈕的點擊切換模塊[9-10]。首頁如圖7所示。

圖6 用戶注冊面

圖7 首頁界面
2.4 頁面跳轉的實現
當用戶點擊一些設置了點擊事件的控件后就會處理一些點擊事件。比如登錄界面,當點擊登錄按鈕后就是從登錄界面跳到首頁界面。
跳轉的主要通過Intent實現。Intent是一個將要執行的動作的抽象的描述,由Intent來協助完成An?droid各個組件之間的通訊。比如調用Activity實例化對象的startActivity()來啟動一個activity,或者由broad?caseIntent()來傳遞給所有感興趣的BroadcaseReceiver,或者由startService()/bindservice()來啟動一個后臺的service??梢?,intent主要用來啟動activity或者ser?vice[11]。
2.5 購物、美食、文化、醫療、住宿模塊的實現
本應用程序的購物、美食、文化、醫療、住宿界面都是一個繼承Activity的類。當一個新的頁面打開后,前一個頁面將會暫停,并保存在歷史堆棧中。用戶可以返回到歷史堆棧中的前一個頁面。當該頁面不再使用時,還可以從歷史堆棧中刪除。默認情況下,Android將會保留從主頁面到每一個應用的運行頁面。
當從分塊模塊點擊進入后,用戶就會進入對應的頁面,開啟對應的Activity。出于界面的復用,減小代碼的復雜度,購物、美食、文化、醫療、住宿的界面和他們的詳情頁面相似,所以他們的頁面是寫在同一個Ac?tivity的,根據點擊后傳遞的數據類型加載不同的數據。圖8、9是住宿的功能實現界面。

圖8 具體酒店界面

圖9 住宿列表界面
點擊右上角可以跳轉至該酒店官網。官網按鈕是一個文本框實現的,給這個文本框添加了點擊事件監聽,點擊后發起酒店官網的請求,打開網頁。
所有購物、住宿、文化、美食、醫療等詳細信息頁面的數據加載過程是一個網頁的加載過程,為了頁面的排版的多樣美觀,將數據生成了本地HTML文件。本地HTML文件的生成過程是先在Word排版,然后另存的時候選擇保存一個HTML文件[12]。
2.6 景點模塊的實現
景點模塊主要采用了百度地圖的API,頁面的加載過程由于和其他頁面的加載過程區別比較大,所以是以單獨的界面存在。進入后首先看到的是有一個地圖頁面,看到的是當前用戶所在的位置。搜索框具備搜索廣州景點的功能,輸入信息后按搜索就可以列出匹配景點。
景點按鈕會以列表形式列出所有景點,綠色定位圖標按鈕可以把常見景點標在地圖上面,最后的按鈕是定位按鈕,當位置偏移后用戶可以重新定位當前位置。圖10到圖11景點模塊的功能實現界面。

圖10 景點主頁面

圖12 地圖標出所有景點

圖13 地圖布局

圖11 景點列表頁
百度地圖的集成過程如下[13]:
(1)百度地圖官網Key申請
打開百度地圖開發者平臺,注冊賬號完成登錄,然后創建使用百度地圖服務的App,根據包名和SHA1,申請對應的百度地圖開發KEY。
(2)Android配置文件權限、Key配置:
(3)百度地圖需要的第三方架包,導入百度地圖的jar包和so文件
(4)Application中對百度地圖SDK初始化:SDKI?nitializer.initialize(this);
(5)布局文件的配置如圖13所示。
(6)位功能實現
首先創建百度地圖的視圖MapView,然后創建百度地圖的對象Baidu'Map。接著需要創建定位對象Loc?Client,然后為定位設置坐標類型,定位時間間隔等參數,最后發起定位。
定位成功后,在回調參數中取到一系列的地理信息,例如經緯度,然后設置到地圖上面。
(7)地點搜索
百度地圖中用到的地圖搜索稱為POI搜索,就是完成輸入信息的地理搜索。根據用戶的搜索,從百度服務器獲得搜索相關的數據,標到地圖上面。
2.7 搜索模塊、功能的設計實現
搜索模塊的目的主要是為了用戶快速開啟景點搜索模式,為用戶提供一些熱門小吃景點等信息的快捷方式。
布局文件由上而下,由左往右,依次是一個搜索輸入框和一個自定義的推薦框。推薦框就是在基礎的view上放了10個文本框,隨機設置文本框,并設置動畫。
輸入框點擊后就會調用startActivity方法,由當前頁面跳轉到景點頁面。頁面初始化的時候會為自定義View設置數據,完全進入頁面時開啟動畫,為用戶展示飛入效果[14]如圖14。

圖14 搜索界面

圖15 我的功能界面
2.8 我的模塊的實現
我的功能模塊里主要是設置用戶的個人信息,用戶可以自由設置自己的頭像,可以在本地相冊中選擇喜愛的圖片。還可以清除緩存、查看本軟件制作人信息等功能。
默認的登錄用戶是沒有頭像的,當用戶設置頭像時就會從本地相冊選取圖片剪切后保存到本地文件,將本地文件路徑保存到數據庫。頭像數據的加載利用了一個第三方圖片加載框架Glide[15]。
緩沖清理的功能即把程序運行時產生不需要的數據或者臨時數據清理掉,不清理的話就會占用內存,浪費容量,清理后令其運行更快速。
制作人的詳細信息展示主要利用了Toast的功能。圖15-圖17是實現界面[16]。

圖16 更多界面

圖17 關于界面
3.1 系統U I U I測試
首先把測試手機開啟開發者模式,打開“設置”,進入“更多”,連續點擊版本號開啟開發者模式。然后勾選開發者選項中的USB調試,和顯示邊界布局,以及勾選顯示CPU使用情況。進入系統,開始界面測試,如圖18所示,首先觀看各個界面的整體布局和開始預想的界面是否一致,其次觀看每個界面控件布局,是否整體規范,符合邏輯。
3.2 性能測試
首先還是使用開發者工具的工具進行性能測試,測試的主要方向是界面是否存在過度繪制,還有頁面顯示的每一幀是否存在暫用內存過大的問題。
GPU過渡繪制:對于過渡繪制的測試主要通過人工進行測試,這也是發現應用軟件過渡繪制的首選途徑。通過打開開發者選項中的顯示GPU過度繪制(三星手機:設置—更多–開發者選項–顯示GPU過渡渲染-顯示CPU使用情況)來進行測試(只有Android4.2及以上的版本才具備此功能)。顏色標識:從好到差:藍-綠-淺紅-紅。根據界面的性能分析情況作界面和功能的調整,保證應用的流暢性,提供良好用戶體驗,如圖19所示。

圖18 邊界布局

圖19 GPU繪制和資源界面
3.3 功能測試
(1)系統登錄
測試各用戶在輸入帳號、密碼后是否能順利進入各自的界面。
(2)瀏覽首頁
測試用戶能否對首頁信息進行瀏覽。
(3)搜索功能
測試各用戶在登錄系統后是否能搜搜景點。
(4)個人設置
測試用戶能否進行個人設置。
在上述根據系統測試結果表所示,本系統在滿足用戶需求的前提下各功能均能運行,各功能滿足系統設計的目標及功能需求。
基于Android的掌上廣州手機App是一個便捷的移動廣州旅游信息寶典,界面友好性高,里面包含了廣州衣食住行等方面的主流信息,還擁有百度地圖搜索、定位系統,可以實現流暢的頁面跳轉和信息加載。本App還擁有登錄注冊功能,使用戶之間先相互透明,可以保護不同用戶隱私,也方便個性化設置,操作起來十分簡單,整體的設計和開發基本滿足了預定的需求,也得到了試用者的良好評價。
參考文獻:
[1]鄭健,賀超.Android和Chrome的發展與未來[J].移動通信,2010,34(11):80-82.
[2]張正政,林耀榮.基于Android系統的影音播放器開發[J].現代電子技術,2011,34(2):5-8.
[3]董士海.人機交互的進展及面臨的挑戰[J].計算機輔助設計與圖形學學報,2004,16(1):1-13.
[4]傅志紅,陳興璐.深入淺出Google Android[J].北京:人民郵電出版社,2009:85-90.
[5]付永剛,張鳳軍,戴國忠.雙手交互界面研究進展[J].計算機研究與發展,2005,42(4):604–613.
[6]郭志宏.Android應用開發詳解[M].北京:電子工業出版社,2010.
[7]公磊,周聰.基于Android的移動終端應用程序開發與研究[J].計算機與現代化,2008:86-89.
[8]R.Rogers.Android應用開發[M].李耀亮,譯.北京:人民郵電出版社,2010.
[9]馬越.Android的架構與應用[D].中國地質大學,2008.
[10]郭宏志.Android應用開發詳解[M].北京:電子工業出版社,2010.
[11]S.Conder,L.Darcey著,張魏譯.Android移動應用開發從入門到精通[M].北京:人民郵電出版社,2011.
[12]蘇志同,石紹坤,李晉宏.手機游戲開發架構的研究[J].計算機工程與設計,2010,31(7):1631-1634.
[13]李凱.Android操作系統分析與移植[D].華南理工大學,2011.
[14]張利國,龔海平,王植萌.Android移動開發入門與進階[M].人民郵電出版社,2009.
[15]蓋索林.Google Android開發入門指南(第二版)[M].北京:人民郵電出版社,2009.
[16]MeierR.Android Application Development[J].Indianapolis:Wiley Publishing.,2009.
PocketGuangzhou Based on Android
WUQian-hui1,2,WENChuan-xue1
(1.Departmentof Information Management,Guangzhou MedicalUniversity,Guangzhou 511436;2.Guangdong Rising Finance Co.,Ltd.,Guangzhou 510623)
Designsa PocketGuangzhou App,which is convenient Android-based travel information about in Guangzhou.Ituses Android open source system technology and isdeveloped in the Android Studio.App has friendly and lively interface and rich information,with shopping,attrac?tions,medical,food and other various columns.In addition,the system makes second development based on the Baidumap API.It inte?grates Baidumap positioning and navigation featureswith travel software features.The App is tested to run smoothly in a number of ver?sionsof the Android platform.
武千惠,女,學士,研究方向為移動開發、管理學領域
溫川雪,女,碩士研究生,講師,研究方向為物聯網、移動通信、教育技術
2017-07-27
2017-08-03
國家自然科學青年基金項目(No.61603106)、廣州市屬高??蒲许椖浚∟o.1201630320)
1007-1423(2017)22-0079-06
10.3969/j.issn.1007-1423.2017.22.019
Android;Guangzhou;Mobile Application