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