蔡逸晨 趙潔 孔天昱 朱浩哲 陳華強(qiáng)
(江蘇第二師范學(xué)院 物理與信息工程學(xué)院 江蘇省南京市 210000)
2022年碩士研究生報名人數(shù)創(chuàng)下最高紀(jì)錄,達(dá)到457 萬,漲幅達(dá)21%。自2016年起,我國碩士研究生的報考人數(shù)持續(xù)在高位上保持高增長趨勢。2015 至2022年間,七年平均增長率為15.8%,而招生比例為24%同比2021年減少6%,這也意味著成功考研變得越來越難[1]。
考研備考是個艱難的過程,如果能找到志同道合的考研同伴在備考路上互相激勵共同進(jìn)步,是很多同學(xué)看來可遇不可求的幸運(yùn)。信息技術(shù)越來越發(fā)達(dá)的今天,我們希望這個愿望不再難以實(shí)現(xiàn),做這個項(xiàng)目的理由就是要運(yùn)用現(xiàn)代化的技術(shù)手段去改變的這些現(xiàn)象,盡可能為考研同學(xué)提供全方位的輔助。
目前,市面上出現(xiàn)的與考研相關(guān)的APP,大多是考研培訓(xùn)機(jī)構(gòu)所開發(fā),其目的自然是銷售考研相關(guān)的課程,或進(jìn)行考研學(xué)校的有償推薦。雖然一些考研APP 提供了社區(qū)功能,但是由于該功能的局限性,很難進(jìn)行有效的互動交流,使得同學(xué)之間的交流不夠流暢,難以達(dá)到共同進(jìn)步的目的。
(1)響應(yīng)速度:“研路有你”APP 需要提供高效的響應(yīng)速度,讓用戶能夠快速使用和操作該應(yīng)用,避免長時間的等待和卡頓現(xiàn)象。
(2)穩(wěn)定性:“研路有你”APP 需要具有良好的穩(wěn)定性,能夠保證應(yīng)用在各種環(huán)境下的正常運(yùn)行,并且不會因?yàn)橐馔馇闆r導(dǎo)致崩潰。
(3)界面設(shè)計:“研路有你”APP 需要有良好的界面設(shè)計,易于使用和操作,并符合用戶被激勵的需求和審美觀。
(4)可用性:“研路有你”APP 需要提供豐富的功能和良好的用戶體驗(yàn),不僅能夠滿足用戶的需求,而且方便易用,讓用戶輕松管理和共享研究資源。
(5)移動性:“研路有你”APP 需要支持不同的移動設(shè)備,包括智能手機(jī)、平板電腦等多種設(shè)備,并能夠根據(jù)不同設(shè)備的特性進(jìn)行適配和優(yōu)化。
注冊與登錄時采取多重身份驗(yàn)證機(jī)制來保證用戶身份真實(shí)性,在與其他應(yīng)用、網(wǎng)站的集成連接過程中,對于涉及到用戶數(shù)據(jù)的共享等情況,會在事先獲得用戶授權(quán)的情況下進(jìn)行,保證用戶信息的安全性[2]。
根據(jù)上訴應(yīng)用需求的分析,本文著重從研友匹配、資料分享、群互助、政策推送、時間管理、計劃監(jiān)督6個功能入手,如圖1所示,設(shè)計出“研路有你”APP。

圖1:功能模塊
在“研”路有你APP 中,有用戶,管理員,網(wǎng)站管理員,研友,政策通知,資料,計劃等實(shí)體,它們之間的關(guān)系如圖2所示。

圖2:“研”路有你APP 整體E-R 圖
本平臺所采用的數(shù)據(jù)庫是SQLite,數(shù)據(jù)庫中包含數(shù)據(jù)庫表和表之間的關(guān)系。根據(jù)數(shù)據(jù)庫概念設(shè)計,至少應(yīng)該包含如下幾種表,各表存儲信息對應(yīng)的關(guān)系如表1所示。

表1:“研”路有你APP 中表所存儲的信息
3.3.1 研友匹配功能
智能匹配好友板塊根據(jù)用戶的目標(biāo)學(xué)校、目標(biāo)專業(yè)、目標(biāo)城市、性別等信息找到所有符合條件的其他用戶,當(dāng)符合條件的人數(shù)大于5 時,利用shuffle 函數(shù)將其打亂順序,再調(diào)用sublist 方法隨機(jī)選取5 個人展示,關(guān)鍵代碼如下:

研友模塊界面如圖3所示。

圖3:研友模塊界面
3.3.2 資料分享功能
調(diào)用indexof 函數(shù)判斷所分享資料的后綴名,indexof 函數(shù)返回一個整數(shù)值,指出String 對象內(nèi)子字符串的開始位置。如果沒有找到子字符串,則返回-1,進(jìn)而對其所上傳的資料分為pdf,MP4,doc,jpg,jpeg,png 進(jìn)行上傳,如若后綴名不是以上種類則上傳失敗,以上傳pdf 為后綴名的文件為例的核心代碼:


功能界面如圖4所示。

圖4:資料分享功能界面
3.3.3 互助功能
通過調(diào)用indexof 函數(shù)來設(shè)置所發(fā)出去的問題是所有人可見、還是僅好友可見,還是部分人可見,還是部分人不可見,功能界面如圖5所示。

圖5:互助模塊界面
3.3.4 政策推送功能
管理員通過App.dbManager.save(tongzhi)將通知的編號、內(nèi)容、標(biāo)題、時間都存儲在dbManager 數(shù)據(jù)庫中,用戶通過調(diào)用TongzhiAdapter 來顯示dbManager 中tongzhi 的內(nèi)容,功能界面如圖6所示。

圖6:政策推送界面
3.3.5 時間管理功能
先調(diào)用calendar 方法創(chuàng)建日歷功能,設(shè)置好日期,然后再設(shè)置時間,核心代碼如下:
Calendar selectedDate = Calendar.getInstance();
Calendar startDate = Calendar.getInstance();
startDate.set(1990,1,1);
Calendar endDate = Calendar.getInstance();
endDate.set(2920,1,1);
功能界面如圖7所示。

圖7:時間管理界面
3.3.6 計劃監(jiān)督功能
設(shè)置日期的方法同上,功能界面如圖8所示。

圖8:計劃監(jiān)督界面
(1)使用ConstraintLayout 進(jìn)行布局,這樣可以減少嵌套布局,提高性能[3];
(2)使用LinearLayout 進(jìn)行布局時,設(shè)置orientation為horizontal 或vertical 可以大大提高繪制速度,避免重量級視圖的使用;
(3)使用include 標(biāo)簽,將復(fù)雜的布局拆分成幾個小布局,從而更好地管理代碼。
(1)盡量避免使用ScrollView 和ListView 等帶有大量子視圖的控件,會導(dǎo)致卡頓;
(2)ListView 和RecyclerView 在使用時盡量使用ViewHolder,避免重復(fù)創(chuàng)建視圖[4];
(3)使用ConstraintLayout 代替RelativeLayout,這樣可以避免偏移量的計算[5]。
(1)豐富管理員的功能,給予管理員更大的權(quán)限;
(2)進(jìn)一步優(yōu)化研友智能匹配的功能使其更豐富;
(3)優(yōu)化操作,使其更加簡便。
本項(xiàng)目在調(diào)查研究和系統(tǒng)設(shè)計的基礎(chǔ)上,初步實(shí)現(xiàn)了基本功能,有效地滿足了用戶需求,并使考研學(xué)生更加方便地尋找研友,并提供更為全面和實(shí)用的信息,讓使用該系統(tǒng)的用戶能更加深入了解所需的內(nèi)容,在考研中獲得更大的支持,本APP 各功能模塊之間銜接良好,操作方便簡單,但是在一開始測試過程中會出現(xiàn)APP閃退情況,通過檢查控件是否對應(yīng),findViewById 是否初始化,是否對應(yīng)(要和控件的id 對應(yīng)),查看xml和activity 是否對應(yīng),發(fā)現(xiàn)問題所在。