摘? 要:為了滿足學生能隨時隨地掌握校園學生信息的需求,在研究學生日常基本需求及行為的基礎上,設計了一款基于Android的“校園學生信息服務助手”APP。在確定開發方案和總體結構的基礎上,確定了“校園學生信息服務助手”的核心功能,具體包括:個人信息管理模塊、課程表模塊、校園論壇模塊、私人會話模塊。通過該APP,學生可以查詢自己的課程信息、發表以及回復主題帖、收藏帖子及關注用戶、查看用戶間的熱門話題、進行用戶間的聊天交友。
關鍵詞:校園;服務助手;Android
中圖分類號:TP311.5? ? ? 文獻標識碼:A 文章編號:2096-4706(2021)01-0099-03
Design and Implementation of Campus APP Based on Android
——Take “Campus Student Information Service Assistant” APP as an Example
YU Lina
(Jiangxi Youth Vocational College,Nanchang? 330045,China)
Abstract:In order to meet the needs of students to master campus student information anytime and anywhere,“campus student information service assistant” APP based on Android is designed on the basis of studying studentsdaily basic needs and behaviors. On the basis of determining the development plan and overall structure,the core functions of the “campus student information service assistant” are determined,which specifically include:personal information management module,curriculum module,campus forum module and private conversation module. Through the APP,students can query their course information,publish and reply to topic posts,collect posts and follow users,view hot topics among users,and chat and make friends among users.
Keywords:campus;service assistant;Android
0? 引? 言
為了使學生在學習之余,能有效地擴大自己的交際網絡,豐富日常生活,解決江西青年職業學院學生日常活動安排信息不對稱問題,滿足學生群體空閑時間交流的特定需求方面,筆者開發了基于Android的“校園學生信息服務助手”APP,該APP主要面向江西青年職業學院學生,提供一些基本功能及交流討論方式的校園移動應用。
使用該APP,用戶需要先注冊賬號,登錄后即可使用應用內的所有功能。用戶可以添加自己的課程信息,添加方式有四種:一種是手動輸入信息添加,一種是搜索課程并添加,一種是選擇應用為其推薦的同校用戶課程,一種是通過掃描其他用戶的課程表二維條碼進行復制。添加成功后輸入的課程信息將按照周次展示給用戶,用戶也可以對已有的課程信息進行修改和刪除。用戶可以進入“校園”功能界面,瀏覽所有版塊下的熱門帖子,發表回復與其他用戶進行交流討論,當然用戶自己也可以通過搜索進入其他板塊,用戶在這里可以收藏自己感興趣的帖子,也可以關注自己感興趣的用戶。用戶可以進入“會話”功能界面,向自己指定的用戶發送聊天信息,內容支持文本、語音和圖片,在提交自己的地理位置后用戶可以查看在自己附近的其他用戶并發起會話。個人信息管理模塊包括用戶的注冊登錄以及注銷、個人信息的修改。課程表模塊包括添加課程、修改課程、刪除課程、查詢課程、生成及掃描課程信息二維碼、設置當前周數。校園論壇模塊包括查看熱門帖子、搜索版塊、收藏帖子、關注用戶、瀏覽帖子、發表帖子、回復帖子。私人會話模塊包括發送文本消息、發送語音消息、發送文本消息、查看附近的人。
1? 開發模式
在Android開發中,MVC是非常常見的開發模式。采用MVC開發可以有效地將業務邏輯、數據處理與UI界面分離,使項目更加易于維護。顧名思義,MVC模式主要分為三個層次,M(Model)層:完成數據、業務邏輯的處理;V(View)層:完成數據顯示的處理;C(Controller)層:完成用戶與應用交互的處理。在一個Android項目中,扮演上述三個角色的分別是:業務邏輯及數據處理相關代碼、XML布局文件、Activity。MVC模式結構如圖1所示。
從圖1中可以看出,首先由控制器接收用戶的操作請求,并判斷應該由哪個模型進行下一步處理。其次,被選中的模型根據用戶的請求對相應的業務邏輯或數據進行處理,完成后將數據結果返回。最后控制器調用對應的視圖對數據進行分析后,通過視圖傳遞給用戶。在Android中,充當控制器的Activity的主要職責是將視圖層與模型層分離開,起到交互以及一定的解耦作用。
2? 系統核心功能
2.1? 查看個人課程表
用戶點擊課表,直接進入個人課程表界面,如圖2所示。在這個界面中,“校園學生信息服務助手”APP將根據用戶添加的課程信息,將課程顯示在界面中。上面顯示的是當前所處的教學周次的課表信息,包括當前教學周次所處的月份、上課的節次、課程名稱及地點,使得每位學生可以隨時隨地查看課表。
實現該功能的核心代碼為:
SharedPreferencesgetData = getActivity().getShared Preferences(
"weekData", Context.MODE_PRIVATE);
SimpleDateFormatsdf = new SimpleDateFormat("w");
currentYearWeek = sdf.format(new Date());
Integer weekCount =Integer.valueOf(currentYearWeek) - Integer.valueOf(yearWeek);
Integer week = Integer.valueOf(SchoolWeek) + weekCount;
currentSchoolWeek = String.valueOf(week);
2.2? 搜索課程
用戶成功登錄后,點擊搜索課程按鈕,跳轉至個人課程表界面,如圖3所示,在這個界面,用戶可以在搜索框輸入課程的全名或者關鍵字,然后點擊放大鏡按鈕,查詢成功后對搜索結果進行篩選,獲得符合條件的所有課程。
實現該功能的核心代碼為:
//搜索課程
String strSQL = "select * from ClassInfo";
query.setSQL(strSQL);
//篩選符合條件的課程
String regEX = etSearchClass.getText().toString();
boolean result = Pattern.compile(regEX).matcher(list.get(i).getcName()).find();
//添加進查詢結果List中
if (result)
{requestList.add(list.get(i));}
2.3? 生成課程信息二維碼
用戶登錄成功后,在個人課程表界面,點擊分享按鈕,即可生成帶有自己所有課程信息的二維碼。
實現該功能的核心代碼為:
創建二維碼:Bitmap qrBitmap = QRcodeUtil.generateBitmap (userId,800,800);
顯示二維碼:showQRcode(qrBitmap);
2.4? 發表帖子
用戶登錄成功后,進入校園論壇,在這個部分,使用者可以根據自己的需要來發表自己的技術帖或生活貼。在這個頁面,用戶可以根據需要輸入相應的內容,輸入完成后點擊發表按鈕,即可完成帖子的發布。
2.5? 收藏帖子
用戶登錄成功后,在帖子詳情界面可以點擊右上角的收藏按鈕,調用addCollect()方法對主題帖進行收藏,這里有兩種情況,一是用戶已經收藏過該主題帖,二是用戶還未收藏過該主題帖,前者點擊按鈕后會取消收藏,后者點擊按鈕則會完成收藏帖子的操作。
2.6? 私人會話
在實現私人會話模塊時,主要用到了Bmob后端云提供的IMSDK,兩個用戶的終端與Bmob服務器之間的通信是基于WebScoket的心跳長連接,當一個用戶向另一個用戶發送消息時,這條消息首先發送到Bmob的服務器上,然后服務器將根據消息中接收者的ID判斷該把這條消息發送給哪個用戶終端。為了進行會話,需要在用戶之間創建一個BmobIMConversation會話對象,消息的發送與接收都是基于這個會話對象進行的,在這個對象中保存了發送者ID、頭像、昵稱以及接收者ID、頭像昵稱的信息,以便服務器對消息進行處理。
2.6.1? 發送消息
用戶登錄成功后,會調用BmobIM類中的connect()方法與Bmob服務器建立起一個長連接。進入應用后,點擊任意用戶的頭像或昵稱即可進入用戶信息界面,在該界面點擊發送消息按鈕,即可進入會話界面與該用戶進行私下的會話交流,會話界面如圖4所示。
發送消息的內容支持文本、圖片、語音、視頻四種形式。在發送文本消息時,輸入想要發送的文本信息,發送圖片消息時,可以通過相冊和相機兩種方式獲得圖片文件路徑,發送語音消息時,調用系統的麥克風錄制音頻并獲取音頻文件路徑,發送視頻消息時,用攝像頭抓取視頻,在系統控制類的作用下,完成發送。使用者輸入完成后通過點擊發送按鈕就可將消息發送給服務器,服務器則會以所接收到的消息中的接收者ID為依據,將消息下發給指定的用戶終端,若指定的用戶當前不在線,則將消息存放在一個數組中,等該用戶與服務器再次建立起連接后,再將消息依次發送。
2.6.2? 接收消息
用戶登錄成功后,與發送消息類似,調用BmobIM類中的connect()方法與Bmob服務器建立起一個長連接。在私人會話界面通過loadAllConversation()方法加載所有與當前用戶有關的BmobIMConversation會話對象,一旦服務器接收到發給當前用戶的消息時,則會下發至當前用戶的終端。
2.6.3? 查看附近的人
用戶登錄成功后,在私人會話界面點擊右上角的附近的人按鈕,即可跳轉至附近的人界面,同時也將提交自己當前的地理位置,應用將根據該地理位置,為用戶找出在附近使用該功能的其他用戶,并以包含頭像、昵稱的列表形式展現給用戶,點擊任意用戶條目,則進入其用戶信息界面。當用戶關閉此界面時,將刪除之前提交的地理位置信息,以防受到騷擾。
3? 結? 論
本文設計的基于Android的“校園學生信息服務助手”APP,可以隨時查看課程表,得知上課時間、上課地點以及上的課程等,以便學生能提前做好上課準備。通過校園論壇模塊進行帖子發布、回復帖子以及查看熱門帖子等,與線下面對面教學不同,師生通過該APP探討問題,可以緩解部分學生膽怯的心理,有效提高學生的學習主動性。
參考文獻:
[1] 介龍梅,邵國強.基于Android平臺的移動社交APP設計與實現 [J].福建電腦,2016,32(7):111-112.
[2] 汪靜,許欣,王新年.基于Bmob云平臺的消息推送系統設計與實現 [J].軟件導刊,2016(12):84-86.
[3] 范志勇.基于Android的移動端社交軟件的設計與實現 [D].長春:吉林大學,2015.
[4] 呂留記.基于Android的即時通訊系統的研究與實現 [D].成都:電子科技大學,2016.
作者簡介:余麗娜(1983—),女,漢族,江西豐城人,教師,碩士,主要研究方向:計算機應用。