武千惠,溫川雪
(1.廣州醫(yī)科大學(xué)信息管理系,廣州511436;2.廣東省廣晟財(cái)務(wù)有限公司,廣州510623)
基于Android的掌上廣州
武千惠1,2,溫川雪1
(1.廣州醫(yī)科大學(xué)信息管理系,廣州511436;2.廣東省廣晟財(cái)務(wù)有限公司,廣州510623)
設(shè)計(jì)一款名為“掌上廣州”的移動(dòng)App,是基于Android的便捷的廣州旅游信息軟件。其在Android Studio開發(fā)環(huán)境下,具有友好生動(dòng)的界面,信息量豐富,具有購物、景點(diǎn)、醫(yī)療、美食、住宿等豐富的欄目。此外,系統(tǒng)在百度地圖API的基礎(chǔ)上上進(jìn)行二次開發(fā),把百度地圖的定位和導(dǎo)航功能與旅游軟件的特色功能進(jìn)行了融合。經(jīng)測(cè)試,該App在多個(gè)版本的Android平臺(tái)上均能流暢地運(yùn)行。
Android;廣州;手機(jī)
Android系統(tǒng)是第一個(gè)為移動(dòng)終端打造的真正開放和完整的移動(dòng)軟件操作系統(tǒng),其開源性、占有率高、適用范圍廣等特點(diǎn),較其他系統(tǒng)不可替代的優(yōu)異性[1-2]。
本App對(duì)廣州的美食、餐飲、醫(yī)療、景點(diǎn)進(jìn)行等進(jìn)行了介紹,對(duì)眾多的外來人員來說是一款非常實(shí)用的App。它利用Java語言和Android Studio編輯工具開發(fā)[3-4],采用Android開源系統(tǒng)技術(shù),還涉及到Android SDK、Dalvik等相關(guān)理論及技術(shù),目的是讓用戶全方位地、更加方便快捷地了解廣州的各種信息,以便用戶安排計(jì)劃出行、娛樂、生活、工作等[5]。
1.1 啟動(dòng)頁面
App啟動(dòng)后首先進(jìn)入的是一個(gè)啟動(dòng)頁面,然后給主功能頁面出現(xiàn)提供一個(gè)緩沖。其一般的功能是為App做一些系統(tǒng)信息的配置,例如檢查App更新,為主動(dòng)登錄的App做用戶登錄等[6]。
1.2 注冊(cè)登錄頁面
軟件的功能是公共的,數(shù)據(jù)屬于個(gè)人私有的,因此本軟件為了保護(hù)用戶隱私,在使用本軟件時(shí)必須注冊(cè)自己的獨(dú)立賬號(hào)才能登錄。
1.3 首頁
用戶可以點(diǎn)擊美食、景點(diǎn)、住宿、醫(yī)療、購物、交通、氣候等功能按鈕,查詢廣州著名的小吃、菜肴,欣賞廣州各大著名景點(diǎn),查看有名的大型購物商場(chǎng)、了解廣州各大醫(yī)院的基本信息,還可以查看酒店住宿信息等,可以讓用戶們更加快速了解廣州并更加便捷的生活,為來廣州旅游、生活、工作的外地人帶來了極大的快捷。
圖1 首頁用例圖
1
1.4 搜索頁面
在搜索板塊中,本軟件提供了搜索建議框與本應(yīng)用中的動(dòng)態(tài)列表選項(xiàng)。點(diǎn)擊搜索框,可鏈接到百度地圖接口,引用百度地圖進(jìn)行地點(diǎn)搜索;用戶也可以搜索到本應(yīng)用中已有的信息,并快捷搜索到相應(yīng)界面,在動(dòng)態(tài)列表選項(xiàng)中用戶可以左右上下滑動(dòng)來翻看信息,選定指定頁面。
1.5 我的頁面
可以設(shè)置個(gè)人頭像,頭像設(shè)置是使用本地相冊(cè)取圖裁剪,再保存圖片路徑到數(shù)據(jù)庫。還可以查看更多關(guān)于本軟件的消息以及包括了清除緩存功能,讓用戶更好的體驗(yàn)使用軟件的樂趣[7]。
圖2 掌上廣州系統(tǒng)的網(wǎng)絡(luò)拓?fù)鋱D
圖3 掌上廣州系統(tǒng)類圖
2.1 啟動(dòng)頁面的實(shí)現(xiàn)
App啟動(dòng)后首先進(jìn)入的是一個(gè)啟動(dòng)頁面,如圖4所示,是個(gè)全屏頁面,隱藏了默認(rèn)的狀態(tài)欄ActionBar。頁面的主布局,是一個(gè)LinearLayout的控件,圖片是通過屬性設(shè)置的。當(dāng)點(diǎn)擊App進(jìn)入,自動(dòng)開啟一個(gè)計(jì)時(shí)任務(wù),讓這個(gè)頁面顯示3秒后開啟主界面[8]。
圖4 啟動(dòng)頁面
圖5 登錄界面
2.2 登錄、注冊(cè)功能的實(shí)現(xiàn)
用戶注冊(cè)實(shí)現(xiàn)的過程主要有幾個(gè)步驟,用戶從鍵盤向輸入框輸入用戶信息,當(dāng)用戶點(diǎn)擊確認(rèn)按鈕從輸入框提取信息。首先會(huì)對(duì)信息做判空驗(yàn)證,如果驗(yàn)證通過,就將數(shù)據(jù)寫入本地?cái)?shù)據(jù)庫。本地?cái)?shù)據(jù)庫保存的數(shù)據(jù)結(jié)構(gòu)如表1。
表1 數(shù)據(jù)庫用戶數(shù)據(jù)結(jié)構(gòu)
用戶登錄實(shí)現(xiàn)的過程主要有幾個(gè)步驟,用戶從鍵盤向輸入框輸入用戶信息,當(dāng)用戶點(diǎn)擊確認(rèn)按鈕從輸入框提取信息。首先會(huì)對(duì)信息做判空驗(yàn)證,如果驗(yàn)證通過,就根據(jù)用戶名和密碼去本地?cái)?shù)據(jù)庫提取用戶信息,數(shù)據(jù)庫如果存在該用戶,登錄成功,否則給出用戶不存在的提醒。用戶登錄和注冊(cè)的實(shí)現(xiàn)界面如圖5、6。
2.3 首頁模塊的實(shí)現(xiàn)
用戶登錄成功后就會(huì)進(jìn)入App主界面,設(shè)計(jì)為購物、景點(diǎn)、美食、文化、醫(yī)療和住宿信息的功能選項(xiàng)模塊。界面實(shí)現(xiàn)的布局結(jié)構(gòu),由上往下,由左往右,分別是TextView,一個(gè)自定義的滑動(dòng)View,這個(gè)View繼承自ViewPage,在原生View的基礎(chǔ)上面開啟了定時(shí)任務(wù),每過5秒切換圖片,然后就是為這個(gè)View設(shè)置點(diǎn)擊事件,處理當(dāng)用戶點(diǎn)擊后的功能。再下面是一個(gè)GridView分開的六個(gè)模塊,六個(gè)模塊是通過適配器放入數(shù)據(jù)。底部導(dǎo)航欄是三個(gè)按鈕,按鈕是ImageView控件設(shè)置了點(diǎn)擊事件。滑動(dòng)模塊的設(shè)計(jì)可以是手動(dòng)滑動(dòng),還可以通過下方按鈕的點(diǎn)擊切換模塊[9-10]。首頁如圖7所示。
圖6 用戶注冊(cè)面
圖7 首頁界面
2.4 頁面跳轉(zhuǎn)的實(shí)現(xiàn)
當(dāng)用戶點(diǎn)擊一些設(shè)置了點(diǎn)擊事件的控件后就會(huì)處理一些點(diǎn)擊事件。比如登錄界面,當(dāng)點(diǎn)擊登錄按鈕后就是從登錄界面跳到首頁界面。
跳轉(zhuǎn)的主要通過Intent實(shí)現(xiàn)。Intent是一個(gè)將要執(zhí)行的動(dòng)作的抽象的描述,由Intent來協(xié)助完成An?droid各個(gè)組件之間的通訊。比如調(diào)用Activity實(shí)例化對(duì)象的startActivity()來啟動(dòng)一個(gè)activity,或者由broad?caseIntent()來傳遞給所有感興趣的BroadcaseReceiver,或者由startService()/bindservice()來啟動(dòng)一個(gè)后臺(tái)的service??梢?,intent主要用來啟動(dòng)activity或者ser?vice[11]。
2.5 購物、美食、文化、醫(yī)療、住宿模塊的實(shí)現(xiàn)
本應(yīng)用程序的購物、美食、文化、醫(yī)療、住宿界面都是一個(gè)繼承Activity的類。當(dāng)一個(gè)新的頁面打開后,前一個(gè)頁面將會(huì)暫停,并保存在歷史堆棧中。用戶可以返回到歷史堆棧中的前一個(gè)頁面。當(dāng)該頁面不再使用時(shí),還可以從歷史堆棧中刪除。默認(rèn)情況下,Android將會(huì)保留從主頁面到每一個(gè)應(yīng)用的運(yùn)行頁面。
當(dāng)從分塊模塊點(diǎn)擊進(jìn)入后,用戶就會(huì)進(jìn)入對(duì)應(yīng)的頁面,開啟對(duì)應(yīng)的Activity。出于界面的復(fù)用,減小代碼的復(fù)雜度,購物、美食、文化、醫(yī)療、住宿的界面和他們的詳情頁面相似,所以他們的頁面是寫在同一個(gè)Ac?tivity的,根據(jù)點(diǎn)擊后傳遞的數(shù)據(jù)類型加載不同的數(shù)據(jù)。圖8、9是住宿的功能實(shí)現(xiàn)界面。
圖8 具體酒店界面
圖9 住宿列表界面
點(diǎn)擊右上角可以跳轉(zhuǎn)至該酒店官網(wǎng)。官網(wǎng)按鈕是一個(gè)文本框?qū)崿F(xiàn)的,給這個(gè)文本框添加了點(diǎn)擊事件監(jiān)聽,點(diǎn)擊后發(fā)起酒店官網(wǎng)的請(qǐng)求,打開網(wǎng)頁。
所有購物、住宿、文化、美食、醫(yī)療等詳細(xì)信息頁面的數(shù)據(jù)加載過程是一個(gè)網(wǎng)頁的加載過程,為了頁面的排版的多樣美觀,將數(shù)據(jù)生成了本地HTML文件。本地HTML文件的生成過程是先在Word排版,然后另存的時(shí)候選擇保存一個(gè)HTML文件[12]。
2.6 景點(diǎn)模塊的實(shí)現(xiàn)
景點(diǎn)模塊主要采用了百度地圖的API,頁面的加載過程由于和其他頁面的加載過程區(qū)別比較大,所以是以單獨(dú)的界面存在。進(jìn)入后首先看到的是有一個(gè)地圖頁面,看到的是當(dāng)前用戶所在的位置。搜索框具備搜索廣州景點(diǎn)的功能,輸入信息后按搜索就可以列出匹配景點(diǎn)。
景點(diǎn)按鈕會(huì)以列表形式列出所有景點(diǎn),綠色定位圖標(biāo)按鈕可以把常見景點(diǎn)標(biāo)在地圖上面,最后的按鈕是定位按鈕,當(dāng)位置偏移后用戶可以重新定位當(dāng)前位置。圖10到圖11景點(diǎn)模塊的功能實(shí)現(xiàn)界面。
圖10 景點(diǎn)主頁面
圖12 地圖標(biāo)出所有景點(diǎn)
圖13 地圖布局
圖11 景點(diǎn)列表頁
百度地圖的集成過程如下[13]:
(1)百度地圖官網(wǎng)Key申請(qǐng)
打開百度地圖開發(fā)者平臺(tái),注冊(cè)賬號(hào)完成登錄,然后創(chuàng)建使用百度地圖服務(wù)的App,根據(jù)包名和SHA1,申請(qǐng)對(duì)應(yīng)的百度地圖開發(fā)KEY。
(2)Android配置文件權(quán)限、Key配置:
(3)百度地圖需要的第三方架包,導(dǎo)入百度地圖的jar包和so文件
(4)Application中對(duì)百度地圖SDK初始化:SDKI?nitializer.initialize(this);
(5)布局文件的配置如圖13所示。
(6)位功能實(shí)現(xiàn)
首先創(chuàng)建百度地圖的視圖MapView,然后創(chuàng)建百度地圖的對(duì)象Baidu'Map。接著需要?jiǎng)?chuàng)建定位對(duì)象Loc?Client,然后為定位設(shè)置坐標(biāo)類型,定位時(shí)間間隔等參數(shù),最后發(fā)起定位。
定位成功后,在回調(diào)參數(shù)中取到一系列的地理信息,例如經(jīng)緯度,然后設(shè)置到地圖上面。
(7)地點(diǎn)搜索
百度地圖中用到的地圖搜索稱為POI搜索,就是完成輸入信息的地理搜索。根據(jù)用戶的搜索,從百度服務(wù)器獲得搜索相關(guān)的數(shù)據(jù),標(biāo)到地圖上面。
2.7 搜索模塊、功能的設(shè)計(jì)實(shí)現(xiàn)
搜索模塊的目的主要是為了用戶快速開啟景點(diǎn)搜索模式,為用戶提供一些熱門小吃景點(diǎn)等信息的快捷方式。
布局文件由上而下,由左往右,依次是一個(gè)搜索輸入框和一個(gè)自定義的推薦框。推薦框就是在基礎(chǔ)的view上放了10個(gè)文本框,隨機(jī)設(shè)置文本框,并設(shè)置動(dòng)畫。
輸入框點(diǎn)擊后就會(huì)調(diào)用startActivity方法,由當(dāng)前頁面跳轉(zhuǎn)到景點(diǎn)頁面。頁面初始化的時(shí)候會(huì)為自定義View設(shè)置數(shù)據(jù),完全進(jìn)入頁面時(shí)開啟動(dòng)畫,為用戶展示飛入效果[14]如圖14。
圖14 搜索界面
圖15 我的功能界面
2.8 我的模塊的實(shí)現(xiàn)
我的功能模塊里主要是設(shè)置用戶的個(gè)人信息,用戶可以自由設(shè)置自己的頭像,可以在本地相冊(cè)中選擇喜愛的圖片。還可以清除緩存、查看本軟件制作人信息等功能。
默認(rèn)的登錄用戶是沒有頭像的,當(dāng)用戶設(shè)置頭像時(shí)就會(huì)從本地相冊(cè)選取圖片剪切后保存到本地文件,將本地文件路徑保存到數(shù)據(jù)庫。頭像數(shù)據(jù)的加載利用了一個(gè)第三方圖片加載框架Glide[15]。
緩沖清理的功能即把程序運(yùn)行時(shí)產(chǎn)生不需要的數(shù)據(jù)或者臨時(shí)數(shù)據(jù)清理掉,不清理的話就會(huì)占用內(nèi)存,浪費(fèi)容量,清理后令其運(yùn)行更快速。
制作人的詳細(xì)信息展示主要利用了Toast的功能。圖15-圖17是實(shí)現(xiàn)界面[16]。
圖16 更多界面
圖17 關(guān)于界面
3.1 系統(tǒng)U I U I測(cè)試
首先把測(cè)試手機(jī)開啟開發(fā)者模式,打開“設(shè)置”,進(jìn)入“更多”,連續(xù)點(diǎn)擊版本號(hào)開啟開發(fā)者模式。然后勾選開發(fā)者選項(xiàng)中的USB調(diào)試,和顯示邊界布局,以及勾選顯示CPU使用情況。進(jìn)入系統(tǒng),開始界面測(cè)試,如圖18所示,首先觀看各個(gè)界面的整體布局和開始預(yù)想的界面是否一致,其次觀看每個(gè)界面控件布局,是否整體規(guī)范,符合邏輯。
3.2 性能測(cè)試
首先還是使用開發(fā)者工具的工具進(jìn)行性能測(cè)試,測(cè)試的主要方向是界面是否存在過度繪制,還有頁面顯示的每一幀是否存在暫用內(nèi)存過大的問題。
GPU過渡繪制:對(duì)于過渡繪制的測(cè)試主要通過人工進(jìn)行測(cè)試,這也是發(fā)現(xiàn)應(yīng)用軟件過渡繪制的首選途徑。通過打開開發(fā)者選項(xiàng)中的顯示GPU過度繪制(三星手機(jī):設(shè)置—更多–開發(fā)者選項(xiàng)–顯示GPU過渡渲染-顯示CPU使用情況)來進(jìn)行測(cè)試(只有Android4.2及以上的版本才具備此功能)。顏色標(biāo)識(shí):從好到差:藍(lán)-綠-淺紅-紅。根據(jù)界面的性能分析情況作界面和功能的調(diào)整,保證應(yīng)用的流暢性,提供良好用戶體驗(yàn),如圖19所示。
圖18 邊界布局
圖19 GPU繪制和資源界面
3.3 功能測(cè)試
(1)系統(tǒng)登錄
測(cè)試各用戶在輸入帳號(hào)、密碼后是否能順利進(jìn)入各自的界面。
(2)瀏覽首頁
測(cè)試用戶能否對(duì)首頁信息進(jìn)行瀏覽。
(3)搜索功能
測(cè)試各用戶在登錄系統(tǒng)后是否能搜搜景點(diǎn)。
(4)個(gè)人設(shè)置
測(cè)試用戶能否進(jìn)行個(gè)人設(shè)置。
在上述根據(jù)系統(tǒng)測(cè)試結(jié)果表所示,本系統(tǒng)在滿足用戶需求的前提下各功能均能運(yùn)行,各功能滿足系統(tǒng)設(shè)計(jì)的目標(biāo)及功能需求。
基于Android的掌上廣州手機(jī)App是一個(gè)便捷的移動(dòng)廣州旅游信息寶典,界面友好性高,里面包含了廣州衣食住行等方面的主流信息,還擁有百度地圖搜索、定位系統(tǒng),可以實(shí)現(xiàn)流暢的頁面跳轉(zhuǎn)和信息加載。本App還擁有登錄注冊(cè)功能,使用戶之間先相互透明,可以保護(hù)不同用戶隱私,也方便個(gè)性化設(shè)置,操作起來十分簡(jiǎn)單,整體的設(shè)計(jì)和開發(fā)基本滿足了預(yù)定的需求,也得到了試用者的良好評(píng)價(jià)。
參考文獻(xiàn):
[1]鄭健,賀超.Android和Chrome的發(fā)展與未來[J].移動(dòng)通信,2010,34(11):80-82.
[2]張正政,林耀榮.基于Android系統(tǒng)的影音播放器開發(fā)[J].現(xiàn)代電子技術(shù),2011,34(2):5-8.
[3]董士海.人機(jī)交互的進(jìn)展及面臨的挑戰(zhàn)[J].計(jì)算機(jī)輔助設(shè)計(jì)與圖形學(xué)學(xué)報(bào),2004,16(1):1-13.
[4]傅志紅,陳興璐.深入淺出Google Android[J].北京:人民郵電出版社,2009:85-90.
[5]付永剛,張鳳軍,戴國忠.雙手交互界面研究進(jìn)展[J].計(jì)算機(jī)研究與發(fā)展,2005,42(4):604–613.
[6]郭志宏.Android應(yīng)用開發(fā)詳解[M].北京:電子工業(yè)出版社,2010.
[7]公磊,周聰.基于Android的移動(dòng)終端應(yīng)用程序開發(fā)與研究[J].計(jì)算機(jī)與現(xiàn)代化,2008:86-89.
[8]R.Rogers.Android應(yīng)用開發(fā)[M].李耀亮,譯.北京:人民郵電出版社,2010.
[9]馬越.Android的架構(gòu)與應(yīng)用[D].中國地質(zhì)大學(xué),2008.
[10]郭宏志.Android應(yīng)用開發(fā)詳解[M].北京:電子工業(yè)出版社,2010.
[11]S.Conder,L.Darcey著,張魏譯.Android移動(dòng)應(yīng)用開發(fā)從入門到精通[M].北京:人民郵電出版社,2011.
[12]蘇志同,石紹坤,李晉宏.手機(jī)游戲開發(fā)架構(gòu)的研究[J].計(jì)算機(jī)工程與設(shè)計(jì),2010,31(7):1631-1634.
[13]李凱.Android操作系統(tǒng)分析與移植[D].華南理工大學(xué),2011.
[14]張利國,龔海平,王植萌.Android移動(dòng)開發(fā)入門與進(jìn)階[M].人民郵電出版社,2009.
[15]蓋索林.Google Android開發(fā)入門指南(第二版)[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.
武千惠,女,學(xué)士,研究方向?yàn)橐苿?dòng)開發(fā)、管理學(xué)領(lǐng)域
溫川雪,女,碩士研究生,講師,研究方向?yàn)槲锫?lián)網(wǎng)、移動(dòng)通信、教育技術(shù)
2017-07-27
2017-08-03
國家自然科學(xué)青年基金項(xiàng)目(No.61603106)、廣州市屬高??蒲许?xiàng)目(No.1201630320)
1007-1423(2017)22-0079-06
10.3969/j.issn.1007-1423.2017.22.019
Android;Guangzhou;Mobile Application