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