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