王曉東
摘 要:本文介紹了Android應(yīng)用程序社團(tuán)寶的設(shè)計(jì)方法。社團(tuán)寶為大學(xué)生的校園生活提供便利服務(wù),用戶通過(guò)手機(jī)可以查看社團(tuán)信息、報(bào)名參加活動(dòng)、與好友聊天和管理個(gè)人信息。
關(guān)鍵詞:Android;社團(tuán)寶;設(shè)計(jì)
一、系統(tǒng)設(shè)計(jì)
在每一年的開學(xué)季,高校社團(tuán)都會(huì)開展招新活動(dòng),但是招新方式比較單一,許多入校新生根本不能詳細(xì)了解各個(gè)社團(tuán)及其活動(dòng)。為了方便社團(tuán)展示自己以及新生了解社團(tuán),推出社團(tuán)寶這一應(yīng)用軟件。在開發(fā)一個(gè)應(yīng)用軟件之前,需要對(duì)開發(fā)的目標(biāo)和所實(shí)現(xiàn)的功能進(jìn)行細(xì)致有效的分析,進(jìn)而確定開發(fā)所需要的具體準(zhǔn)備工作。在對(duì)學(xué)生的需求進(jìn)行深入了解,以及與校方相關(guān)人員交流之后,確定社團(tuán)寶應(yīng)該具有的基本功能。
系統(tǒng)分為服務(wù)器端、Android管理端和Android客戶端三個(gè)部分。服務(wù)器端應(yīng)該具有收發(fā)數(shù)據(jù)和操作數(shù)據(jù)庫(kù)的功能,Android管理端應(yīng)該具有社團(tuán)信息管理登錄、社團(tuán)成員信息管理、社團(tuán)管理和社團(tuán)意見反饋等功能,Android客戶端應(yīng)該具有社團(tuán)信息瀏覽、活動(dòng)信息查詢、報(bào)名參加活動(dòng)、與好友聊天和個(gè)人信息管理等功能。
二、服務(wù)器端設(shè)計(jì)
服務(wù)器端利用服務(wù)線程,循環(huán)接收Android客戶端傳送來(lái)的數(shù)據(jù),經(jīng)過(guò)處理后發(fā)送給管理端。這樣做就可以將客戶端、服務(wù)器端和管理端聯(lián)系起來(lái),形成一個(gè)共同協(xié)作的整體。采用Navicat for MySQL數(shù)據(jù)庫(kù)管理數(shù)據(jù),服務(wù)器根據(jù)管理端和Android客戶端發(fā)過(guò)來(lái)的請(qǐng)求調(diào)用適當(dāng)?shù)姆椒?,?zhí)行相應(yīng)的SQL語(yǔ)句來(lái)對(duì)數(shù)據(jù)庫(kù)進(jìn)行操作,保證數(shù)據(jù)的真實(shí)有效。社團(tuán)寶的數(shù)據(jù)庫(kù)一共有16張表,包括活動(dòng)表、活動(dòng)相冊(cè)表、社團(tuán)管理人員表、社團(tuán)表、活動(dòng)人員表等等。以社團(tuán)表community為例,該表有7個(gè)字段,包含社團(tuán)ID、社團(tuán)名稱、社團(tuán)介紹、社團(tuán)口號(hào)、社團(tuán)圖標(biāo)、社團(tuán)照片和社團(tuán)狀態(tài),其中社團(tuán)ID為主鍵。建立該表的SQL語(yǔ)句如下:
CREATE TABLE ‘community’(
‘community_id’ int(10) NOT NULL default ‘0’,
‘community_name’ char(10) default NULL,
‘community_introduce’ char(200) default NULL,
‘community_kouhao’ char(50) default NULL,
‘community_tubiao’ char(15) default NULL,
‘community_picture’ char(10) default NULL,
‘community_stat’ char(2) default NULL,
PRIMARY KEY (‘community_id’)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
社團(tuán)寶中需要向服務(wù)器索取和傳輸大量信息,因此設(shè)計(jì)了服務(wù)線程類ServerThread,它提供管理端與Android客戶端接口,增加系統(tǒng)的可靠性。在服務(wù)線程類中創(chuàng)建連接端口的方法,首先創(chuàng)建一個(gè)綁定端口到端口10006上的ServerSocket對(duì)象,然后打印連接成功的提示信息。創(chuàng)建新的線程并啟動(dòng),接受客戶端請(qǐng)求Socket,成功之后調(diào)用并啟動(dòng)代理線程,對(duì)接收的請(qǐng)求進(jìn)行具體的處理。
三、管理端設(shè)計(jì)
管理端作為一個(gè)管理端口,主要的作用是建立用戶和社團(tuán)的信息與管理機(jī)制,具體的功能有用戶登錄、社團(tuán)管理、意見管理和賬號(hào)管理。以社團(tuán)管理功能的開發(fā)為例,它包括增加社團(tuán)、屏蔽社團(tuán)、修改社團(tuán)信息、解除屏蔽社團(tuán)等子功能。增加社團(tuán)主界面的上部為一個(gè)相片框,下面是幾個(gè)TextView控件,用來(lái)添加相應(yīng)的社團(tuán)信息。調(diào)用Android 原生相冊(cè)的方法,實(shí)現(xiàn)社團(tuán)會(huì)徽的選擇,對(duì)從相冊(cè)中選中的照片進(jìn)行壓縮處理,并且將其從Bitmap數(shù)組轉(zhuǎn)化為byte數(shù)組,用于上傳到服務(wù)器。將界面文本區(qū)內(nèi)的文字提取出來(lái),并且轉(zhuǎn)化為字符串類型,存到mes字符串中,表示新增社團(tuán)的信息。在服務(wù)器端有相應(yīng)的方法解析此字符串,并且插入到數(shù)據(jù)庫(kù)中。在上傳圖片到服務(wù)器中時(shí),需要先將Bitmap圖片轉(zhuǎn)為byte數(shù)組再上傳,在服務(wù)器端又將byte數(shù)組轉(zhuǎn)為Bitmap圖片并保存。相關(guān)代碼如下:
name=shetuaname.getText().toString;//將社團(tuán)名稱轉(zhuǎn)化為字符串類型
mes=name;
…………
mes=mes+“<#>”+kouhao;//將社團(tuán)口號(hào)加入到mes字符串中
…………
NetInfoUtil.zengjiashetuan(mes);//將mes上傳到數(shù)據(jù)庫(kù)中
四、客戶端設(shè)計(jì)
當(dāng)Android客戶端想要獲取數(shù)據(jù)或者更新數(shù)據(jù)庫(kù)信息的時(shí)候,就要與服務(wù)器建立連接。具體做法是首先建立通信,確定Socket的IP地址和端口號(hào),獲得輸入流和輸出流。向服務(wù)器發(fā)送請(qǐng)求,接下來(lái)得到服務(wù)器的反饋信息,最后關(guān)閉打開的連接,返回獲取的信息。相關(guān)代碼如下:
ss=new Socket(“10.16.189.186”,10006);// 確定IP地址和端口號(hào)
din=new DataInputStream(ss.getInputStream());//獲得輸入流
dos=new DataOutputStream(ss.getOutputStream());//獲得輸出流
…………
單擊主界面底部菜單欄的“個(gè)人”,可以切換到個(gè)人界面。該界面實(shí)現(xiàn)了注銷、修改資料和意見反饋等功能,方便用戶管理自己的信息。以修改資料為例,設(shè)置線程,根據(jù)用戶的ID獲取用戶加入的社團(tuán)、用戶的頭像名、用戶的姓名、性別和聯(lián)系方式等信息。根據(jù)用戶的頭像名獲取服務(wù)器中的圖片,最后將所有獲得的信息顯示在指定的位置。在修改個(gè)人信息界面中設(shè)置保存鍵,并為保存鍵添加監(jiān)聽。當(dāng)用戶單擊“保存”后,系統(tǒng)首先判斷用戶所輸入的內(nèi)容是否為空,如果提交的數(shù)據(jù)有空的選項(xiàng),就會(huì)提示用戶。如果數(shù)據(jù)不為空,則調(diào)用相關(guān)線程進(jìn)行處理。
五、結(jié)語(yǔ)
經(jīng)過(guò)系統(tǒng)測(cè)試,社團(tuán)寶軟件能夠?qū)崿F(xiàn)預(yù)期功能,而且容易操作,便于管理。社團(tuán)寶的設(shè)計(jì)較為人性化,用戶經(jīng)過(guò)填寫信息注冊(cè)之后,即可瀏覽相關(guān)信息。社團(tuán)詳情界面介紹了社團(tuán)的相關(guān)信息,方便用戶瀏覽。用戶也可以在活動(dòng)界面瀏覽社團(tuán)所舉辦的活動(dòng)信息,并發(fā)表個(gè)人評(píng)論。社團(tuán)寶中數(shù)據(jù)的狀態(tài)和內(nèi)容可以靈活地被修改,系統(tǒng)管理人員輸入口令之后,即可進(jìn)入管理界面。社團(tuán)寶既能為用戶提供正確健康有效的資訊,又能顯著降低系統(tǒng)管理人員的工作強(qiáng)度,提高了工作效率。
參考文獻(xiàn):
[1] 吳亞峰. Android應(yīng)用案例開發(fā)大全(第4版)[M].北京:人民郵電出版社, 2018.