李騰雷 張瑞霞
(桂林電子科技大學(xué),廣西 桂林 541004)
近年來,Android系統(tǒng)的發(fā)展速度都十分迅猛,這一點(diǎn)在中國市場來說更加明顯。來自易觀國際的最新報(bào)告顯示,在2012一年中,Android在中國智能手機(jī)市場中的份額已經(jīng)自 58%上升至 90.1%。據(jù)悉,2012年第三季度中,Android在中國智能手機(jī)市場上所占份額為 90.1%,高于第二季度的83%。與此同時(shí),蘋果IOS所占份額則從第二季度的6%下降至4.2%,塞班的份額也下降至2.4%。
在應(yīng)用 APP方面,特別是基于 LBS(Location Based Services)的手機(jī)應(yīng)用領(lǐng)域迅速增長。比如國外的《Facebook》、國內(nèi)的《街旁》、《噢粑粑》APP等。正如《街旁》CEO劉大衛(wèi)所說,LBS APP正處于摸索階段,具有很大的發(fā)展?jié)摿?。LBS就是要借助無線網(wǎng)絡(luò),在移動(dòng)用戶之間,完成定位和服務(wù)兩大功能。如今,校園應(yīng)用已經(jīng)進(jìn)入了我們學(xué)生的日常生活當(dāng)中?,F(xiàn)在互聯(lián)網(wǎng)上有相當(dāng)多的校園應(yīng)用,都是廣泛性的想普及到大部分高校中。例如現(xiàn)在比較出名的《超級課程表》,是廣州周末網(wǎng)絡(luò)科技有限公司旗下一款針對大學(xué)生的校園社交應(yīng)用。應(yīng)用通過對接高校教務(wù)系統(tǒng),快速錄入課表到手機(jī),收錄五百萬課程信息,可以實(shí)現(xiàn)校內(nèi)跨院系任意蹭課、尋找課堂周圍的同學(xué)、在線互傳紙條搭訕等功能。
桂林電子科技大學(xué)每年都會(huì)有一大批新生入學(xué),入學(xué)的新生對自己的大學(xué)都是有一種強(qiáng)大的好奇心,迫切想要了解自己的校園情況,另一方面,新生剛進(jìn)入學(xué)校,面對流動(dòng)式的上課、活動(dòng)等校園生活,要經(jīng)常在校園里面辦理一些事務(wù),會(huì)遇到很多不懂的問題,這個(gè)時(shí)候有了校園導(dǎo)航軟件,校園論壇等應(yīng)用幫助的話,會(huì)幫助他們解決很多問題。同時(shí),對于不熟悉校園的來訪人員,能夠通過校園導(dǎo)航應(yīng)用相關(guān)功能幫助自己辦理事務(wù),或者通過應(yīng)用發(fā)出求助信息,那也是一件很有意義的事。
本文主要針對Android客戶端設(shè)計(jì)進(jìn)行分析,服務(wù)器端不在討論范圍之內(nèi)。Android端應(yīng)用整體分為論壇模塊、路線導(dǎo)航模塊、桂電主頁模塊、微博分享模塊四大部分。應(yīng)用架構(gòu)圖如圖1所示。
路線導(dǎo)航模塊的主要功能是實(shí)現(xiàn)定位及路線信息顯示。該模塊中包括兩個(gè)部分的地圖信息。一個(gè)是在線版的地圖,采用了google map作為地圖數(shù)據(jù),開啟軟件時(shí)連接google服務(wù)器獲取地圖信息,同時(shí)對地圖進(jìn)行二次開發(fā),增加校園的更多細(xì)節(jié),旨在細(xì)節(jié)化我們的校園,讓師生以及外界人士更加了解我們的校園。通過網(wǎng)絡(luò)、GPS,能夠?qū)崿F(xiàn)定位,通過圖層,能夠?qū)崿F(xiàn)建筑標(biāo)志顯示。另一個(gè)是離線版的地圖,在不消耗流量的情況加載本地校園地圖,該模式下只能夠?qū)崿F(xiàn)路線指引。
論壇模塊主要作用是提供給用戶交流,主要功能包括用戶注冊、用戶登錄、發(fā)表話題、回復(fù)話題。通過BBS可以分享心情、發(fā)表信息、提出疑問、疑問解答等,還能夠通過BBS進(jìn)行交友。
微博分享模塊的主要功能是通過目前主流的幾個(gè)社交平臺,如騰訊微博、新浪微博、人人網(wǎng)等分享自己的線路信息,與更多的人分享自己的樂趣與位置信息。
桂電主頁模塊的主要功能是分類列舉在校日常行為中跟學(xué)生息息相關(guān)的問與答,包括《大學(xué)生手冊》中的主要內(nèi)容以及各類校新聞中重要的信息等。幫助在校師生以及外界人士了解和查詢我們桂林電子科技大學(xué)的規(guī)章制度、及時(shí)新聞、主要活動(dòng)等各方面的信息。
圖1 系統(tǒng)架構(gòu)圖
Android應(yīng)用能使生活變得簡單。簡單的任務(wù)不需要復(fù)雜的步驟,復(fù)雜的任務(wù)也應(yīng)當(dāng)符合用戶的使用習(xí)慣,使各個(gè)年齡段和各種文化背景的人都能很快上手,并且不會(huì)被太多的選擇和無關(guān)的閃爍所淹沒。所以,根據(jù)移動(dòng)設(shè)備的設(shè)計(jì)理念,我們在UI設(shè)計(jì)上也保持了簡約、美觀,以方便用戶和讓用戶感覺到舒適。例如主界面直接是地圖界面,突出軟件的主要功能;功能菜單采用了下拉菜單簡約的功能模塊入口;方便快捷的在線版地圖、離線版地圖切換等等。
軟件的首界面定為地圖頁面,配合校園導(dǎo)航的主要功能,默認(rèn)使用離線版地圖,節(jié)省用戶數(shù)據(jù)流量。論壇界面采用的是藍(lán)白搭配的色調(diào),是通過參考了很多的相關(guān)成功例子,藍(lán)白的搭配比較適中,不刺眼中色彩均衡。適合社區(qū)中文字信息相對多的一個(gè)界面。采用這的界面主要是設(shè)和論壇這種文字信息類比較多的界面。對用戶來說,不會(huì)很刺眼,看起來比較的舒服。
圖2 部分界面截圖
本校園移動(dòng)導(dǎo)航應(yīng)用是一個(gè)Android系統(tǒng)應(yīng)用。主要使用了Android的相關(guān)技術(shù),調(diào)用谷歌地圖實(shí)現(xiàn)定位功能,利用自己研究的最優(yōu)路徑算法計(jì)算路徑,使用Servlet與服務(wù)器交互并使用 Json數(shù)據(jù)進(jìn)行數(shù)據(jù)傳送。服務(wù)器端使用的是JSP技術(shù)實(shí)現(xiàn)的服務(wù)器后臺管理頁面,利用MySQL進(jìn)行數(shù)據(jù)的儲存。結(jié)合時(shí)下比較熱門的百度云服務(wù),服務(wù)器應(yīng)用托管在百度應(yīng)用引擎,客戶端加入百度云推送服務(wù)。客戶端應(yīng)用中數(shù)據(jù)保存方式以Android文件數(shù)據(jù)SharedPreferences文件存儲。
該模塊主要由兩個(gè)部分組成:在線版和離線版。主要的區(qū)別在于在線版是要連接網(wǎng)絡(luò)獲取Google map信息包括當(dāng)前位置信息等。而離線版地圖是通過加載本地地圖信息,并在此基礎(chǔ)上實(shí)現(xiàn)其他功能。在方案的設(shè)計(jì)中,我們設(shè)想都是在衛(wèi)星視圖的基礎(chǔ)上進(jìn)行二次開發(fā),在已有的建筑顯示上添加更多的細(xì)節(jié)信息。離線版的地圖,同樣是使用了Google的衛(wèi)星視圖作為底層,但這個(gè)是通過在pc端獲取較高分辨率的分塊地圖之后,使用Photoshop軟件將大量的小塊兒地圖拼接在一起形成整幅校園地圖。
路線繪制的原理是在地圖圖片Bitmap的基礎(chǔ)上,進(jìn)行繪制Line。先通過路線算法求出路徑的所以經(jīng)過地點(diǎn)列表,然后離線版地圖版本是在一張地圖上面重新繪制路線,依次連接所有的地點(diǎn),再繪制起點(diǎn)、終點(diǎn)標(biāo)志。在線版本地圖是通過在地圖上相應(yīng)景點(diǎn)的經(jīng)緯度繪制建筑點(diǎn),然后在經(jīng)過Android轉(zhuǎn)換工具Project類的MapView.getProject()方法轉(zhuǎn)換成屏幕上的點(diǎn)的坐標(biāo)位置,然后依次連接成線。地圖中將校園里面所有的景點(diǎn)信息都添加進(jìn)了一個(gè)數(shù)據(jù)里面,然后需要計(jì)算路線的時(shí)候再將數(shù)據(jù)抽取出來經(jīng)過路徑算法運(yùn)算得出路徑,而景點(diǎn)的添加是具備經(jīng)緯度、名稱、相對位置、描述等屬性。下面是設(shè)計(jì)學(xué)校建筑的所有結(jié)點(diǎn),以及所有結(jié)點(diǎn)能到達(dá)的路線設(shè)計(jì)如圖3所示。
論壇是通過 servlet與服務(wù)器端交互,交互數(shù)據(jù)使用json,通過json數(shù)據(jù)可以分析成為集合list,解析成為客戶端所需要的沒一個(gè)話題,顯示到客戶端上。獲得話題列表是無需用戶驗(yàn)證登錄就可以獲取的信息,所以在服務(wù)器端的Servlet無需任何參數(shù)就可以獲取,獲取回來的是Json數(shù)據(jù),這種數(shù)據(jù)比較好解析成相應(yīng)數(shù)據(jù),方便客戶端中的調(diào)用。
驗(yàn)證登錄的過程是將用戶名與密碼發(fā)送到服務(wù)器端進(jìn)行校驗(yàn),如果服務(wù)器端擁有該用戶側(cè)返回相關(guān)數(shù)據(jù)確認(rèn),客戶端就可以將用戶信息通過文件保存SharedPreferences類的函數(shù)保存的用戶的機(jī)器中。
發(fā)表主題是需要用戶驗(yàn)證登錄才能發(fā)表的,因此發(fā)表之前務(wù)必登錄到系統(tǒng)。之后才能發(fā)表,話題的儲存是和回復(fù)評論是一樣的類。只是多了一個(gè)話題屬性。因此可以采用相同的方法處理。這樣減少代碼冗余量。
應(yīng)用中數(shù)據(jù)保存以Android文件數(shù)據(jù)SharedPreferences文件存儲方式。以便下次不需要重復(fù)登錄,不需要從服務(wù)器重復(fù)提交獲取話題信息,保存的Json數(shù)據(jù)還能實(shí)現(xiàn)離線閱讀等。
圖3 學(xué)校建筑路線圖
該模塊重點(diǎn)在于需要很好的熟悉目前各社交平臺的接口信息以及其使用方式。對于不同的社交平臺,其接口的認(rèn)證方式會(huì)不一樣,包括一些不同的平臺在諸多細(xì)節(jié)上差異。如今的認(rèn)證方式采用的是最新的OAuth2.0認(rèn)證,客戶端無法得到用戶的密碼等安全信息,是通過微博服務(wù)器直接交互。OAuth2.0是 OAuth協(xié)議的下一版本,但不向后兼容 OAuth 1.0。 OAuth 2.0關(guān)注客戶端開發(fā)者的簡易性,同時(shí)為 Web應(yīng)用、桌面應(yīng)用、手機(jī)以及起居室設(shè)備提供專門的認(rèn)證流程。當(dāng)前新浪微博、騰訊微博、人人網(wǎng)開放平臺統(tǒng)一都是采用最新的OAuth2.0認(rèn)證方式,確保了用戶的密碼安全性。
該模塊重點(diǎn)在于對文字信息的處理。主要的研究和實(shí)現(xiàn)在于利用列表以及文本的形式美觀地顯示在校日常問與答,獲取和解析web網(wǎng)站的信息,實(shí)現(xiàn)校主頁新聞、學(xué)校各官方微博信息等在板塊中進(jìn)行顯示,動(dòng)態(tài)傳遞學(xué)校、校園信息。
當(dāng)前版本實(shí)現(xiàn)的只是從本地讀取數(shù)據(jù)經(jīng)過HTML的格式,顯示到客戶端中,通過文字的形式展現(xiàn)給用戶。
校園導(dǎo)航應(yīng)用為在校師生和外來人員帶來方便。具有實(shí)時(shí)、界面友好、可靠、易維護(hù)、易擴(kuò)展等優(yōu)點(diǎn)。一個(gè)手機(jī)端應(yīng)用,最好的功能莫過于為人們解決問題,提高人們的辦事效率以節(jié)約更多的時(shí)間,這正是整個(gè)應(yīng)用設(shè)計(jì)的初衷,系統(tǒng)不夠完善,比如應(yīng)用中調(diào)用GoogleMap定位,相對來說會(huì)消耗部分?jǐn)?shù)據(jù)流量,而且數(shù)據(jù)流量定位精度相對低,可以通過使用GPS衛(wèi)星定位解決,但由于衛(wèi)星定位會(huì)因天氣、室內(nèi)外位置、手持設(shè)備的不同而有不同的情況,局限相對大,這些問題是今后的改進(jìn)和探索方向。
[1] 余志龍,陳昱勛.Android SDK 開發(fā)范例大全[M].人民郵電出版社,2009.
[2] 羅偉.基于 Android平臺的即時(shí)通訊系統(tǒng)的研究與實(shí)現(xiàn)[D].湖南師范大學(xué)學(xué)位論文.2009.
[3] 胡世良.移動(dòng)互聯(lián)網(wǎng):贏在下一個(gè)十年的起點(diǎn).人民郵電出版社,2011.
[4] (加)Daniel Wigdor,(美)Dennis Wixon.自然用戶界面設(shè)計(jì):NUI的經(jīng)驗(yàn)教訓(xùn)與設(shè)計(jì)原則[M].人民郵電出版社,2012.
[5] 李剛.瘋狂Android講義[M].電子工業(yè)出版社,2010.
[6] 王家林.大話企業(yè)級Android應(yīng)用開發(fā)實(shí)戰(zhàn)[M].電子工業(yè)出版社,2010.