李騰雷 張瑞霞
(桂林電子科技大學,廣西 桂林 541004)
近年來,Android系統(tǒng)的發(fā)展速度都十分迅猛,這一點在中國市場來說更加明顯。來自易觀國際的最新報告顯示,在2012一年中,Android在中國智能手機市場中的份額已經(jīng)自 58%上升至 90.1%。據(jù)悉,2012年第三季度中,Android在中國智能手機市場上所占份額為 90.1%,高于第二季度的83%。與此同時,蘋果IOS所占份額則從第二季度的6%下降至4.2%,塞班的份額也下降至2.4%。
在應用 APP方面,特別是基于 LBS(Location Based Services)的手機應用領域迅速增長。比如國外的《Facebook》、國內(nèi)的《街旁》、《噢粑粑》APP等。正如《街旁》CEO劉大衛(wèi)所說,LBS APP正處于摸索階段,具有很大的發(fā)展?jié)摿ΑBS就是要借助無線網(wǎng)絡,在移動用戶之間,完成定位和服務兩大功能。如今,校園應用已經(jīng)進入了我們學生的日常生活當中。現(xiàn)在互聯(lián)網(wǎng)上有相當多的校園應用,都是廣泛性的想普及到大部分高校中。例如現(xiàn)在比較出名的《超級課程表》,是廣州周末網(wǎng)絡科技有限公司旗下一款針對大學生的校園社交應用。應用通過對接高校教務系統(tǒng),快速錄入課表到手機,收錄五百萬課程信息,可以實現(xiàn)校內(nèi)跨院系任意蹭課、尋找課堂周圍的同學、在線互傳紙條搭訕等功能。
桂林電子科技大學每年都會有一大批新生入學,入學的新生對自己的大學都是有一種強大的好奇心,迫切想要了解自己的校園情況,另一方面,新生剛進入學校,面對流動式的上課、活動等校園生活,要經(jīng)常在校園里面辦理一些事務,會遇到很多不懂的問題,這個時候有了校園導航軟件,校園論壇等應用幫助的話,會幫助他們解決很多問題。同時,對于不熟悉校園的來訪人員,能夠通過校園導航應用相關功能幫助自己辦理事務,或者通過應用發(fā)出求助信息,那也是一件很有意義的事。
本文主要針對Android客戶端設計進行分析,服務器端不在討論范圍之內(nèi)。Android端應用整體分為論壇模塊、路線導航模塊、桂電主頁模塊、微博分享模塊四大部分。應用架構(gòu)圖如圖1所示。
路線導航模塊的主要功能是實現(xiàn)定位及路線信息顯示。該模塊中包括兩個部分的地圖信息。一個是在線版的地圖,采用了google map作為地圖數(shù)據(jù),開啟軟件時連接google服務器獲取地圖信息,同時對地圖進行二次開發(fā),增加校園的更多細節(jié),旨在細節(jié)化我們的校園,讓師生以及外界人士更加了解我們的校園。通過網(wǎng)絡、GPS,能夠?qū)崿F(xiàn)定位,通過圖層,能夠?qū)崿F(xiàn)建筑標志顯示。另一個是離線版的地圖,在不消耗流量的情況加載本地校園地圖,該模式下只能夠?qū)崿F(xiàn)路線指引。
論壇模塊主要作用是提供給用戶交流,主要功能包括用戶注冊、用戶登錄、發(fā)表話題、回復話題。通過BBS可以分享心情、發(fā)表信息、提出疑問、疑問解答等,還能夠通過BBS進行交友。
微博分享模塊的主要功能是通過目前主流的幾個社交平臺,如騰訊微博、新浪微博、人人網(wǎng)等分享自己的線路信息,與更多的人分享自己的樂趣與位置信息。
桂電主頁模塊的主要功能是分類列舉在校日常行為中跟學生息息相關的問與答,包括《大學生手冊》中的主要內(nèi)容以及各類校新聞中重要的信息等。幫助在校師生以及外界人士了解和查詢我們桂林電子科技大學的規(guī)章制度、及時新聞、主要活動等各方面的信息。

圖1 系統(tǒng)架構(gòu)圖
Android應用能使生活變得簡單。簡單的任務不需要復雜的步驟,復雜的任務也應當符合用戶的使用習慣,使各個年齡段和各種文化背景的人都能很快上手,并且不會被太多的選擇和無關的閃爍所淹沒。所以,根據(jù)移動設備的設計理念,我們在UI設計上也保持了簡約、美觀,以方便用戶和讓用戶感覺到舒適。例如主界面直接是地圖界面,突出軟件的主要功能;功能菜單采用了下拉菜單簡約的功能模塊入口;方便快捷的在線版地圖、離線版地圖切換等等。
軟件的首界面定為地圖頁面,配合校園導航的主要功能,默認使用離線版地圖,節(jié)省用戶數(shù)據(jù)流量。論壇界面采用的是藍白搭配的色調(diào),是通過參考了很多的相關成功例子,藍白的搭配比較適中,不刺眼中色彩均衡。適合社區(qū)中文字信息相對多的一個界面。采用這的界面主要是設和論壇這種文字信息類比較多的界面。對用戶來說,不會很刺眼,看起來比較的舒服。

圖2 部分界面截圖
本校園移動導航應用是一個Android系統(tǒng)應用。主要使用了Android的相關技術,調(diào)用谷歌地圖實現(xiàn)定位功能,利用自己研究的最優(yōu)路徑算法計算路徑,使用Servlet與服務器交互并使用 Json數(shù)據(jù)進行數(shù)據(jù)傳送。服務器端使用的是JSP技術實現(xiàn)的服務器后臺管理頁面,利用MySQL進行數(shù)據(jù)的儲存。結(jié)合時下比較熱門的百度云服務,服務器應用托管在百度應用引擎,客戶端加入百度云推送服務。客戶端應用中數(shù)據(jù)保存方式以Android文件數(shù)據(jù)SharedPreferences文件存儲。
該模塊主要由兩個部分組成:在線版和離線版。主要的區(qū)別在于在線版是要連接網(wǎng)絡獲取Google map信息包括當前位置信息等。而離線版地圖是通過加載本地地圖信息,并在此基礎上實現(xiàn)其他功能。在方案的設計中,我們設想都是在衛(wèi)星視圖的基礎上進行二次開發(fā),在已有的建筑顯示上添加更多的細節(jié)信息。離線版的地圖,同樣是使用了Google的衛(wèi)星視圖作為底層,但這個是通過在pc端獲取較高分辨率的分塊地圖之后,使用Photoshop軟件將大量的小塊兒地圖拼接在一起形成整幅校園地圖。
路線繪制的原理是在地圖圖片Bitmap的基礎上,進行繪制Line。先通過路線算法求出路徑的所以經(jīng)過地點列表,然后離線版地圖版本是在一張地圖上面重新繪制路線,依次連接所有的地點,再繪制起點、終點標志。在線版本地圖是通過在地圖上相應景點的經(jīng)緯度繪制建筑點,然后在經(jīng)過Android轉(zhuǎn)換工具Project類的MapView.getProject()方法轉(zhuǎn)換成屏幕上的點的坐標位置,然后依次連接成線。地圖中將校園里面所有的景點信息都添加進了一個數(shù)據(jù)里面,然后需要計算路線的時候再將數(shù)據(jù)抽取出來經(jīng)過路徑算法運算得出路徑,而景點的添加是具備經(jīng)緯度、名稱、相對位置、描述等屬性。下面是設計學校建筑的所有結(jié)點,以及所有結(jié)點能到達的路線設計如圖3所示。
論壇是通過 servlet與服務器端交互,交互數(shù)據(jù)使用json,通過json數(shù)據(jù)可以分析成為集合list,解析成為客戶端所需要的沒一個話題,顯示到客戶端上。獲得話題列表是無需用戶驗證登錄就可以獲取的信息,所以在服務器端的Servlet無需任何參數(shù)就可以獲取,獲取回來的是Json數(shù)據(jù),這種數(shù)據(jù)比較好解析成相應數(shù)據(jù),方便客戶端中的調(diào)用。
驗證登錄的過程是將用戶名與密碼發(fā)送到服務器端進行校驗,如果服務器端擁有該用戶側(cè)返回相關數(shù)據(jù)確認,客戶端就可以將用戶信息通過文件保存SharedPreferences類的函數(shù)保存的用戶的機器中。
發(fā)表主題是需要用戶驗證登錄才能發(fā)表的,因此發(fā)表之前務必登錄到系統(tǒng)。之后才能發(fā)表,話題的儲存是和回復評論是一樣的類。只是多了一個話題屬性。因此可以采用相同的方法處理。這樣減少代碼冗余量。
應用中數(shù)據(jù)保存以Android文件數(shù)據(jù)SharedPreferences文件存儲方式。以便下次不需要重復登錄,不需要從服務器重復提交獲取話題信息,保存的Json數(shù)據(jù)還能實現(xiàn)離線閱讀等。

圖3 學校建筑路線圖
該模塊重點在于需要很好的熟悉目前各社交平臺的接口信息以及其使用方式。對于不同的社交平臺,其接口的認證方式會不一樣,包括一些不同的平臺在諸多細節(jié)上差異。如今的認證方式采用的是最新的OAuth2.0認證,客戶端無法得到用戶的密碼等安全信息,是通過微博服務器直接交互。OAuth2.0是 OAuth協(xié)議的下一版本,但不向后兼容 OAuth 1.0。 OAuth 2.0關注客戶端開發(fā)者的簡易性,同時為 Web應用、桌面應用、手機以及起居室設備提供專門的認證流程。當前新浪微博、騰訊微博、人人網(wǎng)開放平臺統(tǒng)一都是采用最新的OAuth2.0認證方式,確保了用戶的密碼安全性。
該模塊重點在于對文字信息的處理。主要的研究和實現(xiàn)在于利用列表以及文本的形式美觀地顯示在校日常問與答,獲取和解析web網(wǎng)站的信息,實現(xiàn)校主頁新聞、學校各官方微博信息等在板塊中進行顯示,動態(tài)傳遞學校、校園信息。
當前版本實現(xiàn)的只是從本地讀取數(shù)據(jù)經(jīng)過HTML的格式,顯示到客戶端中,通過文字的形式展現(xiàn)給用戶。
校園導航應用為在校師生和外來人員帶來方便。具有實時、界面友好、可靠、易維護、易擴展等優(yōu)點。一個手機端應用,最好的功能莫過于為人們解決問題,提高人們的辦事效率以節(jié)約更多的時間,這正是整個應用設計的初衷,系統(tǒng)不夠完善,比如應用中調(diào)用GoogleMap定位,相對來說會消耗部分數(shù)據(jù)流量,而且數(shù)據(jù)流量定位精度相對低,可以通過使用GPS衛(wèi)星定位解決,但由于衛(wèi)星定位會因天氣、室內(nèi)外位置、手持設備的不同而有不同的情況,局限相對大,這些問題是今后的改進和探索方向。
[1] 余志龍,陳昱勛.Android SDK 開發(fā)范例大全[M].人民郵電出版社,2009.
[2] 羅偉.基于 Android平臺的即時通訊系統(tǒng)的研究與實現(xiàn)[D].湖南師范大學學位論文.2009.
[3] 胡世良.移動互聯(lián)網(wǎng):贏在下一個十年的起點.人民郵電出版社,2011.
[4] (加)Daniel Wigdor,(美)Dennis Wixon.自然用戶界面設計:NUI的經(jīng)驗教訓與設計原則[M].人民郵電出版社,2012.
[5] 李剛.瘋狂Android講義[M].電子工業(yè)出版社,2010.
[6] 王家林.大話企業(yè)級Android應用開發(fā)實戰(zhàn)[M].電子工業(yè)出版社,2010.