摘? 要:為了滿足學(xué)生能隨時隨地掌握校園學(xué)生信息的需求,在研究學(xué)生日常基本需求及行為的基礎(chǔ)上,設(shè)計(jì)了一款基于Android的“校園學(xué)生信息服務(wù)助手”APP。在確定開發(fā)方案和總體結(jié)構(gòu)的基礎(chǔ)上,確定了“校園學(xué)生信息服務(wù)助手”的核心功能,具體包括:個人信息管理模塊、課程表模塊、校園論壇模塊、私人會話模塊。通過該APP,學(xué)生可以查詢自己的課程信息、發(fā)表以及回復(fù)主題帖、收藏帖子及關(guān)注用戶、查看用戶間的熱門話題、進(jìn)行用戶間的聊天交友。
關(guān)鍵詞:校園;服務(wù)助手;Android
中圖分類號:TP311.5? ? ? 文獻(xiàn)標(biāo)識碼: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? 引? 言
為了使學(xué)生在學(xué)習(xí)之余,能有效地?cái)U(kuò)大自己的交際網(wǎng)絡(luò),豐富日常生活,解決江西青年職業(yè)學(xué)院學(xué)生日?;顒影才判畔⒉粚ΨQ問題,滿足學(xué)生群體空閑時間交流的特定需求方面,筆者開發(fā)了基于Android的“校園學(xué)生信息服務(wù)助手”APP,該APP主要面向江西青年職業(yè)學(xué)院學(xué)生,提供一些基本功能及交流討論方式的校園移動應(yīng)用。
使用該APP,用戶需要先注冊賬號,登錄后即可使用應(yīng)用內(nèi)的所有功能。用戶可以添加自己的課程信息,添加方式有四種:一種是手動輸入信息添加,一種是搜索課程并添加,一種是選擇應(yīng)用為其推薦的同校用戶課程,一種是通過掃描其他用戶的課程表二維條碼進(jìn)行復(fù)制。添加成功后輸入的課程信息將按照周次展示給用戶,用戶也可以對已有的課程信息進(jìn)行修改和刪除。用戶可以進(jìn)入“校園”功能界面,瀏覽所有版塊下的熱門帖子,發(fā)表回復(fù)與其他用戶進(jìn)行交流討論,當(dāng)然用戶自己也可以通過搜索進(jìn)入其他板塊,用戶在這里可以收藏自己感興趣的帖子,也可以關(guān)注自己感興趣的用戶。用戶可以進(jìn)入“會話”功能界面,向自己指定的用戶發(fā)送聊天信息,內(nèi)容支持文本、語音和圖片,在提交自己的地理位置后用戶可以查看在自己附近的其他用戶并發(fā)起會話。個人信息管理模塊包括用戶的注冊登錄以及注銷、個人信息的修改。課程表模塊包括添加課程、修改課程、刪除課程、查詢課程、生成及掃描課程信息二維碼、設(shè)置當(dāng)前周數(shù)。校園論壇模塊包括查看熱門帖子、搜索版塊、收藏帖子、關(guān)注用戶、瀏覽帖子、發(fā)表帖子、回復(fù)帖子。私人會話模塊包括發(fā)送文本消息、發(fā)送語音消息、發(fā)送文本消息、查看附近的人。
1? 開發(fā)模式
在Android開發(fā)中,MVC是非常常見的開發(fā)模式。采用MVC開發(fā)可以有效地將業(yè)務(wù)邏輯、數(shù)據(jù)處理與UI界面分離,使項(xiàng)目更加易于維護(hù)。顧名思義,MVC模式主要分為三個層次,M(Model)層:完成數(shù)據(jù)、業(yè)務(wù)邏輯的處理;V(View)層:完成數(shù)據(jù)顯示的處理;C(Controller)層:完成用戶與應(yīng)用交互的處理。在一個Android項(xiàng)目中,扮演上述三個角色的分別是:業(yè)務(wù)邏輯及數(shù)據(jù)處理相關(guān)代碼、XML布局文件、Activity。MVC模式結(jié)構(gòu)如圖1所示。
從圖1中可以看出,首先由控制器接收用戶的操作請求,并判斷應(yīng)該由哪個模型進(jìn)行下一步處理。其次,被選中的模型根據(jù)用戶的請求對相應(yīng)的業(yè)務(wù)邏輯或數(shù)據(jù)進(jìn)行處理,完成后將數(shù)據(jù)結(jié)果返回。最后控制器調(diào)用對應(yīng)的視圖對數(shù)據(jù)進(jìn)行分析后,通過視圖傳遞給用戶。在Android中,充當(dāng)控制器的Activity的主要職責(zé)是將視圖層與模型層分離開,起到交互以及一定的解耦作用。
2? 系統(tǒng)核心功能
2.1? 查看個人課程表
用戶點(diǎn)擊課表,直接進(jìn)入個人課程表界面,如圖2所示。在這個界面中,“校園學(xué)生信息服務(wù)助手”APP將根據(jù)用戶添加的課程信息,將課程顯示在界面中。上面顯示的是當(dāng)前所處的教學(xué)周次的課表信息,包括當(dāng)前教學(xué)周次所處的月份、上課的節(jié)次、課程名稱及地點(diǎn),使得每位學(xué)生可以隨時隨地查看課表。
實(shí)現(xiàn)該功能的核心代碼為:
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? 搜索課程
用戶成功登錄后,點(diǎn)擊搜索課程按鈕,跳轉(zhuǎn)至個人課程表界面,如圖3所示,在這個界面,用戶可以在搜索框輸入課程的全名或者關(guān)鍵字,然后點(diǎn)擊放大鏡按鈕,查詢成功后對搜索結(jié)果進(jìn)行篩選,獲得符合條件的所有課程。
實(shí)現(xiàn)該功能的核心代碼為:
//搜索課程
String strSQL = "select * from ClassInfo";
query.setSQL(strSQL);
//篩選符合條件的課程
String regEX = etSearchClass.getText().toString();
boolean result = Pattern.compile(regEX).matcher(list.get(i).getcName()).find();
//添加進(jìn)查詢結(jié)果List中
if (result)
{requestList.add(list.get(i));}
2.3? 生成課程信息二維碼
用戶登錄成功后,在個人課程表界面,點(diǎn)擊分享按鈕,即可生成帶有自己所有課程信息的二維碼。
實(shí)現(xiàn)該功能的核心代碼為:
創(chuàng)建二維碼:Bitmap qrBitmap = QRcodeUtil.generateBitmap (userId,800,800);
顯示二維碼:showQRcode(qrBitmap);
2.4? 發(fā)表帖子
用戶登錄成功后,進(jìn)入校園論壇,在這個部分,使用者可以根據(jù)自己的需要來發(fā)表自己的技術(shù)帖或生活貼。在這個頁面,用戶可以根據(jù)需要輸入相應(yīng)的內(nèi)容,輸入完成后點(diǎn)擊發(fā)表按鈕,即可完成帖子的發(fā)布。
2.5? 收藏帖子
用戶登錄成功后,在帖子詳情界面可以點(diǎn)擊右上角的收藏按鈕,調(diào)用addCollect()方法對主題帖進(jìn)行收藏,這里有兩種情況,一是用戶已經(jīng)收藏過該主題帖,二是用戶還未收藏過該主題帖,前者點(diǎn)擊按鈕后會取消收藏,后者點(diǎn)擊按鈕則會完成收藏帖子的操作。
2.6? 私人會話
在實(shí)現(xiàn)私人會話模塊時,主要用到了Bmob后端云提供的IMSDK,兩個用戶的終端與Bmob服務(wù)器之間的通信是基于WebScoket的心跳長連接,當(dāng)一個用戶向另一個用戶發(fā)送消息時,這條消息首先發(fā)送到Bmob的服務(wù)器上,然后服務(wù)器將根據(jù)消息中接收者的ID判斷該把這條消息發(fā)送給哪個用戶終端。為了進(jìn)行會話,需要在用戶之間創(chuàng)建一個BmobIMConversation會話對象,消息的發(fā)送與接收都是基于這個會話對象進(jìn)行的,在這個對象中保存了發(fā)送者ID、頭像、昵稱以及接收者ID、頭像昵稱的信息,以便服務(wù)器對消息進(jìn)行處理。
2.6.1? 發(fā)送消息
用戶登錄成功后,會調(diào)用BmobIM類中的connect()方法與Bmob服務(wù)器建立起一個長連接。進(jìn)入應(yīng)用后,點(diǎn)擊任意用戶的頭像或昵稱即可進(jìn)入用戶信息界面,在該界面點(diǎn)擊發(fā)送消息按鈕,即可進(jìn)入會話界面與該用戶進(jìn)行私下的會話交流,會話界面如圖4所示。
發(fā)送消息的內(nèi)容支持文本、圖片、語音、視頻四種形式。在發(fā)送文本消息時,輸入想要發(fā)送的文本信息,發(fā)送圖片消息時,可以通過相冊和相機(jī)兩種方式獲得圖片文件路徑,發(fā)送語音消息時,調(diào)用系統(tǒng)的麥克風(fēng)錄制音頻并獲取音頻文件路徑,發(fā)送視頻消息時,用攝像頭抓取視頻,在系統(tǒng)控制類的作用下,完成發(fā)送。使用者輸入完成后通過點(diǎn)擊發(fā)送按鈕就可將消息發(fā)送給服務(wù)器,服務(wù)器則會以所接收到的消息中的接收者ID為依據(jù),將消息下發(fā)給指定的用戶終端,若指定的用戶當(dāng)前不在線,則將消息存放在一個數(shù)組中,等該用戶與服務(wù)器再次建立起連接后,再將消息依次發(fā)送。
2.6.2? 接收消息
用戶登錄成功后,與發(fā)送消息類似,調(diào)用BmobIM類中的connect()方法與Bmob服務(wù)器建立起一個長連接。在私人會話界面通過loadAllConversation()方法加載所有與當(dāng)前用戶有關(guān)的BmobIMConversation會話對象,一旦服務(wù)器接收到發(fā)給當(dāng)前用戶的消息時,則會下發(fā)至當(dāng)前用戶的終端。
2.6.3? 查看附近的人
用戶登錄成功后,在私人會話界面點(diǎn)擊右上角的附近的人按鈕,即可跳轉(zhuǎn)至附近的人界面,同時也將提交自己當(dāng)前的地理位置,應(yīng)用將根據(jù)該地理位置,為用戶找出在附近使用該功能的其他用戶,并以包含頭像、昵稱的列表形式展現(xiàn)給用戶,點(diǎn)擊任意用戶條目,則進(jìn)入其用戶信息界面。當(dāng)用戶關(guān)閉此界面時,將刪除之前提交的地理位置信息,以防受到騷擾。
3? 結(jié)? 論
本文設(shè)計(jì)的基于Android的“校園學(xué)生信息服務(wù)助手”APP,可以隨時查看課程表,得知上課時間、上課地點(diǎn)以及上的課程等,以便學(xué)生能提前做好上課準(zhǔn)備。通過校園論壇模塊進(jìn)行帖子發(fā)布、回復(fù)帖子以及查看熱門帖子等,與線下面對面教學(xué)不同,師生通過該APP探討問題,可以緩解部分學(xué)生膽怯的心理,有效提高學(xué)生的學(xué)習(xí)主動性。
參考文獻(xiàn):
[1] 介龍梅,邵國強(qiáng).基于Android平臺的移動社交APP設(shè)計(jì)與實(shí)現(xiàn) [J].福建電腦,2016,32(7):111-112.
[2] 汪靜,許欣,王新年.基于Bmob云平臺的消息推送系統(tǒng)設(shè)計(jì)與實(shí)現(xiàn) [J].軟件導(dǎo)刊,2016(12):84-86.
[3] 范志勇.基于Android的移動端社交軟件的設(shè)計(jì)與實(shí)現(xiàn) [D].長春:吉林大學(xué),2015.
[4] 呂留記.基于Android的即時通訊系統(tǒng)的研究與實(shí)現(xiàn) [D].成都:電子科技大學(xué),2016.
作者簡介:余麗娜(1983—),女,漢族,江西豐城人,教師,碩士,主要研究方向:計(jì)算機(jī)應(yīng)用。