劉強 吳文高 熊星星
摘 要: 微博是伴隨著移動互聯(lián)網(wǎng)和智能手機的廣泛普及所產(chǎn)生的一個新穎的社交媒體,成為大眾日常生活的一部分。文章提出一個基于Android移動終端的微博客戶端系統(tǒng)設計方案,采用OAuth認證,與微博服務端連接,實現(xiàn)以微博為中心的多應用機制,包含微博發(fā)布、瀏覽、轉發(fā)、評論、收藏等全面的個性化功能。
關鍵詞: 微博客戶端; Android; OAuth認證; 微博服務端
中圖分類號:TP316.8 文獻標志碼:A 文章編號:1006-8228(2015)05-50-02
Abstract: Micro-blog is a new social media with a wide popularization of mobile Internet and intelligent mobile phone products has become a part of people's daily life. This paper presents a scheme of mobile micro-blog client terminal system based on Android, using OAuth authentication, connected with the micro-blog server, realizes the multi application mechanism to micro-blog as the center, contains micro-blog release, browse, comment, forwarding, collections and other personalized comprehensive functions, and has the realistic meaning.
Key words: MicroBlog clien; Android; OAuth authentication; microblog server
0 引言
隨著移動互聯(lián)網(wǎng)和Android智能手機的普及,越來越多的人喜歡使用移動終端來查看自己的微博,朋友圈等,使其成為日常生活的一部分。因此,設計一款輕便的、可靠的、個性化的微博客戶端系統(tǒng),即以微博為中心,實現(xiàn)微博發(fā)布、瀏覽、轉發(fā)、評論、收藏等全面的功能,顯得很必要。
1 基于Android的微博客戶端系統(tǒng)總體設計
微博作為一種社交媒體,使用它的用戶主要目的在于借助微博快速發(fā)布自己最新動態(tài)或者其他消息。為了使Android智能手機用戶能夠方便查閱自己的微博,實現(xiàn)以微博為中心的多應用機制,遵循軟件工程的開發(fā)方式,在調研的基礎上,將所設計的基于Android的微博客戶端系統(tǒng),主要的功能模塊劃分為以下幾個方面。
⑴ 用戶登錄模塊
建立以手機作為終端登錄微博系統(tǒng)的首界面。進入微博系統(tǒng)時,用戶需要輸入用戶名和密碼,檢查用戶名及其密碼的有效性。登錄有效則存入手機數(shù)據(jù)庫,并進入微博系統(tǒng),否則彈出錯誤信息。在手機終端只需要首次輸入用戶名和密碼就可以了,以后直接從數(shù)據(jù)庫調用進入微博系統(tǒng)[1]。
⑵ 微博功能模塊
用戶登錄之后進入個人微博主頁面,設置為五個部分:微博發(fā)表、評論、轉發(fā)、收藏和分享。
微博發(fā)表:發(fā)表屬于自己的微博。
微博評論:對注冊用戶所關注的用戶進行評論以及回復。
微博轉發(fā):對注冊用戶關注的用戶所發(fā)的微博進行轉發(fā),從而變?yōu)樽约旱奈⒉?/p>
微博收藏:對注冊用戶關注的用戶所發(fā)的微博進行收藏,從而使所收藏的微博進入注冊用戶的收藏夾中。
微博分享:對注冊用戶關注的用戶所發(fā)的微博進行分享,可以分享到主流的網(wǎng)站,如qq空間、新浪微博、天涯論壇等等。
⑶ 好友粉絲模塊
注冊用戶登錄進入個人主頁面后,尋找自己好友的場所,其內容就是當注冊用戶在其他用戶中點擊了“加粉”之后,該用戶就已經(jīng)成為了注冊用戶的粉絲。同樣的規(guī)則,如果其他用戶對注冊用戶點擊了“加粉”,那么注冊用戶也成為了其他用戶的粉絲。
⑷ 搜索功能模塊
用戶登錄以后,主要針對以微博和用戶這兩類對象的查找。在“發(fā)現(xiàn)”界面,輸入所要查找的微博(用戶)的關鍵字,進行微博(用戶)的查找。
⑸ 消息模塊
在用戶登錄后,提供的相關消息由@我的、評論我的、粉絲三部分構成,查看自己或者是粉絲的基本信息,如用戶頭像、用戶名、所在地、用戶網(wǎng)站、用戶宣言、用戶關注的人、關注用戶的人、該用戶的所有微博、該用戶收藏的所有微博等。
⑹ 微吧
類似貼吧,用戶可關注自己感興趣的微吧,在相關微吧內發(fā)帖子、評論和點贊相關帖子。
⑺ 會議討論組
類似QQ的群功能,是專為會議或臨時討論而建立,基于即時聊天,無需加入好友信息[2]。在舉行會議時,每個人點擊會議按鈕,接收信息,系統(tǒng)自動將一定范圍內的人加入到一個臨時討論組中,在該討論組中,可以上傳文件,發(fā)布文件,以供參加會議的人員瀏覽,也可以進行相關話題的討論。
基于Android的微博客戶端系統(tǒng)是通過手機客戶端與微博服務器進行交互,進行請求和回傳數(shù)據(jù),是一種典型的客戶機/服務器方式,其業(yè)務流程設計如圖1所示。
2 微博客戶端數(shù)據(jù)的存儲與管理
微博客戶端系統(tǒng)的數(shù)據(jù)存儲與管理采用Sqlite數(shù)據(jù)庫。由于客戶端系統(tǒng)中實際涉及到的信息是通過和服務器交互得到的,所以設計一個表User,它所存儲的數(shù)據(jù)是放在Android終端的Sqlite數(shù)據(jù)庫中,用于存儲用戶登錄時所需要的信息及OAuth認證通過后所需的一些參數(shù)信息。
為了確保用戶個人信息的保密性,在手機客戶端與服務器進行用戶個人數(shù)據(jù)傳遞之前,使用OAuth協(xié)議對第三方開發(fā)軟件屏蔽用戶的賬號和密碼信息,只有在獲得用戶許可情況下,客戶端才能從服務器下載和向服務器上傳用戶的微博數(shù)據(jù)[3]。顯示由微博服務器傳回的數(shù)據(jù)時,使用JSON對其進行解析處理。在顯示數(shù)據(jù)時,恰當?shù)氖褂眠m配器模式,可以將顯示界面設計的更加友好。
3 基于Android的微博客戶端系統(tǒng)特色
在實現(xiàn)微博基本功能的基礎上,著重優(yōu)化系統(tǒng)的網(wǎng)絡訪問速度和節(jié)約網(wǎng)絡流量,主要特色體現(xiàn)在以下四個方面。
⑴ Android數(shù)據(jù)存儲技術,將已瀏覽數(shù)據(jù)保存到數(shù)據(jù)庫中,下次可以在無網(wǎng)絡的情況下瀏覽數(shù)據(jù),這樣可以提高軟件的加載速度和節(jié)省網(wǎng)絡流量[4]。通過使用Android自帶的Sqlite數(shù)據(jù)庫,來保存微博信息。例如,個人的信息、基本的評論和回復的記錄數(shù)據(jù),以及聽眾和自己關注的人等信息,這些信息均作為緩存數(shù)據(jù)處理,避免每次都要從服務器上獲取數(shù)據(jù),加大網(wǎng)絡流量的開銷,對于不經(jīng)常變化的數(shù)據(jù),保存在本地即可,用到時直接從本地加載顯示。采用開放的OAuth協(xié)議為用戶資源的授權提供一個安全的、開放而又簡易的標準。
⑵ 采用圖片緩存技術(圖片異步加載)。將從網(wǎng)絡上下載的圖片保存到手機內存上,下次再獲取相同圖片時,先從內存卡上查找對應圖片,如果有就不加載網(wǎng)絡圖片,如果沒有則加載網(wǎng)絡圖片,并保存到手機上。對于從網(wǎng)上下載到手機終端的圖片,建立一個線程池,存放線程,在需要加載圖片時,啟動一個線程,訪問網(wǎng)絡,獲取相應的圖片[5]。隨后再轉交給UI線程刷新界面顯示圖片。
⑶ 數(shù)據(jù)模型的封裝。對于從網(wǎng)絡上獲取的json數(shù)據(jù)進行解析處理,抽離出不同的實體模型,方便以面向對象的方式開發(fā),比較好維護。
⑷ 任務分離。主線程(UI線程)主要是負責控制UI界面的顯示、更新和控件交互。在Android程序創(chuàng)建之初,一個Process呈現(xiàn)的是單線程模型,所有的任務都在一個線程中運行。因此,UI線程所執(zhí)行的每一個函數(shù),所花費的時間都應該是越短越好。而其他比較費時的工作(訪問網(wǎng)絡,下載數(shù)據(jù),查詢數(shù)據(jù)庫等)交由子線程去執(zhí)行,以免阻塞主線程,即UI線程只負責刷新界面。
4 結束語
本文以微博的多應用需求為出發(fā)點,基于Android移動終端設計微博客戶端解決方案,采用Sqlite數(shù)據(jù)庫存儲、OAuth認證等數(shù)據(jù)管理技術,實現(xiàn)與微博服務端數(shù)據(jù)庫連接,驗證用戶名和密碼的一致性和正確性,強化了微博應用的安全性設計。采用圖片緩存、json數(shù)據(jù)模型封裝、線程式任務分離等技術,實現(xiàn)Android移動終端的異步加載和離線瀏覽功能,以提升微博客戶端的網(wǎng)絡訪問速度和減少網(wǎng)絡流量。在實現(xiàn)微博發(fā)布、瀏覽、轉發(fā)、評論、收藏等基本功能的基礎上,實現(xiàn)了微吧和會議討論組等個性化功能,該設計應有廣泛的應用前景。對于微博客戶端的同步功能,即同一個微博賬號在不同終端(Android、PC終端)登錄后,其微博歷史信息同步遷移,便于微博信息的共享和查閱,這個同步功能還有待于后續(xù)進一步設計和實現(xiàn)。
參考文獻:
[1] 王世江,佘志龍,陳昱勛等.Google Android SDK開發(fā)范例大全[M].人民郵電出版社,2011.
[2] 趙宏偉.Android NDK開發(fā)環(huán)境實現(xiàn)與應用[J].電腦知識與技術,2010.35:3261-3263
[3] 彭艷,楊歐.Android平臺的數(shù)據(jù)存儲技術[J].計算機系統(tǒng)應用,2012.5:192-194
[4] 白文江.基于Android平臺的移動應用開發(fā)研究[J].太原大學學報,2011.3:46-48
[5] 李楊,馮剛,李亮.基于Android的多媒體應用開發(fā)與研究[J]. 計算機與現(xiàn)代化,2011.4:92-93