趙海龍 張旭
摘要:本項(xiàng)目采用基于Android開發(fā),設(shè)計(jì)和實(shí)現(xiàn)了一款基于Android平臺的社交軟件,以實(shí)現(xiàn)同校大學(xué)生之間互幫互助,加強(qiáng)同校大學(xué)生之間互相交流,獲取大學(xué)生相關(guān)信息等功能。為同校大學(xué)生提供一個可以交友、互助、獲取信息的平臺。
關(guān)鍵詞:Android系統(tǒng);社交軟件;校園生活
中圖分類號:TP391 文獻(xiàn)標(biāo)識碼:A 文章編號:1009-3044(2018)24-0054-02
Abstract: This project uses Android-based development, design and implementation of a social software based on the Android platform to achieve the mutual help between college students, strengthen mutual exchange among college students, access to college students related information and other functions. Provide a platform for college students to make friends, help each other, and obtain information.
Key words: Android System;Social Software;School Life
1 引言
近幾年來,隨著中國移動網(wǎng)民規(guī)模不斷增長,手機(jī)APP軟件早已變成人們?nèi)粘I顚W(xué)習(xí)中必不可少的移動社交工具。根據(jù)中國互聯(lián)網(wǎng)絡(luò)信息中心(CNNIC)發(fā)布的最新《中國社交應(yīng)用用戶行為研究報(bào)告》[1]顯示,即時通信應(yīng)用已經(jīng)成為第一大移動應(yīng)用。伴隨著人們不斷改變的社交方式,各種不同類型的社交APP軟件快速發(fā)展。然而,目前手機(jī)APP軟件市場上的社交APP軟件針對同校大學(xué)生之間的少之又少。
目前,大學(xué)生獲取同校同學(xué)信息的方式主要有百度貼吧、QQ群、微信群等,并沒有一款能夠滿足同校大學(xué)生相互交流、相互幫助、及時獲取信息的應(yīng)用軟件。以上三種方式,往往使同校同學(xué)之間獲取信息較慢,無法及時獲取第一手信息;而且,以上方式信息分布廣,大學(xué)生往往只通過其中一種或兩種方式獲取信息,少有的同學(xué)能通過此三種方式,因此,同學(xué)們獲取的信息常常因不全面而浪費(fèi)時間。此三種方式也無法很好地增強(qiáng)同校同學(xué)之間的感情。
針對此種情況,設(shè)計(jì)及實(shí)現(xiàn)一種能夠整合同校大學(xué)生之間獲取信息方式統(tǒng)一綜合起來的APP軟件,不僅可以加強(qiáng)信息的流通速度,使同學(xué)們快速獲取信息,還可以加強(qiáng)同校同學(xué)之間的感情交流。因而,本項(xiàng)目的APP軟件旨將學(xué)校所涉及的和學(xué)生發(fā)布的信息整合到一起,方便同校同學(xué)及時獲取信息。
2 關(guān)鍵技術(shù)
2.1 Android系統(tǒng)
當(dāng)下流行的Android系統(tǒng),相比ios,是一個開放的平臺,可以為移動設(shè)備提供包含操作系統(tǒng)、中間件和應(yīng)用程序的軟件疊層架構(gòu),受到眾多運(yùn)營商和設(shè)備商的全面支持,可以根據(jù)用戶需求進(jìn)行高度定制化的二次開發(fā)。隨著Android移動設(shè)備的配置增強(qiáng)和系統(tǒng)優(yōu)化,操作運(yùn)行流暢,同時價格逐漸降低,用戶普及率日益提高,已經(jīng)成為主流的移動操作系統(tǒng)[2-3]。Android手機(jī)的普及,也讓Android系統(tǒng)得到了進(jìn)一步的推進(jìn),Android市場的擴(kuò)大,各種Android應(yīng)用也層出不窮。2008年9月23日Android1.0發(fā)布,一直到現(xiàn)在最新發(fā)布的版本為Android4.4.2-KitKat。
2.2 SQLlite數(shù)據(jù)庫技術(shù)
SQLite是一款輕型的數(shù)據(jù)庫。SQLite的設(shè)計(jì)目標(biāo)是嵌入式的,而且現(xiàn)在已經(jīng)在很多的嵌入式產(chǎn)品中使用[2]。因?yàn)镾QLite在嵌入式設(shè)備中只需要占用幾百KB的內(nèi)存空間就可以了,所以它所占用的資源很少。SQLite基本上可以支持所有常見的操作系統(tǒng),并且能夠跟C#、PHP、Tcl、C++、JAVA等很多種語言相結(jié)合。相對于MySQL、PostgreSQl、SQL server這些數(shù)據(jù)庫,SQLite的處理速度要遠(yuǎn)高于其他數(shù)據(jù)庫。由于占用資源少、零管理成本和良好的性能,SQLite作為嵌入式數(shù)據(jù)庫更易于使用,有利于加快程序的開發(fā),且對于開發(fā)小型應(yīng)用程序至關(guān)重要。
3 系統(tǒng)實(shí)現(xiàn)
3.1 系統(tǒng)總體框架
通過系統(tǒng)分析和需求分析,該系統(tǒng)設(shè)計(jì)并實(shí)現(xiàn)了登錄注冊管理、聊天功能、聯(lián)系人、群聊功能、發(fā)帖功能以及服務(wù)器的搭建。
3.2 登錄注冊管理
用戶首次使用需選擇注冊或是登錄。用戶注冊填寫手機(jī)號進(jìn)行短信驗(yàn)證碼注冊。注冊時登錄的密碼、用戶手機(jī)號等必填項(xiàng),用戶可選填性別、家鄉(xiāng)和學(xué)校等個人信息。系統(tǒng)會自動在數(shù)據(jù)庫里進(jìn)行查找該手機(jī)號碼,若未查找到該手機(jī)號,即注冊成功,同時在數(shù)據(jù)庫里新增該用戶注冊信息[4];若能查找到該手機(jī)號,則新增失敗注冊失敗。
用戶登錄時,用戶需填寫手機(jī)號碼以及相應(yīng)的登錄密碼,點(diǎn)擊“登錄”按鈕,系統(tǒng)會自動查詢用戶手機(jī)號和相應(yīng)的登錄密碼是否存在數(shù)據(jù)庫的數(shù)據(jù)里,如果查找成功即登錄成功進(jìn)入首頁;若是查找失敗,則顯示“用戶手機(jī)號或密碼錯誤”。用戶需重新輸入正確的手機(jī)號以及相應(yīng)的登錄密碼。
用戶在登錄軟件時若忘記了登錄密碼,則可點(diǎn)擊頁面下方的“忘記密碼”轉(zhuǎn)跳到重置密碼頁面[5],用戶使用注冊手機(jī)號獲取驗(yàn)證碼進(jìn)行重置密碼,重置密碼時需兩次輸入同一密碼。密碼重置成功后返回登錄頁面重新登錄。
3.3 用戶系統(tǒng)實(shí)現(xiàn)
用戶在與好友或群聊時,聊天內(nèi)容可以是文字、表情以及語音。聊天時用戶還可以進(jìn)行語音電話、發(fā)送文件等操作,運(yùn)行效果如圖1所示:
3.4 好友功能
用戶可搜索已添加的好友和已加入的群聊,還可搜索并申請?zhí)砑雍糜鸦蛏暾執(zhí)砑雍糜?。搜索好友時,可按好友的名字拼音順序進(jìn)行排序,用戶可根據(jù)該順序進(jìn)行選擇要聊天的對象,如圖2。點(diǎn)擊右上角加好可進(jìn)行查找添加好友,如圖3。用戶可在申請與通知處查看添加好友和申請。
3.5 群聊功能
群聊功能為多用戶聊天。用戶可根據(jù)自身喜好加入或創(chuàng)建群聊,用戶可邀請好友進(jìn)行群聊[6]。用戶群聊的聊天界面同用戶與好友聊天頁面一樣,可進(jìn)行文件以及位置等發(fā)送。
在此功能模塊開發(fā)時使用了相關(guān)SDK,大大加快了開發(fā)速度。
使用group.getMembers ()方法來獲取群成員信息,調(diào)用blockGroupMessage()方法進(jìn)行對群聊的消息屏蔽等,如圖4。
調(diào)用createPublicGroup ()創(chuàng)建群聊,新建群聊時,提填寫群名稱,可選填群簡介,選擇公開情況等設(shè)置,如圖5。
3.7 發(fā)帖功能
實(shí)現(xiàn)發(fā)帖功能是用的PullToRefreshView,PullToRefreshView是第三方類庫,其優(yōu)點(diǎn)是自動補(bǔ)全和實(shí)現(xiàn)refresh方法,只需修改部分即可。
用戶通過點(diǎn)擊社區(qū)頁面的按鈕進(jìn)入朋友圈,通過點(diǎn)擊右上相機(jī)按鈕進(jìn)入發(fā)帖頁面,頁面提供設(shè)置懸賞金按鈕[7],輸入需求或信息后,點(diǎn)擊發(fā)送按鈕即可發(fā)送帖子到服務(wù)器,隨后再刷新朋友圈。如圖6。
3.8 服務(wù)器搭建
服務(wù)器搭建,使用habernate和spring框架。
容器搭建需要創(chuàng)建相應(yīng)的servlet以實(shí)現(xiàn)客戶端的不同請求方式??蛻舳送ㄟ^發(fā)送請求的url,來確定不同需求。
而服務(wù)器端通過@WebServlet("/RegisterServlet")來區(qū)分不同的servlet,相應(yīng)需求后,通過doget或者dopost方法處理數(shù)據(jù),最后通過PrintWriter pw = response.getWriter();pw.print(bool);方法將數(shù)據(jù)傳遞回服務(wù)器,服務(wù)器端數(shù)據(jù)庫采用mysql[8-9]。
數(shù)據(jù)庫優(yōu)化可以防止以后遇到更換數(shù)據(jù)庫需要修改代碼等問題,所以服務(wù)器并沒有直接將數(shù)據(jù)庫的驅(qū)動信息字符串寫入代碼中,而是從配置文件中讀取,這樣作為以后更換數(shù)據(jù)庫或修改代碼增加了方便[10]。防止以后遇到更換數(shù)據(jù)庫需要修改代碼等問題,所以服務(wù)器并沒有直接將數(shù)據(jù)庫的字符串、用戶名、密碼、驅(qū)動字符串寫入代碼中,而是從配置文件中讀取,這樣作為以后更換數(shù)據(jù)庫或修改代碼增加了方便。
4 結(jié)束語
校園信息共享APP應(yīng)用MySQL、Java EE等技術(shù),實(shí)現(xiàn)了校園APP的用戶管理功能,用戶通過注冊登錄后使用校園APP;實(shí)現(xiàn)了發(fā)帖功能,整合了校園內(nèi)優(yōu)質(zhì)的學(xué)生資源,讓學(xué)生給學(xué)生送快遞,滿足大部分人需求的同時,也讓學(xué)生的閑暇精力得到充分的利用,實(shí)現(xiàn)了點(diǎn)贊、收藏及用戶評價等功能。
在設(shè)計(jì)與研發(fā)校園信息共享APP的過程中,發(fā)現(xiàn)還存在一些問題。功能也比較簡單,距離真正商用還有一定的差距,
參考文獻(xiàn):
[1] 趙亮,張維.基于Android技術(shù)的界面設(shè)計(jì)與研究[D].徐州:徐州建筑職業(yè)技術(shù)學(xué)院,2001.
[2] 陳璟,陳平華,李文亮. Android內(nèi)核分析[M].現(xiàn)代計(jì)算機(jī):專業(yè)版,2009(11):112-115.
[3] 韓超. Android經(jīng)典應(yīng)用程序開發(fā)[J].人力資源出版社,2011:5-18.
[4] 吳亞峰,索依娜.Android核心技術(shù)與實(shí)例講解[M].北京:電子業(yè)出版社,2010.
[5] Bruce Eckel .Thinking in java(java 編程思想)[M].4版.北京:機(jī)械工業(yè)出版社,2011.
[6] 王珊,陳紅.數(shù)據(jù)庫系統(tǒng)原理教程[M].北京:清華大學(xué)出版社,2004
[7] 林城. Android 2.3 應(yīng)用開發(fā)實(shí)戰(zhàn)[J].北京:機(jī)械工業(yè)出版社,2011:17-321.
[8] 卞慧敏.淺議Java網(wǎng)絡(luò)聊天工具設(shè)計(jì)[J].科技展望,2015,36:120.
[9] 熊剛.基于.Android的智能手機(jī)的設(shè)計(jì)與實(shí)現(xiàn)[D].武漢:武漢理工大學(xué),2010
[10] RaghavSood. Pro Android AugmentedReality[M].California:Apress,2012:27-28.
【通聯(lián)編輯:唐一東】