朱建明
摘要:設(shè)計基于android的手機(jī)微博客戶端,通常一個博客系統(tǒng)包括Web服務(wù)器、Web端系統(tǒng)和手機(jī)客戶端系統(tǒng)。手機(jī)微博客戶端使用Eclipse環(huán)境進(jìn)行設(shè)計,使用MySQL數(shù)據(jù)庫,服務(wù)器使用Tomcat7.0。實(shí)現(xiàn)手機(jī)微博的基本功能,如注冊新用戶,發(fā)表微博,關(guān)注好友,收藏微博,查找用戶等。
關(guān)鍵詞:Android;模塊;數(shù)據(jù)庫;微博
中圖分類號:TP311.1 文獻(xiàn)標(biāo)識碼:A 文章編號:1009-3044(2017)36-0067-03
1 背景
1.1 Android簡介
Android是一個包含操作系統(tǒng)、中介架構(gòu)層及應(yīng)用程序所產(chǎn)生出來的軟件堆棧架構(gòu)。由下而上,其核心為嵌入式Linux2.6作業(yè)系統(tǒng),向上搭配Google為Android開發(fā)的類庫及Android運(yùn)行時,再配合應(yīng)用程序架構(gòu),來開發(fā)各種不同的應(yīng)用程序。目前,Android手機(jī)占全球手機(jī)市場份額的90%左右。
1.2 手機(jī)微博介紹
手機(jī)微博是智能手機(jī)繼即時通信之外是又一個吸引人的應(yīng)用。手機(jī)隨時隨地的拍攝功能和隨時隨地的聯(lián)網(wǎng)功能,是用手機(jī)的微博較之計算機(jī)更有優(yōu)勢。運(yùn)行在手機(jī)上的微博是客戶端的應(yīng)用程序,中國幾個著名的互聯(lián)網(wǎng)綜合服務(wù)提供商如騰訊、新浪、網(wǎng)易等公司都向用戶提供這一應(yīng)用的下載。移動互聯(lián)網(wǎng)技術(shù)發(fā)展迅猛,風(fēng)靡全球的博客也從計算機(jī)移動便攜設(shè)備發(fā)展,趨于微型化和簡易化。
1.3 設(shè)計目標(biāo)
實(shí)現(xiàn)手機(jī)微博的基本功能,如注冊新用戶,發(fā)表微博,關(guān)注好友,收藏微博,查找用戶等。在手機(jī)微博客戶端程序開發(fā)完成后,經(jīng)過打包簽名,可運(yùn)行在Andriod2.1及其以上版本。
1.4 開發(fā)環(huán)境和目標(biāo)平臺
1) 開發(fā)環(huán)境
? Java開發(fā)工具,JDK1.7。
? Web應(yīng)用服務(wù)器,Tomcat7.0。
? 數(shù)據(jù)庫,服務(wù)器端數(shù)據(jù)庫MySQL Sever5.1和客戶端數(shù)據(jù)庫MySQL WorkBench6.0。
? 集成開發(fā)環(huán)境,Eclipse IDE for Java EE Develops。
? Android SDK 及其Eclipse開發(fā)插件ADT。
2) 目標(biāo)平臺
手機(jī)微博客戶端程序開發(fā)完成后,經(jīng)過打包簽名,可運(yùn)行在目前市場上所有的Android手機(jī)上。
2 功能分析
手機(jī)微博客戶端主要為用戶提供一個信息發(fā)布和共享的平臺,其功能與Web瀏覽器端系統(tǒng)功能差不多,其總體功能框架如圖1所示。
各模塊功能如下:
1) 注冊,為初次使用本系統(tǒng)的用戶提供注冊服務(wù)。該模塊連接到服務(wù)器上,為用戶在服務(wù)器上申請一個微博用戶號,上傳頭像,記錄登錄密碼、注冊時間等信息。
2) 登錄,為已注冊的用戶使用本系統(tǒng)提供登錄窗口。這是進(jìn)入手機(jī)客戶端的第一個界面,在登錄窗口中提供“登錄”、“注冊”兩個按鈕,分別進(jìn)入兩種不同的狀態(tài)。
3) 個人中心,從登錄(或注冊)窗口進(jìn)入后就是個人中心。個人中心包含微博客戶端系統(tǒng)可以使用的功能和服務(wù),它以選項卡的形式呈現(xiàn)在用戶面前,默認(rèn)情況下顯示微博的首頁。
4) 首頁,以列表的形式將本用戶發(fā)送的微博以及本用戶所關(guān)注的微博全部顯示出來,并可以對列表進(jìn)行分頁統(tǒng)計,可以查看各條微博的詳細(xì)信息以及對各條微博進(jìn)行轉(zhuǎn)發(fā),評論和收藏。
5) 發(fā)微博,用戶在此窗口中可以編輯和發(fā)送微博內(nèi)容,微博文字字符數(shù)在150字以內(nèi)。系統(tǒng)可以實(shí)時統(tǒng)計可輸入的字符個數(shù)。
6) 個人信息,用戶在此窗口查看注冊時錄入的主要信息,以及本用戶已發(fā)表博客數(shù)目,關(guān)注其他用戶數(shù)及其關(guān)注對象,自己的即粉絲數(shù)及粉絲名等詳細(xì)信息。
7) 收藏,管理用戶收藏的博客。在收藏窗口中,以列表的方式列出被收藏的所有博客,并可以刪除收藏的博客。
8) 查找,可以模糊搜索其他用戶的昵稱,并且可以將搜索帶的用戶添加為自己的好友,即關(guān)注該用戶。
數(shù)據(jù)庫設(shè)計
3.1 數(shù)據(jù)庫表結(jié)構(gòu)
本系統(tǒng)數(shù)據(jù)庫名為microblog,總共包括8個部分,分別為管理員信息表,用戶信息表,微博信息表,收藏信息表,發(fā)表評論信息表,回復(fù)信息表,轉(zhuǎn)發(fā)信息表和關(guān)注信息表。管理員信息表、微博信息表結(jié)構(gòu)如表1、表2所示。其他數(shù)據(jù)表結(jié)構(gòu)此處略。
3.2 MySQL安裝配置和微博系統(tǒng)的數(shù)據(jù)庫創(chuàng)建
MySQL數(shù)據(jù)庫環(huán)境搭建分為MySQL服務(wù)器安裝、服務(wù)器配置和MySQL專用的數(shù)據(jù)庫設(shè)計工具WorkBench的安裝三部分。
1) 安裝MySQL服務(wù)器
下載并運(yùn)行MySQL安裝文件MySQL-essential-5.1-win32.exe,根據(jù)提示完成安裝,安裝過程使用典型安裝。
2) MySQL服務(wù)器配置步驟
在完成MySQL服務(wù)器安裝之后,要根據(jù)應(yīng)用的需要對其進(jìn)行適當(dāng)?shù)呐渲?。啟動配置向?qū)Ш螅鶕?jù)提示完成配置,需要注意的是服務(wù)器類型需選擇網(wǎng)絡(luò)服務(wù)器中、在設(shè)置字符集時選擇UTF-8,使程序運(yùn)行時能夠正確的顯示漢字、在MySQL的安全選項中需設(shè)置密碼為root。
3) 安裝數(shù)據(jù)庫設(shè)計工具M(jìn)ySQL WorkBench
安裝MySQL WorkBench只需運(yùn)行MySQL-WorkBench-gpl-6.0-win32.exe程序,然后按照安裝向?qū)е鸩竭M(jìn)行即可。
4) 導(dǎo)入數(shù)據(jù)
在本設(shè)計中,通過SQL腳本文件進(jìn)行生成數(shù)據(jù)庫。在MySQL WorkBench中,利用SQL腳本創(chuàng)建數(shù)據(jù)庫表時,其腳本文件名及其存放路徑不能包括中文名。
在mobile-blog.SQL腳本文件中,包括created database和create table命令創(chuàng)建數(shù)據(jù)庫表,也包括insert命令向數(shù)據(jù)表中插入部分?jǐn)?shù)據(jù)。
3.3 web應(yīng)用服務(wù)器的配置和部署
將開發(fā)機(jī)作為web應(yīng)用服務(wù)器,在本機(jī)上安裝Tomcat服務(wù)器。
1) Tomcat設(shè)置
在Eclipse中創(chuàng)建Tomcat服務(wù)器,在Eclipse中配置Tomcat并進(jìn)行相關(guān)屬性的設(shè)置,啟動Tomcat服務(wù)器。
2) 數(shù)據(jù)源配置
在Tomcat安裝文件夾的lib子文件夾下拷入jar包MySQL-connector-java-5.1.13-bin.jar即可。
3) web應(yīng)用程序部署
將MobileBlog.war復(fù)制到Tomcat安裝文件夾的webapps文件夾下。War文件是java歸檔文件,用于封裝web程序模塊。
4 設(shè)計及編碼實(shí)現(xiàn)
4.1 用戶界面設(shè)計及資源準(zhǔn)備
首先,根據(jù)本項目的功能規(guī)劃出需要的用戶界面數(shù)、界面完成的功能、相互的跳轉(zhuǎn)關(guān)系,對整個系統(tǒng)有個了解。其次,對每一個用戶界面進(jìn)行初步設(shè)計:畫出草圖,從而得到每個界面所需要的控件、顏色、圖片等資源。最后,準(zhǔn)備相關(guān)的文字、圖片、顏色、音樂等資源。
4.2 應(yīng)用項目的目錄結(jié)構(gòu)
在本系統(tǒng)中有4個包:在com.sample.Activity包中是項目的全部Activity的類代碼定義,在com.sample.bo包中是項目中與業(yè)務(wù)有關(guān)的對象存取方法類定義,在com.sample.common包中是項目里面公共的常量和工具類定義,com.sample.connection包中是項目與網(wǎng)絡(luò)進(jìn)行通信連接的類定義。
4.3 功能實(shí)現(xiàn)分析
4.3.1 功能模塊的實(shí)現(xiàn)類簡介
1) 登錄模塊由LoginActivity類實(shí)現(xiàn),該Activity是手機(jī)微博運(yùn)行后首先被啟動的Activity。
2) 注冊模塊由RegisterActivity類實(shí)現(xiàn),該Activity從LoginActivity中啟動。
3) 個人中心模塊由MainActivity類實(shí)現(xiàn)。該Activity從LoginActivity中啟動,他繼承自TabActivity類,將手機(jī)微博的各主要功能以選項卡的形式顯示在屏幕上,并對選項卡進(jìn)行邏輯控制。
4) 手機(jī)客戶端首頁模塊由HomepageActivity和MicroblogActivity類實(shí)現(xiàn),其中,類顯示若干博客的列表,并可以對列表進(jìn)行分頁,這些微博包括當(dāng)前用戶發(fā)布或轉(zhuǎn)發(fā)的所有博客及當(dāng)前用戶所關(guān)注的用戶發(fā)布或轉(zhuǎn)發(fā)的所有博客。單擊任一博客列表項即可打開該博客詳細(xì)信息。MicroblogActivity類顯示博客的詳細(xì)信息,并可對該博客進(jìn)行轉(zhuǎn)發(fā)、評論和收藏。
5) 發(fā)微博模塊由NewblogActivity類實(shí)現(xiàn)。該Activity中用戶可以寫博客,本客戶端允許用戶寫150個字符的博客內(nèi)容。
6) 個人信息模塊由PersoninfoActivity、UserblogActivity和UsercommentsActivity類實(shí)現(xiàn)。其中PersoninfoActivity類顯示當(dāng)前用戶的主要信息,包括昵稱、年齡、最后的登陸時間和發(fā)表的博客數(shù)、關(guān)注的用戶數(shù)和被其他用戶關(guān)注即粉絲數(shù)信息。單機(jī)博客數(shù),可進(jìn)入UserblogActivity;單機(jī)關(guān)注數(shù)和粉絲數(shù),可進(jìn)入UsercommentsActivity。
7) 收藏管理模塊由MyfavorateActivity類實(shí)現(xiàn)。該Activity以列表的方式顯示被當(dāng)前用戶所關(guān)注的所有用戶列表,當(dāng)長按某關(guān)注項時,會出現(xiàn)刪除此關(guān)注項的對話框。
8) 查找模塊由SearchActivity類實(shí)現(xiàn)。在該Activity的編輯框內(nèi)輸入要查找的用戶名或用戶名的前幾個字符,單擊“查找”圖標(biāo),即可在網(wǎng)絡(luò)服務(wù)器中查找到所有以輸入字符開頭的用戶名。當(dāng)在某條用戶上長按時,會出現(xiàn)關(guān)注該用戶的對話框。
4.3.2 功能模塊與服務(wù)器的通信實(shí)現(xiàn)
本手機(jī)客戶端程序與服務(wù)器數(shù)據(jù)庫的數(shù)據(jù)通信是通過借口,采用HTTP請求獲取網(wǎng)絡(luò)服務(wù)器資源。通信接口以UTF-8進(jìn)行編碼,使用post請求方式,數(shù)據(jù)返回值采用普通字符串或JSON格式進(jìn)行封裝。表4是手機(jī)客戶端登錄模塊的接口協(xié)議說明。其他應(yīng)用模塊的接口協(xié)議類似,此處略。
4.4 部分關(guān)鍵代碼
略。
5 運(yùn)行測試
開發(fā)完應(yīng)用程序后需要對其進(jìn)行測試運(yùn)行,通常實(shí)在模擬器中進(jìn)行測試,待測試通過之后在簽名打包,發(fā)布到手機(jī)中運(yùn)行。在模擬器中運(yùn)行時,將本機(jī)IP地址和constants.java文件中ServerADDRESS常量所指的IP地址一致,與String.XML文件中ServerADDRESS的IP地址描述一致。
1) 用戶登錄
可以實(shí)現(xiàn)已有用戶登錄,并且在第二次登陸時不用再次輸入用戶名和密碼,圖略。
2) 注冊新用戶
可以實(shí)現(xiàn)新用戶的注冊,將信息寫入數(shù)據(jù)庫。如(圖2)
3) 首頁界面
首頁以列表方式顯示本用戶所寫的博客或轉(zhuǎn)發(fā)的微博。如(圖3)
4) 發(fā)表博客
在此界面中可以寫150字符的微博內(nèi)容,可以及時的提醒用戶剩余的字符數(shù),圖略。
5) 個人信息
個人信息頁可以查看當(dāng)前用戶的注冊信息,圖略。
6) 收藏界面
進(jìn)入收藏頁,可以查看當(dāng)前用戶所收藏的用戶列表,圖略。
7) 查找用戶
在編輯框內(nèi)輸入需要查詢的用戶或者關(guān)鍵詞,可以在服務(wù)器中查詢到用戶,圖略。
6 結(jié)束語
系統(tǒng)實(shí)現(xiàn)了手機(jī)微博的基本功能,如注冊新用戶,發(fā)表微博,關(guān)注好友,收藏微博,查找用戶等。后續(xù)還需要增加私微、轉(zhuǎn)發(fā)、評論話題討論等功能。
參考文獻(xiàn):
[1] 張東玲, 楊寧. Android應(yīng)用開發(fā)教程[M]. 北京: 清華大學(xué)出版社, 2013.
[2] 王向輝, 張國印, 沈潔. Android應(yīng)用程序開發(fā)[M] .3版. 北京: 清華大學(xué)出版社, 2016.
[3] 李剛. 瘋狂Android講義[M]. 3版.北京: 電子工業(yè)出版社, 2017.
[4] 王治國. 精通Android應(yīng)用開發(fā)[M]. 北京: 清華大學(xué)出版社, 2014.
[5] 騰訊SNG專項測試團(tuán)隊. Android移動性能實(shí)戰(zhàn)[M]. 北京: 電子工業(yè)出版社, 2017.