石俊豪,趙良軍,陳政揚,周楊博,趙玖琦,鄭斌
(四川輕化工大學計算機科學與工程學院,宜賓 644000)
移動應用的快速發展,結合利用信息和互聯網平臺使得各種行業的相關服務都發生了根本性的變革。“互聯網+”的興起使得這種結合變得更加簡便與快速。作為教育重要載體的高校應當順應“互聯網+”時代潮流,推動傳統高校向現代化智慧校園轉變,真正提高智慧校園的科技水平以及服務能力,為更多的師生提供優質的教學、生活等方面的服務。在大學的各種學生組織中,大學生社團是以提高學生綜合素質、科研創新能力,培養高素質新型社會人才為目的的學生組織,是高校課堂教育的補充和延伸,大部分學生生涯不可替代的組成部分[1]。
目前社團的招新方式大多靠著線下的“百團大戰”活動和線上的QQ 空間發布等進行宣傳招新,利用QQ群等即時聊天工具進行管理。但傳統的社團招新、宣傳手段遠遠不能滿足學生社團管理的需求,往往導致社團招聘不到素質合格的學生,而學生也不能如愿以償的加入合適的社團[2],同時面對大規模的社團信息管理,傳統手段也不能滿足需求。
通過設計一款基于Android 平臺的校園社團管理軟件來簡化學生社團管理流程,提供便捷的社團信息推送服務。為社團管理人員提供系統來管理,為一般用戶提供獲取信息和交流的渠道。
針對社團管理存在的需求,結合當下存在的校園類軟件。系統待解決的問題主要有3 點:
(1)社團信息以及社團活動信息的發布與及時推送的服務需求
(2)社團報名、社團活動報名、社團干事競選等報名申請,社團資料與人員變更、社團各類信息導出等社團管理需求
(3)用戶與用戶、用戶與管理人員、管理人員與管理人員之間的交流需求
軟件功能是建立在需求分析之上得到,校園社團管理軟件需要完成的功能子模塊主要有4 個:管理模塊、報名模塊、通知模塊、查詢模塊,各個模塊有若干不同的工具類構成。各個工具類以組件的形式存在。系統功能模塊圖如圖1 所示。

圖1 功能模塊圖
軟件客戶端通過因特網向Server 端發送請求獲取信息,Server 端獲取到客戶端的請求將參數通過Web實例調用相應的方法進行邏輯處理,然后根據結果對后臺數據庫進行增加、刪除、修改、查找,并返回結果進行響應[3]。網絡模式示意圖如圖2 所示。

圖2 網絡模式示意圖
管理模塊包括信息管理、權限管理、經費管理。信息管理面向用戶和社團管理人員分為個人信息管理和社團信息管理,個人信息管理用戶可以自行更改自己的個人信息,預設的申請信息的自定義信息,可以修改自己的個人標簽來接收軟件的推送信息,社團信息管理是社團管理人員對于已加入社員的用戶信息維護,發布新的活動信息、修改活動信息等;權限管理面向社團管理人員,其可以通過這一模塊使得高權限人員對低權限人員的權限進行更改,是整個社團權限的基礎;經費管理面向社團,管理對象包括:社團入會費用、社團基金和社團贊助等基金,提供經費收入、支出、明細查詢的功能,是社團管理透明化的保證。
報名模塊包括社員申請、干事審核。社員申請包括活動申請和入會申請,活動申請是用戶通過在線的方式提交自己的申請信息,這時系統需要提供申請模板,統一申請信息,轉由干事審核功能進行審核。干事審核面向社團管理人員,為其提供一鍵化的操作來快速完成審核,提供接口能夠使得審核后導出所有的審核信息方便信息歸檔。
通知模塊由活動通知和申請反饋組成?;顒油ㄖ窍到y根據用戶預設的個人興趣與統計得到的用戶活動參與情況,通過自動地對新發布的活動進行歸類,按類型向不同的用戶進行活動信息推送,推送過程中保證推送的準確性和及時性。申請反饋面向所有用戶,是各類申請結果的即時反饋。
查詢模塊有社團信息、活動信息、干事信息、申請進度四個主要功能。社團信息包括所有社團的從屬關系、組織架構、類型等總體信息,也包含社團名、社團聯系方式、活動數、評價等詳細信息;活動信息是由社團發布的活動的詳細資料,包括時間、地點、介紹、聯系方式、圖片等,方便用戶了解當前和歷史的各類活動,也可以為社團干事提供活動舉辦的經驗;干事信息是用戶能夠通過系統查詢到各個干事的基本信息,包括姓名、所屬關系、聯系方式的;申請進度查詢是為報名參加活動的、填寫了社團入會申請的、填寫了干事競選申請的用戶提供實時的進度查詢和提醒服務,連通用戶與審核處理人員。
系統的主要編程語言是Java。開發平臺是Windows 10 操作系統,客戶端開發軟件使用Android Studio,服務端開發軟件使用Eclipse。后臺服務器搭載CentOS,Web 容器選用 Tomcat,后臺數據庫選用MySQL。
軟件設計語言采用Material Design。Material De-sign 是由Google 推出的全新的設計語言,這種設計語言為手機、平板電腦、臺式機和“其他平臺”提供更一致、更廣泛的“外觀和感覺”。其目標是創造一個將經典的設計原則和科技、創新相結合的設計語言。
主界面使用DrawerLayout+ViewPage。DrawerLayout 是抽屜布局,允許從窗口的一個或兩個垂直邊緣拉出交互式“抽屜”視圖,可以用來添加一個Navigation-View,在NavigationView 中添加多個按鈕來提供功能。使用兩層ViewPage 保存每個界面實現左右滑動操作。第一層ViewPage 與底部BottomNavigationView 綁定并解除滑動切換而使用底部欄點擊切換;第二層ViewPage 放于第一層的ViewPage 里邊實現滑動切換。
列表展示采用RecyclerView。RecyclerView 標準化了ViewHolder,可以輕松實現基礎ListView 實現不了的樣式和功能,如:可以通過布局管理器LayoutManager 可控制Item 的布局方式,可以通過設置Item 操作動畫自定義Item 添加和刪除的動畫,也可以通過設置Item 之間的間隔樣式,自定義間隔。因此Recycler-View 只用新建適配器填充數據,設置布局樣式就可以使用[4]。最終主界面的實現效果如圖3 所示。

圖3 主界面效果圖
信息展示界面使用AppBar+NestedScollView。App-Bar 是Android5.0 的加入的重要動畫效果,具有非常絢麗的UI,通過內容驅動,可以減少頁面的訪問,更加便捷的傳遞主題思想。在AppBar 里面嵌套一個動態生成的ViewPager 即可實現圖片的輪播圖用來展示需要展示的圖片信息。NestedScollView 是一個支持嵌套滑動的ScrollView,通過嵌套滑動機制解決了傳統Android 事件分發無法共享事件這個問題。FloatingActionButton 控件是一個懸浮按鈕,可以懸于AppBar 之上,用來實現報名申請。
圖片的加載使用Glide 庫。它是一個Android 上的圖片加載和緩存庫,其目的是實現平滑的圖片列表滾動效果。可以通過方法設置圖片加載的位置、大小、占位圖、緩存策略等加載效果。主要代碼如下:

信息展示界面最終的效果如圖4 所示。

圖4 信息展示界面效果圖
活動發布界面使用NestedScollView。在View 中加入各類定制化的控件,如帶統計的輸入框、圖片選擇、時間選擇等。其中圖片選擇使用Matisse,它是知乎的一個開源項目,能夠實現Android 本地圖片、視頻的選擇并兼有優雅的界面和不錯的性能。圖片選擇需要動態向系統申請讀寫權限。選擇圖片后通過回調的方式將圖片壓縮后渲染到一個RecyclerView 里面顯示。
點擊發布活動按鈕后將壓縮的圖片與需要發布信息一起通過Post 的方式發送到服務器進行響應。網絡請求框架采用OkHttp,它是一個高效的HTTP 客戶端,支持HTTP/2,允許所有同一個主機地址的請求共享同一個Socket 連接,支持透明的GZIP 壓縮減少響應數據的大小。能夠實現項目的所有網絡需求?;顒影l布界面最終的效果如圖5 所示。

圖5 活動發布界面效果圖
本文設計并實現了基于Android 平臺的學生社團管理系統。界面友好、操作簡單,能夠滿足社團管理的基本需求,提高學生社團的運轉效率,使得校園生活更加便利。具有一定的代表性。但軟件的生態不夠完善,用戶基數小。希望能夠在之后推廣到更多學校,完善后臺數據庫,為用戶提供更完善、更舒適的體驗。