華南師范大學 黃思沛
基于Android的校園應用的設計初探
——以校園活動平臺為例
華南師范大學 黃思沛
一個Android工程項目中的配置清單文件Mainifest.xml文件可就Android開發(fā)工程的的組件進行統(tǒng)一的聲明和控制,起到統(tǒng)籌的作用,普遍來說,Android一共有四大組件,分別是Activity、Service、Broadcast Receiver、Content Provider。這四個組件之間的通訊主要是由intent指令來完成的
簡單來說Activity主要實現(xiàn)應用程序的界面;Service 負責Android 應用程序的后臺服務,實現(xiàn)后臺數(shù)據(jù)的處理和更新等;Broadcast Receiver主要作用是在Android中應用程序廣播的發(fā)送,如信息的提醒,狀態(tài)欄中的消息彈出;Content Provider主要負責Android 應用程序中的數(shù)據(jù)的存儲和提供。在這些組件的協(xié)調和合作中,intent在起到一個媒體中介的作用,專門提供組件互相調用的相關信息,實現(xiàn)調用者與被調用者之間的解耦,主要提供動作和動作對應的數(shù)據(jù)。
Android的整個系統(tǒng)架構包含四個層面,從高層至低層分別是:Applications應用程序層、Application Framework應用程序框架層、Android Runtime, Libraries系統(tǒng)運行庫層、Linux 內(nèi)核層。利用開源的Linux Kernel說明Android支持shell命令編程,而Android Runtime中Android選用了獨立開發(fā)的Dalvik VM虛擬機實現(xiàn)多種設備的兼容。在這個探索案例中,采用了ADT進行部署開發(fā),android-support-v4.jar的系統(tǒng)函數(shù)庫,在系統(tǒng)版本方面則是基于Android API 16 和Android API 19,即Android 4.1.2和Android4.4.2版本;JDK版本為1.6,開發(fā)操作系統(tǒng)為Windows 7 64-bit。
在本文中,校園應用是針對對于校園生活中校園服務尚未進行數(shù)字化的移動化服務應用,廣義來說,微信、微博、人人等社交網(wǎng)絡移動端適用于校園生活,但并不在本文所針對的范疇之內(nèi),除了加強社交網(wǎng)絡之中的人與人的溝通方式和提供新的社交維度,但他們本質上還是圍繞人與人之間的交往進行;而校園服務更多地偏向校園生活中的生活和社交需求,如課程表的獲取、成績信息、圖書館館藏資源查詢、學校教務信息獲取等功能,這些功能目前在大部分校園的建設中并沒有考慮到移動端的設計。
而對于具體的功能設計,則取決于功能需求的分析,基于分析的結果,結合目標市場的確定和產(chǎn)品的定位,完成功能設計,再進行一定的方案上的創(chuàng)新,功能設計的理念體現(xiàn)了價值工程“以功能為核心”的基本思想[2];要實現(xiàn)功能需求分析,較好的方式是通過市場調研和資源搜尋等多種結合的方式,以大量的數(shù)據(jù)支撐功能需求的特征;除此之外,援引專業(yè)調研公司對外公布的數(shù)據(jù)以及引用這些數(shù)據(jù)的權威人士或機構的觀點對于需求的分析有重要的導向作用。
因此在本例中,作者發(fā)現(xiàn),校園中學生之間常存在因為缺少志同道合的朋友而渴望認識到校園中可以一起進行活動的校友、本科和研究生畢業(yè)生畢業(yè)后,他們手中因畢業(yè)而需要處理的可用的資源沒有公開和固定的途徑而常常造成浪費、以及學生因為校園社團學生會、教務處的消息獲取不及時而錯失了重要的機會等問題。三者的在功能意義上的耦合性較低,而三個功能符合校園服務尚未進行數(shù)字化的特征,因此具備校園應用開發(fā)的部分條件。為了驗證功能在校園是否有足夠的需求。應該以校園活動開展、閑置物品交換、校園信息公告三個維度,進行問卷調查和文獻搜索進行需求分析的驗證和功能的進一步細化;
一般情況下,校園應用的功能結構應用信息處理、信息顯示和信息存儲三個部分。
其中,信息顯示部分主要由工程文件下Layout文件夾中XML文件實現(xiàn)框架,以Activity實現(xiàn)XML調用組成;信息處理部分包括數(shù)據(jù)解析和數(shù)據(jù)下載,針對獲取校園PC端的網(wǎng)頁數(shù)據(jù)方法中,應用到抓取和分析HTTP頁面的技術,在對HTML文檔進行解析和操作方面,jsoup解析器技術由于具有一套完整的并且相對簡單API方法,相比HTMLParser等具有更優(yōu)的優(yōu)勢,結合HttpClient在對Http協(xié)議的良好分析和支持后,能的好較好的頁面獲取效果;信息存儲則主要完成的是在本地數(shù)據(jù)的保存,SQLite作為一個嵌入式、輕量級數(shù)據(jù)庫,被應用在iOS、Windows Phone 7等操作系統(tǒng)中,具有良好的應用性;
由于校園應用移動端訪問服務器數(shù)據(jù)時,往往通過HTTP協(xié)議,Android系統(tǒng)自身提供了基礎的API,但較為簡單,往往需要加載其他基類來實現(xiàn),如Apache Jakarta Common提供的HttpClient包,利用里面的接口,可以實現(xiàn)廣泛的HTTP訪問;結合CacheManager,能節(jié)省一定的網(wǎng)絡通訊數(shù)據(jù)流量。除此之外,開發(fā)者還根據(jù)實際應用需求編寫接口,實現(xiàn)不同的數(shù)據(jù)訪問。
在iOS應用風格界面的影響下,Android開發(fā)除了嚴格遵循MVC模式外,應用簡潔、高效的滑動操作是目前被廣泛接受的。ViewPager[3]和Fragement是實現(xiàn)高效操作的典型代表,兩者分別的作用是實現(xiàn)多頁面的切換效果以及高效的布局分散;另外,SlidingMenu也是目前被廣泛采用的滑動技術,能夠更靈活地運用應用內(nèi)在空間實現(xiàn)內(nèi)容排布。
對于一些關鍵信息的獲取,應用程序往往使用內(nèi)容推送功能發(fā)送給用戶,而推送服務應用JPush推送,實現(xiàn)端到端的消息推送,其提供的豐富的接口以及良好的優(yōu)化保障了較好的用戶體驗;
對發(fā)布活動或者對于閑置物品需要進一步了解時,可通過線上即時通訊功能實現(xiàn),應用XMPP即時通訊協(xié)議下的Smack類庫,實現(xiàn)簡單和少量的即時通訊;結合JPush的推送機制,可實現(xiàn)基本的即時通訊功能。
對于活動的發(fā)布往往需要位置信息的發(fā)送,LBS是Android可通過Google提供的API來實現(xiàn),LBS下幾種比較重要的方法有LocationManager、LocationProvider、LocationListener等,利用這些接口,再結合Google Map或百度地圖所提供的API,就能實現(xiàn)我的位置、周邊位置、對方位置獲取等功能;
[1]Meeker, Mary, and Liang Wu.“2014 internet trends.”Kleiner Perkins Caufield & Byers, Technical Report(2014).
[2]陳圻.功能設計的概念,內(nèi)容與方法.云南工業(yè)大學學報12.3(1996):74-77.
[3]Android ViewPagerIndicator http://viewpagerindicator.com/
[4]呂偉.基于Android的移動學習平臺的設計與實現(xiàn).南京師范大學(2013).