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