版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
1、基于android的微博客戶端軟件設(shè)計 摘要本系統(tǒng)基于eclipse下的android移動開發(fā)平臺,使用java語言開發(fā),能夠使系統(tǒng)具有良好的平臺移植性和可擴展性。新浪微博android sdk為第三方微博應(yīng)用提供了文檔易用的微博api調(diào)用服務(wù),使第三方微博客戶端無需了解復(fù)雜的驗證和api調(diào)用過程,就可以實現(xiàn)分享文字或者多媒體信息到新浪微博。本系統(tǒng)包括四個模塊:應(yīng)用程序登錄模塊,主界面顯示模塊,微博瀏覽模塊,用戶模塊。在登錄模塊,用戶可以使用授權(quán)配置和用戶注冊并且登錄系統(tǒng)。主界面顯示模塊中,用戶可以發(fā)表新的微博和通過昵稱搜索好友。微博瀏覽模塊,進入瀏覽微博的詳細頁面,用戶可以評論微博和轉(zhuǎn)發(fā)微博
2、。用戶模塊,可查看該用戶的詳細信息包括該用戶的關(guān)注列表,話題列表,粉絲列表,和該用戶所發(fā)表過的全部微博。關(guān)鍵詞:微博客戶端;android;微博開放平臺;eclipse;接口。目 錄 第一章 引言.1 1.1課題背景.1 1.2微博介紹.1 1.3 android簡介.2 1.4 研究內(nèi)容.2第二章 系統(tǒng)概述.3 2.1 可行性分析.3 2.2 需求分析.3 2.3 規(guī)劃概述.4 2.4 開發(fā)環(huán)境.5第三章 系統(tǒng)設(shè)計.6 3.1 系統(tǒng)設(shè)計目標.6 3.2 系統(tǒng)模塊設(shè)計.6第四章 數(shù)據(jù)庫設(shè)計.16 4.1 數(shù)據(jù)庫結(jié)構(gòu)設(shè)計.16 4.2 數(shù)據(jù)庫物理建模.18第五章 系統(tǒng)功能實現(xiàn).21 5.1 登錄
3、模塊實現(xiàn).21 5.2 主界面顯示模塊實現(xiàn).23 5.3 微博信息瀏覽模塊實現(xiàn).25 5.4 獲取用戶信息模塊實現(xiàn).26第六章 系統(tǒng)的測試.30第七章 總結(jié).32參考文獻第一章 引言1.1課題背景 在21世紀這個互聯(lián)網(wǎng)高度發(fā)達的時代,處處都離不開互聯(lián)網(wǎng)和移動終端,因此,興起了it行業(yè)。 互聯(lián)網(wǎng)使整個it業(yè)的發(fā)展和更新大大發(fā)展,而作為終端設(shè)備中數(shù)量級最大的手機,近年的發(fā)展更是突飛猛進,在顛覆傳統(tǒng)手機概念的同時,不斷挖掘著自身的市場價值,也成為眾多廠商利益角逐的角斗場。ios在喬布斯的精心策劃下一路高歌猛進,android則憑著開源的方式開山劈路,symbian和black berry的舊有模式被
4、不斷蠶食,windows phone則在滯后的泥潭中繼續(xù)掙扎。手機終端多樣化應(yīng)用的不斷出現(xiàn),使其在近乎實現(xiàn)pc端功能的同時,也影響著pc的發(fā)展。 在這個“互聯(lián)網(wǎng)+”和手機人手一部的時代,新浪微博手機客戶端便應(yīng)運而生,而作為市場占有率第一的android平臺下的新浪微博客戶端更是擁有廣泛的需求。目前一些基于android平臺的新浪微博客戶端相對比較完善,功能也比較齊全,但基于市場利益考慮,均有不同程度的涉及廣告的行為,而且界面設(shè)計相對傳統(tǒng),招到很多用戶的不滿。因此,本課題就致力于開發(fā)出一款基于android平臺的新浪微博客戶端,來滿足用戶的使用需求。1.2微博簡介微博,即微型博客,是隨著web
5、2.0而興起的一類開放的互聯(lián)網(wǎng)社交服務(wù),它允許用戶以簡短文字隨時隨地更新自己的狀態(tài),每條信息的長度都在140字以內(nèi),支持圖片、音頻、視頻等多媒體的出版,每個用戶既是微內(nèi)容的創(chuàng)造者也是微內(nèi)容的傳播者和分享者。與傳統(tǒng)博客相比,微博具有如下特點: 1) 準入門檻低。傳統(tǒng)博客強調(diào)版本的布置與語言的組織,因此博文的創(chuàng)作需要考慮完整的邏輯性,也就是說,在blog上寫文章的門檻還是很高的;哪怕是一個沒有受過嚴格中文訓(xùn)練的人,只要會發(fā)短信,他就能使用微博。閑得無事,更新一下簽名,就被記錄了。 2) 即時通訊的原創(chuàng)性。對于每篇微博140個字符的信息量特別適合手機上網(wǎng)用戶使用,無論你是在咖啡廳還是在地鐵站,都很容
6、易通過手機完成自己的微博。因此,微博的即時通訊功能非常強大。很多微博網(wǎng)站,即便在沒有網(wǎng)絡(luò)的地方,只要有手機也可即時更新自己的內(nèi)容。一些突發(fā)事件或引起全球關(guān)注的大事,如果有微博,就能利用各種手段在微博上發(fā)表,其真實性以及快捷性給人帶來的現(xiàn)場感,甚至超過所有媒體。3) 更強的互動性。與博客上面對面的表演不同,微型博客上是背對臉的 follow(跟隨),就好比你在電腦前打游戲,路過的人從你背后看著你怎么玩,而你并不需要主動和背后的人交流。既可以一點對多點,也可以點對點。在web瀏覽器中實現(xiàn)好友管理是非常方便的,如果你想在手機中進行管理的話同樣是非常方便的,移動終端提供的便利性和多媒體化,使得微型博客
7、用戶體驗的粘性越來越強。與傳統(tǒng)博客相比,微型博客具有更好的及時性、開放性和隨意性,用戶不僅可以通過網(wǎng)頁瀏覽和發(fā)布信息,還可以通過手機、即時通訊軟件的客戶端、桌面客戶端、外部api接口等多種途徑使用微博功能。對單條信息長度的限制是微博服務(wù)形式的核心特征,其信息短、直觀、簡潔的特點便于迅速閱讀和傳播。1.3 android簡介android 是google開發(fā)的基于linux平臺的開源手機操作系統(tǒng)。它包括操作系統(tǒng)、用戶界面和應(yīng)用程序 移動電話工作所需的全部軟件。 android系統(tǒng)就是一個開放式的手機和平板電腦的操作系統(tǒng),目前的發(fā)展勢頭十分迅猛。android的面試的時間不長,但android已經(jīng)
8、對傳統(tǒng)的手機平臺(如symbian)構(gòu)成了強大的沖擊。android操作系統(tǒng)發(fā)展迅猛主要得益于免費、開源和良好產(chǎn)業(yè)運作策略,這三點為安卓在智能手機市場贏得更多的發(fā)展機遇。系統(tǒng)的免費讓更多的廠商加入,推動了份額的上升;代碼的開源讓更多的開發(fā)者進入應(yīng)用開發(fā);應(yīng)用的豐富吸引了更多用戶選擇,這也是谷歌值得眾多廠商學(xué)習(xí)的地方。此外,谷歌通過oha聯(lián)合眾多廠商進行系統(tǒng)研發(fā),不斷更新版本,將系統(tǒng)應(yīng)用推廣到更多的終端產(chǎn)品中,確保用戶體驗持續(xù)改善。1.4研究內(nèi)容1) 本課題研究的內(nèi)容包括創(chuàng)建基于android平臺的新浪微博客戶端應(yīng)用,使用java語言編寫,通過新浪微博開放平臺提供的接口創(chuàng)建的微博客戶端應(yīng)用。2)
9、本課題研究的意義在于使用基于android系統(tǒng)的新浪微博客戶端可以方便的在本系統(tǒng)中使用發(fā)微博,評論微博,轉(zhuǎn)發(fā)微博,消息提醒,為用戶推薦微博等全面的功能。用戶可以隨時隨地的更新自己的微博信息,把看到的、想說的一切都以最快的速度分享給大家。第二章 系統(tǒng)概述2.1可行性分析1)市場的可行性項目是否可以實施,主要應(yīng)該看這個項目是否有潛在的市場,以及市場的變化對項目的開發(fā)結(jié)果會有哪些重要影響。一個項目的市場需求是推動技術(shù)進步的主要動力,有時市場的需求,決定了某項技術(shù)的產(chǎn)生。有的時候,即使沒有技術(shù),沒有經(jīng)濟實力,只要找對市場,也會通過其他渠道來達到項目的經(jīng)濟等方面的要求來開發(fā)項目,所以說,市場需求是項目可
10、行性的根本。本系統(tǒng)基于移動平臺的微博客戶端系統(tǒng),是人們?nèi)粘I钪泻团笥呀涣骰拥谋匾ぞ?。只要針對大眾對物品的喜好,使系統(tǒng)功能齊全,操作簡單,界面美觀大方,就一定會有市場潛力。2)技術(shù)上的可行性新浪微博android平臺sdk為第三方微博應(yīng)用提供了文檔易用的微博api調(diào)用服務(wù),使第三方客戶端無需了解復(fù)雜的驗證,基于android系統(tǒng)開發(fā)使用java作為編程語言具有良好的平臺移植性和可擴展性,所以在技術(shù)上也是可行的。3)運行上的可行性本應(yīng)用是基于android系統(tǒng)手持移動終端,android系統(tǒng)手機在智能手機和平板電腦市場都有很高的占有率,各個手機廠商也爭先推出更新版本和硬件配置更高的終端,從市
11、場上一般的android手機硬件配置來看運行本系統(tǒng)應(yīng)該是綽綽有余所以在運行可行性上更是可行的。4)經(jīng)濟上的可行性本系統(tǒng)為課程設(shè)計練習(xí)實踐型項目,所使用的開發(fā)工具都由學(xué)校免費提供,因此開發(fā)成本比較低,所以開發(fā)基于android移動平臺的微博客戶端在經(jīng)濟上是可行的。2.2需求分析本應(yīng)用程序啟動后,可以通過使用新浪的微博開放平臺,利用接口調(diào)用返回的數(shù)據(jù),進行用戶注冊,用戶信息配置,授權(quán)認證,用戶登錄。登錄成功之后進入程序首頁,可以顯示微博好友發(fā)布的最新微博信息,以及相關(guān)圖片的瀏覽??梢圆榭春糜训膫€人信息、粉絲數(shù)量、發(fā)表的話題、所有發(fā)表過的微博以及其關(guān)注的好友情況。從以上描述可以基本了解到該應(yīng)用的功能
12、需求:1) 啟動應(yīng)用程序。2) 如果用戶是第一次登陸,進入授權(quán)界面,在此頁面,當用戶還未擁有新浪微博賬號,則可以選擇跳轉(zhuǎn)到新浪微博的用戶注冊頁面,注冊自己的新浪微博賬號。如用戶已有新浪微博賬號,用戶可以輸入用戶名和密碼進行授權(quán)。取得新浪的授權(quán)認證。3) 如果用戶已經(jīng)在該應(yīng)用中登錄過,則只需選擇需要登錄的賬號,不用再輸入用戶名和賬號等繁瑣操作就可直接登錄系統(tǒng)。4) 用戶登錄系統(tǒng)之后,進入微博客戶端首頁,用戶可以查看到自己關(guān)注到的好友的最新微博信息。5) 點擊用戶發(fā)表的某一條微博信息,進入微博瀏覽頁面,可以查看到這條微博信息的全面內(nèi)容,包括粉絲評論、評論數(shù)、轉(zhuǎn)發(fā)數(shù)、圖片等多媒體信息。用戶可以點擊屏
13、幕下方的評論按鈕,發(fā)表自己對該篇微博的評論。點擊轉(zhuǎn)發(fā)按鈕則可以轉(zhuǎn)發(fā)這條微博內(nèi)容。6) 點擊微博瀏覽頁面的查看好友個人信息按鈕,進入好友個人信息瀏覽頁面,在此頁面可以點擊屏幕上方的關(guān)注好友按鈕,對好友進行關(guān)注和取消關(guān)注的操作。在屏幕中央的顯示頁面,可以查看到好友的地址,個人說明的信息。在屏幕的下方有四個按鈕,分別可以查看該好友發(fā)表過的所有微博信息,該好友所關(guān)注的所有好友,發(fā)表過的所有話題、粉絲數(shù)量和所有粉絲列表。同時也可以查看粉絲的個人信息,用戶可以自己對感興趣的粉絲也添加關(guān)注。7) 回到應(yīng)用的首頁,在屏幕的上方有一個發(fā)表微博的按鈕,用戶輸入內(nèi)容,點擊發(fā)送可以發(fā)表自己的微博。用戶也可以在此頁面點
14、擊刷新按鈕,刷新當前的最新微博。2.3規(guī)劃概述凡事預(yù)則立,不預(yù)則廢。科學(xué)的規(guī)劃對于任何需要經(jīng)過較長時間努力才能實現(xiàn)的事情都是非常重要的。規(guī)劃,一般是指對較長時期的活動進行總體的、全面的計劃?,F(xiàn)代社會組織,特別是企業(yè)的結(jié)構(gòu)和活動內(nèi)容都很復(fù)雜,應(yīng)該充分認識這一階段工作所具有的特點,以提高系統(tǒng)規(guī)劃工作的科學(xué)性和有效性。1) 系統(tǒng)規(guī)劃工作是面向長遠的、未來的、全局性和關(guān)鍵性的問題,因此它具有較強的不確定性,非結(jié)構(gòu)化程度較高。2) 其工作環(huán)境是組織管理環(huán)境,高層管理人員是工作的主體。3) 系統(tǒng)規(guī)劃是為整個系統(tǒng)建設(shè),確定目標、戰(zhàn)略、系統(tǒng)總體結(jié)構(gòu)方案以及資源計劃。因而,整個工作過程是一個管理決策過程。同時,
15、系統(tǒng)規(guī)劃也是技術(shù)與管理相結(jié)合的過程,它確定了利用現(xiàn)代信息技術(shù)有效的支持管理決策的總體方案。4) 系統(tǒng)規(guī)劃人員對管理與技術(shù)環(huán)境的理解程度、對管理與技術(shù)發(fā)展的見識,以及開創(chuàng)精神與務(wù)實態(tài)度是規(guī)劃工作的決定因素。5)規(guī)劃工作的結(jié)果是要明確回答規(guī)劃工作內(nèi)容中提出的問題,描述出系統(tǒng)的總體概貌和發(fā)展進程,為系統(tǒng)的發(fā)展制定一個科學(xué)而又合理的目標和達到該目標的可行方案,而不是替代后續(xù)階段的工作。2.4開發(fā)環(huán)境android的上層應(yīng)用程序是使用java語言開發(fā)的,同時還需要基于dalvik虛擬機,所以,google公司推薦使用主流的java開發(fā)環(huán)境eclipse。如果只有eclipse那還不夠,因為是使用java
16、語言進行開發(fā),還應(yīng)該具備由sun公司提供的java sdk(其中包括jre:java runtime environment)。此外,android的應(yīng)用程序開發(fā)和java開發(fā)有較大區(qū)別的,所以還需要有g(shù)oogle提供的android sdk。同時,還需要在eclipse安裝adt,為android開發(fā)提供開發(fā)工具的升級或者變更,是eclipse下開發(fā)工具的升級下載的工具。第三章 系統(tǒng)設(shè)計3.1系統(tǒng)設(shè)計目標1) 通過創(chuàng)建新浪微博客戶端應(yīng)用,讓用戶隨時隨地與好友分享身邊的新鮮事。2) 通過友好的界面設(shè)計和完善的功能,使微博用戶更加得心應(yīng)手的與好友交流互動,盡可能多的給用戶提供方便。3) 通過自己
17、的設(shè)計終端,不植入廣告,讓用戶更放松的應(yīng)用app。3.2系統(tǒng)模塊設(shè)計1)系統(tǒng)功能模塊劃分功能模塊劃分是描述系統(tǒng)的一個過程,需要將需求分析中的感性描述進行抽象化,提取出要實現(xiàn)的功能,這是整個系統(tǒng)開發(fā)的一個關(guān)鍵過程。在系統(tǒng)分析的基礎(chǔ)上,確定系統(tǒng)的功能模塊。微博客戶端用戶登錄或授權(quán)認證添加關(guān)注和取消關(guān)注最新微博列表發(fā)表新微薄評論微博轉(zhuǎn)發(fā)微博搜索用戶圖3-1系統(tǒng)功能模塊圖2)系統(tǒng)總體結(jié)構(gòu)設(shè)計系統(tǒng)總體結(jié)構(gòu)設(shè)計確定軟件由哪些模塊組成以及這些模塊之間的動態(tài)調(diào)用關(guān)系。微博客戶端不是一個簡單的概念,它包含了許多個內(nèi)容,是由多個頁面組成的一個整體的系統(tǒng)。1) 在功能方面,采用圖形用戶界面技術(shù),使系統(tǒng)能夠有多重圖形
18、窗口和豐富便利的操作界面,通過鼠標或鍵盤的操作,為用戶提供最簡潔的使用方法。2) 在系統(tǒng)開放性方面,基于優(yōu)秀的開發(fā)平臺,再按照軟件工程開發(fā)規(guī)范實現(xiàn)系統(tǒng)的開放性,既便于內(nèi)容的擴充又便于技術(shù)的升級,以適用今后其他人的借鑒需求。3) 在系統(tǒng)和數(shù)據(jù)的安全性方面,本項目是采用oauth認證方式,采用這種方式就需要有用戶的新浪userid、access token、access secret這3個要素才能自由便利的調(diào)用新浪的開放接口。本項目是這樣實現(xiàn)的,當用戶第一次使用軟件時,進行授權(quán)認證獲取這3個要素,同時將其存儲到sharedpreferences中以便用戶下次使用。當用戶再次使用時就不需要重新進行繁
19、瑣的授權(quán)認證操作,直接從sharedpreferences中讀取出來即可使用。這樣的需求載入頁面的功能設(shè)定是這樣實現(xiàn)的:當用戶打開軟件顯示載入頁面時開始檢查sharedpreferences中是否已經(jīng)保存有用戶的新浪微博的userid號、access token、access secret的記錄,如果一條記錄都沒有那就說明用戶是第一次使用本軟件,那么跳到認證授權(quán)頁面進行授權(quán)認證操作(認證授權(quán)功能在接下來的兩篇中進行實現(xiàn)講解)獲取這3個值保存到sharedpreferences中,如果已經(jīng)包括了記錄那么讀取這些記錄的userid號、access token、access secret值然后根據(jù)這
20、3個值調(diào)用新浪的api接口獲取這些記錄對應(yīng)的用戶昵稱信息等。oauth認證的原理如下圖3-2所示:客戶端新浪微博服務(wù)器將appkey和appsecret發(fā)送至新浪微博返回requesttoken和requestsecret給客戶端表示新浪微博信任客戶端 將requesttoken和requestsecret發(fā)送至新浪微博跳轉(zhuǎn)至授權(quán)頁面授權(quán)頁面輸入賬號密碼完成授權(quán)根據(jù)回調(diào)地址返回oauth_verifier,表示用戶信任客戶端將requesttoken、requestsecret、oauth_verifier發(fā)送至新浪微博返回user_id、accesstoken和accesssecret用來代
21、替賬號密碼圖3-2oauth2.0認證原理圖3)系統(tǒng)模塊用例圖分析1用戶注冊模塊功能描述:在用戶第一次使用該應(yīng)用時,如還未獲得新浪微博的賬號,可以通過配置頁面跳轉(zhuǎn)到新浪微博的用戶注冊頁面。參與者:未注冊的用戶。前置條件:所有未注冊的用戶。后置條件:提示注冊是否成功。未注冊用戶用戶注冊圖3-3 用戶注冊用例圖2用戶登錄和授權(quán)模塊功能描述:對于第一次使用該應(yīng)用的用戶,在程序啟動之后進入配置頁面,輸入用戶名和密碼進行授權(quán)認證。對于用戶在自己的手機上使用過或者已經(jīng)通過了授權(quán)認證則可以不用輸入用戶名和密碼就可以選擇用戶進行登錄。參與者:未通過授權(quán)認證或者未登錄。前置條件:未通過授權(quán)認證或者未登錄的用戶。
22、后置條件:通過授權(quán)配置或者直接登錄系統(tǒng)。通過授權(quán)認證用戶選擇用戶進行登錄圖3-4 用戶登錄和授權(quán)認證用例圖用戶登錄和授權(quán)模塊流程圖如圖3-5所示:開始啟動應(yīng)用結(jié)束授權(quán)設(shè)置登錄登錄到應(yīng)用首頁是否存在已授權(quán)用戶tf圖3-5 用戶登錄和授權(quán)流程圖3系統(tǒng)首頁信息顯示模塊功能描述:顯示被用戶添加關(guān)注的好友的最新微博信息。參與者:合法登錄用戶。前置條件:已登錄用戶。后置條件:在首頁顯示所有被用戶添加關(guān)注的最新微博信息列表。該模塊用例如下圖3-6所示:用戶查看微博列表搜索用戶發(fā)表新微博圖3-6系統(tǒng)首頁信息顯示用例圖系統(tǒng)首頁顯示模塊流程圖如圖3-7所示:加載數(shù)據(jù)開始進入首頁發(fā)表新微博結(jié)束顯示最新微博的列表搜索
23、其他用戶圖3-7顯示主界面流程圖4發(fā)表微博模塊功能描述:該模塊主要實現(xiàn)了用戶發(fā)表微博的功能。參與者:合法登錄用戶。前置條件:已登錄用戶。后置條件:新微博信息是否發(fā)表成功。該模塊用例如下圖3-8所示:用戶發(fā)布微博圖3-8發(fā)表微博用例圖發(fā)表新微博流程圖如下圖3-9所示:點擊首頁微博發(fā)送按鈕開始輸入內(nèi)容點擊發(fā)送判斷結(jié)束發(fā)送失敗圖3-9 發(fā)表微博流程圖5通過關(guān)鍵字搜索相關(guān)用戶模塊功能描述:該模塊主要實現(xiàn)了通過關(guān)鍵字搜索相關(guān)用戶的功能。參與者:合法登錄用戶。前置條件:已登錄用戶。后置條件:搜索成功返回結(jié)果。搜索模塊用例如下圖3-10所示:用戶查看返回的用戶列表添加對搜索到用戶的關(guān)注輸入關(guān)鍵字搜索圖3-1
24、0搜索用例圖搜索功能流程圖如下圖3-11所示:開始輸入關(guān)鍵詞顯示與關(guān)鍵字相關(guān)的微博用戶列表點擊某一用戶進入該用戶詳細信息頁面添加關(guān)注或者返回結(jié)束圖3-11搜索功能流程圖6查看微博內(nèi)容模塊:功能描述:該模塊實現(xiàn)了用戶可以通過點擊某一條微博信息查看該微博的所有內(nèi)容,并進行評論和轉(zhuǎn)發(fā)操作。參與者:合法登錄用戶。前置條件:已登錄用戶。后置條件:可以轉(zhuǎn)發(fā)和參與評論。查看微博內(nèi)容模塊用例如下圖3-12所示:查看微博詳細信息轉(zhuǎn)發(fā)評論用戶圖3-12 查看微博用例圖評論微博功能流程圖如下圖3-13所示:點擊評論按鈕進入評論頁面開始結(jié)束輸入評論內(nèi)容點擊發(fā)送判斷評論失敗圖3-13 評論功能流程圖轉(zhuǎn)發(fā)功能流程圖如下圖
25、3-14所示:點擊評論按鈕進入轉(zhuǎn)發(fā)頁面開始結(jié)束輸入轉(zhuǎn)發(fā)內(nèi)容點擊發(fā)送判斷轉(zhuǎn)發(fā)失敗圖3-14轉(zhuǎn)發(fā)功能流程圖7查看用戶信息模塊功能描述:查看好友的詳細信息。 參與者:合法登錄用戶。 前置條件:已登錄用戶。 后置條件:查看好友詳細信息(包括所有微博,話題,關(guān)注,粉絲)關(guān)注和取消關(guān)注操作。查看用戶信息模塊用例如下圖3-15所示:添加對好友粉絲的關(guān)注對好友進行關(guān)注和取消關(guān)注添加對好友所關(guān)注用戶的關(guān)注查看好友的詳細信息查看好友的關(guān)注列表用戶查看好友所有微博信息查看好友的所有話題查看好友的粉絲列表圖3-15 查看用戶信息用例圖查看關(guān)注和添加關(guān)注功能具體流程圖如下圖3-16所示:點擊進入關(guān)注列表開始結(jié)束查看用戶
26、信息添加關(guān)注圖3-16 查看關(guān)注和添加關(guān)注流程圖查看用戶所有微博列表功能流程如下圖3-17所示:結(jié)束點擊微博按鈕 開始用戶所有微博列表界面查看某一條微博詳細信息同時進行評論和轉(zhuǎn)發(fā)操作圖3-17 查看用戶所有微博列表流程圖第四章 數(shù)據(jù)庫設(shè)計數(shù)據(jù)庫設(shè)計是指對于一個給定的應(yīng)用環(huán)境,構(gòu)造最優(yōu)的數(shù)據(jù)庫模式,建立數(shù)據(jù)庫及其應(yīng)用系統(tǒng),使之能夠有效的存儲數(shù)據(jù),滿足各種用戶的應(yīng)用需求。目前涉及數(shù)據(jù)庫系統(tǒng)主要采用的是以邏輯數(shù)據(jù)庫設(shè)計和物理數(shù)據(jù)庫設(shè)計為核心的規(guī)范設(shè)計方法。其中邏輯數(shù)據(jù)庫設(shè)計是根據(jù)用戶要求和特定數(shù)據(jù)庫管理系統(tǒng)的具體特點,以數(shù)據(jù)庫設(shè)計理論為依據(jù),設(shè)計數(shù)據(jù)庫的全局邏輯結(jié)構(gòu)和每個用戶的局部邏輯結(jié)構(gòu)。物理數(shù)據(jù)
27、庫設(shè)計是在邏輯結(jié)構(gòu)確定之后,設(shè)計數(shù)據(jù)庫的存儲結(jié)構(gòu)及其它實現(xiàn)細節(jié)。4.1數(shù)據(jù)庫結(jié)構(gòu)設(shè)計對數(shù)據(jù)庫的實體關(guān)系的設(shè)計是建立在需求分析、系統(tǒng)分析的基礎(chǔ)之上的。實體的設(shè)計相對比較簡單,包括用戶信息、與用戶相關(guān)的信息、微博信息、評論信息。通過分析用實體圖描述每個實體的屬性。1)實體圖1用戶實體屬性圖如下圖4-1所示:token失效期代表用戶身份的access token微博賬號用戶id自增主鍵用戶id粉絲數(shù)量tokensecret用于獲取acesstoken圖4-1用戶實體圖2用戶相關(guān)信息實體屬性圖如下圖4-2所示:用戶id用戶相關(guān)信息id用戶圖標微博賬號用戶相關(guān)信息最新微博圖4-2用戶相關(guān)信息實體圖3微博
28、信息實體屬性圖如下圖4-3所示:微博id內(nèi)容用戶id用戶名用戶圖標時間是否有圖片微博圖4-3微博信息實體圖4評論信息實體屬性如下圖4-4所示:微博id時間評論id評論內(nèi)容用戶id評論圖4-4評論信息實體圖2)系統(tǒng)實體聯(lián)系根據(jù)對系統(tǒng)的分析和設(shè)計,本系統(tǒng)的所有實體的關(guān)系包括:用戶相關(guān)信息存儲了與用戶有關(guān)的但是不經(jīng)常進行操作的數(shù)據(jù)所以用戶和用戶相關(guān)信息是一對一的關(guān)系。用戶可以發(fā)表多篇微博,所以用戶和微博是一對多的關(guān)系。用戶也可以發(fā)表多篇評論所以用戶和評論是一對多的關(guān)系。一篇微博可以被多次評論,所以微博和評論是一對多的關(guān)系。另外,用戶可以添加對其他多個用戶的關(guān)注也可以被其他多個用戶關(guān)注,所以用戶和用戶
29、是多對多的關(guān)系。本系統(tǒng)實體之間的關(guān)系如下圖4-5所示:用戶用相關(guān)信息戶微博評論包含11包含1n發(fā)表發(fā)表1n1n圖4-5系統(tǒng)e-r圖4.2數(shù)據(jù)庫物理建模物理建模,即數(shù)據(jù)庫建模,建立在概念模型的基礎(chǔ)上,每一個實體對應(yīng)一個數(shù)據(jù)庫表,實體中的每一個屬性對應(yīng)數(shù)據(jù)表中的每一個字段。有關(guān)系鏈接的實體,在生成物理模型以后會存在相應(yīng)的關(guān)系。本系統(tǒng)基于性能的考慮,并且大部分數(shù)據(jù)從網(wǎng)絡(luò)獲取,所以只有少部分數(shù)據(jù)需要存儲,即用戶信息、用戶的相關(guān)信息、微博、評論。本系統(tǒng)選擇sqlite數(shù)據(jù)庫存儲數(shù)據(jù)。建立數(shù)據(jù)庫sina_weibo.db,并且建立四張表t-user存儲用戶的個人授權(quán)認證的數(shù)據(jù)。t-userentry表用于
30、儲存與用戶相關(guān)聯(lián)的一些數(shù)據(jù)。t-weibo表用于存儲與微博內(nèi)容相關(guān)的數(shù)據(jù)。t-comment表存儲評論內(nèi)容相關(guān)的數(shù)據(jù)。1) 用戶數(shù)據(jù)表(t-user):主要存儲與用戶授權(quán)認證的相關(guān)信息包括代表用戶身份的token和secret字段以及token的失效期。其他字段包括自動的增減的編號、微博賬號、用戶編號、粉絲數(shù)量。表4-1 用戶數(shù)據(jù)表屬性數(shù)據(jù)類型說明_idinteger自動增加的主鍵useridvarchar用戶的idtokenvarchar代表用戶身份的access tokenexpiresvarchartoken失效期fansecountinteger粉絲數(shù)量tokensecretvarch
31、ar用戶獲取acesstoken,鑒權(quán)用戶身份等usernamevarchar微博賬號2) 用戶相關(guān)數(shù)據(jù)表(t-userentry):存儲用戶微博賬號的相關(guān)信息包括自動增加的編號、用戶圖標、最新微博信息、微博賬號、和用戶編號。用戶編號與用戶數(shù)據(jù)表相關(guān)聯(lián)。表4-2 用戶相關(guān)信息表屬性數(shù)據(jù)類型說明_idinteger自動增加的主鍵usericonvarchar圖標lastweibovarchar最新微博usernamevarchar微博賬號useridvarchar用戶id3) 微博信息數(shù)據(jù)表(t-weibo):存儲微博的相關(guān)信息包括自動增加的編號、內(nèi)容、時間、是否有圖片、用戶編號、用戶名。用戶編
32、號與用戶數(shù)據(jù)表相關(guān)聯(lián)。表4-3 微博信息表屬性數(shù)據(jù)類型說明_idinteger自動增加的主鍵textvarchar微博的內(nèi)容useridvarchar用戶的idusernamevarchar用戶名usericonvarchar用戶圖標 timevarchar時間haveimageboolean是否有圖片4) 評論信息數(shù)據(jù)表(t-comment):存儲對微博的評論內(nèi)容,時間等。用戶編號和微博編號分別與用戶數(shù)據(jù)表和微博信息表相關(guān)聯(lián)。表4-4 評論信息表屬性數(shù)據(jù)類型說明_idinteger自動增加的主鍵textvarchar評論內(nèi)容useridvarchar用戶idtimevarchar評論時間we
33、iboidinteger微博id第五章 系統(tǒng)功能實現(xiàn)本應(yīng)用主要實現(xiàn)了四個主要模塊,包括應(yīng)用登錄模塊用戶可以使用授權(quán)配置和用戶注冊并且登錄系統(tǒng)。主界面顯示模塊用戶可以發(fā)表新的微博和通過昵稱搜索好友。微博瀏覽模塊進入瀏覽微博的詳細頁面,用戶可以評論微博和轉(zhuǎn)發(fā)微博。用戶模塊可以獲取用戶的詳細信息,可以查看該用戶的關(guān)注列表,話題列表,粉絲類表,和該用戶所發(fā)表的全部微博。5.1登錄模塊實現(xiàn)1)用戶授權(quán)配置模塊程序啟動,如果用戶是第一次使用該應(yīng)用,則需要跳轉(zhuǎn)到配置頁面,在用戶配置頁面用戶輸入新浪微博的用戶名和密碼,進行授權(quán)。如果用戶已經(jīng)通過了配置和授權(quán),則只需要選擇要登錄的用戶進行登錄。授權(quán)配置頁面如下圖
34、5-1所示:圖5-1 用戶配置頁面核心代碼:weibo weibo = weibo.getinstance(); weibo.setupconsumerconfig(consumer_key, consumer_secret); / oauth2.0weibo.setredirecturl(/);/ 此處回調(diào)頁內(nèi)容應(yīng)該替換為與appkey對應(yīng)的應(yīng)用回調(diào)頁/ 對應(yīng)的應(yīng)用回調(diào)頁可在開發(fā)者登陸新浪微博開發(fā)平臺之后,/ 進入我的應(yīng)用-應(yīng)用詳情-應(yīng)用信息-高級信息-授權(quán)設(shè)置-應(yīng)用回調(diào)頁進行設(shè)置和查看,weibo.authorize(authorizeact
35、ivity.this,new authdialoglistener();名詞解釋:表5-1相關(guān)名詞解釋consumer_key分配給每個第三方應(yīng)用的app key。用于鑒權(quán)身份,顯示來源等功能。consumer_secret生成請求request token的secret,與consumer key一起分配。oauth_token服務(wù)器根據(jù)app key和時間,callback_url等哈希出的token值,用于獲取oauth verifier。oauth_token_secret與oauth token一起使用,用于獲取oauth verifier。oauth_verifier通過oauth
36、頁面返回的verifier,用于最終獲取access token。access_token表示用戶身份的token,用于微博api的調(diào)用。2)用戶登錄模塊用戶在登錄本應(yīng)用時可以點擊屏幕中央的一個下拉框,在下拉框中選擇用戶要登錄的用戶,選中要登錄的用戶再點擊登錄按鈕就可以登錄新浪微博客戶端。用戶登錄頁面如下圖5-2所示:圖5-2用戶登錄頁面實現(xiàn)算法:第一步:獲取微博實體類,傳入app key, secret,以及callback_url。第二步:用獲取到的oauth token , oauth_token_secret訪問open api authorize頁面。第三步:獲取到callback的
37、oauth_verifier,并根據(jù)它獲取accesstoken,完成登錄。5.2主界面顯示模塊實現(xiàn)首頁顯示被用戶添加了關(guān)注的用戶的最新微博信息、發(fā)表微博、更新最新微博列表、通過昵稱搜索其他新浪微博用戶。1)顯示最新微博列表在此功能模塊內(nèi),用戶可以點擊搜索按鈕進入搜索頁面,點擊發(fā)布新微博按鈕進入發(fā)表新微博頁面,點擊刷新按鈕刷新最新的微博列表,并且可以通過滾動鼠標分頁顯示更多的微博信息。系統(tǒng)首頁如下圖5-3所示: 圖5-3 系統(tǒng)首頁核心代碼:weiboparameters params = new weiboparameters();/設(shè)置分頁的頁碼和每頁顯示多少條params.add(coun
38、t, pagesize = null ? constants.page_size+ : pagesize);params.add(page, pagenow+);weibo weibo = weibo.getinstance();string rs = null;/發(fā)送請求到新浪微博服務(wù)器rs = weibo.request(homeactivity.this, weibo.server + statuses/friends_timeline.json, params, utility.httpmethod_get, weibo.getaccesstoken();2)輸入關(guān)鍵字搜索相關(guān)微博用戶
39、用戶在搜索頁面的關(guān)鍵字輸入框中輸入想要搜索的用戶的昵稱,再點擊搜索按鈕就可以列出與之相關(guān)的所有用戶的列表。用戶點擊列表中的某一項即可查看該用戶的詳細信息,并且添加關(guān)注。用戶搜索頁面如下圖5-4所示:圖5-4用戶搜索頁面核心代碼:weiboparameters bundle = new weiboparameters();/把關(guān)鍵字作為參數(shù)bundle.add(q, keywords);weibo weibo = weibo.getinstance();/發(fā)送請求到新浪微博服務(wù)器,返回搜索到的數(shù)據(jù)data = weibo.request(searchactivity.this, namespac
40、es.search, bundle, utility.httpmethod_get, weibo.getaccesstoken();3)發(fā)表微博功能用戶可以通過點擊首頁的發(fā)表微博按鈕,彈出輸入對話框,輸入內(nèi)容點擊發(fā)送按鈕,如果發(fā)送成功則返回首頁。發(fā)布新微博頁面如下圖5-5所示:圖5-5 新微博發(fā)表頁面核心代碼:weiboparameters params = new weiboparameters();/把微博內(nèi)容字作為參數(shù)params.add(status,c);weibo weibo = weibo.getinstance();string data = null;/發(fā)送請求到新浪微博服務(wù)
41、器,返回搜索到的數(shù)據(jù)data = weibo.request(weiboeditactivity.this, namespaces.weibo_send, params, utility.httpmethod_post, weibo.getaccesstoken();5.3微博信息瀏覽模塊實現(xiàn)通過點擊微博列表中的某一條微博信息可以查看這條微博的詳細信息。進入瀏覽微博信息頁面可以通過點擊頁面下方的評論按鈕,評論該條微博。也可以點擊轉(zhuǎn)發(fā)按鈕,轉(zhuǎn)發(fā)這條微博。微博信息瀏覽頁面如下圖5-6所示:圖5-6微博信息瀏覽頁面核心代碼:/根據(jù)微博id返回某條微博的評論列表weiboparameters para
42、ms3 = new weiboparameters();params3.add(id, key);string temp3 = weibo.request(viewactivity.this, namespaces.weibo_comments, params3, utility.httpmethod_get, weibo.getaccesstoken();用戶通過點擊微博詳細信息頁面的評論按鈕進入微博信息評論頁面,用戶可以輸入評論的內(nèi)容對這條微博信息進行評論。評論微博界面如下圖5-7所示: 圖5-7評論發(fā)表頁面核心代碼:weiboparameters params = new weibopa
43、rameters();params.add(access_token, confighelper.nowuser.gettoken();params.add(id, id);params.add(comment, content);string rs = null;weibo weibo = weibo.getinstance();rs = weibo.request(commenteditactivity.this,namespaces.weibo_comment, params,utility.httpmethod_post, weibo.getaccesstoken();5.4獲取用戶信
44、息模塊實現(xiàn)用戶通過點擊微博詳細信息瀏覽頁面中的查看用戶詳細信息按鈕,進入查看用戶詳細信息的頁面,在該頁面中用戶可以查看被關(guān)注的用戶的昵稱、頭像、個人介紹;可以顯示該用戶的粉絲和粉絲數(shù)量;顯示用戶所關(guān)注的用戶和關(guān)注的數(shù)量;顯示用戶發(fā)表過的所有微博和微博數(shù)量;顯示用戶發(fā)表過的話題的內(nèi)容和數(shù)量。同時也可以對該用戶進行關(guān)注和取消關(guān)注操作。用戶詳細信息瀏覽頁面如下圖5-8所示:圖5-8 用戶詳細信息瀏覽頁面核心代碼:weibo weibo = weibo.getinstance();rs = weibo.request(useractivity.this,islike=true ?namespaces.
45、destroy_following :namespaces.user_following,params0,utility.httpmethod_post,weibo.getaccesstoken();1)查看關(guān)注功能用戶點擊關(guān)注按鈕可以顯示用戶所關(guān)注的所有用戶列表,在瀏覽該用戶列表的同時,可以點擊某一個用戶瀏覽這些用戶的詳細信息,并對其添加關(guān)注。關(guān)注功能詳細如下圖5-9所示:圖5-9 添加關(guān)注頁面核心代碼:/發(fā)送請求到服務(wù)器添加關(guān)注weibo weibo = weibo.getinstance();rs = weibo.request(userlistactivity.this, follow
46、ing = true ? namespaces.destroy_following :namespaces.user_following,params0,utility.httpmethod_post,weibo.getaccesstoken();2)查看用戶所有微博信息功能用戶點擊微博按鈕可以進入該用戶所發(fā)所有微博的列表頁面,在該頁面用戶可以查看用戶所發(fā)微博的內(nèi)容和時間。點擊某一條微博就可以查看這條微博的詳細內(nèi)容,同時也可以進行轉(zhuǎn)發(fā)和評論等操作。該功能界面設(shè)計如下圖5-10所示:圖5-10 用戶所有微博列表頁面核心代碼:weiboparameters params = new weibopa
47、rameters();params.add(uid, nowuser);params.add(access_token, confighelper.nowuser.gettoken();/設(shè)置頁碼,和頁面大小params.add(count, pagesize = null ? constants.page_size+ : pagesize);params.add(page, pagenow + );weibo weibo = weibo.getinstance();/發(fā)送請求道新浪微博服務(wù)器rs = weibo.request(userweiboactivity.this,namespace
48、s.user_weibo, params, utility.httpmethod_get, weibo.getaccesstoken();第六章 系統(tǒng)的測試測試系統(tǒng)的第一步是測試組成系統(tǒng)的單個構(gòu)件。測試這些構(gòu)件稱為單元測試。在單元測試過程中,首先檢查代碼在程序的算法、數(shù)據(jù)和語法方面有沒有缺陷,最后給該構(gòu)件輸入一個測試用例集,以說明該構(gòu)件是否正確。在單元測試時,主要對單個模塊的功能進行測試,不用理會其他的模塊的耦合情況。1) 測試一在用戶授權(quán)配置時,用戶名或密碼有一項為空或者填寫錯誤,系統(tǒng)是否出現(xiàn)預(yù)先設(shè)定的操作提示。具體操作:用戶名、密碼、任意一項為空或者填寫有誤。結(jié)果:都出現(xiàn)相應(yīng)的錯誤原因的信息提示。結(jié)論:要求用戶必須填寫正確的用戶名和密碼,才能授權(quán)成功。2) 測試二在發(fā)表新微博時,輸入空內(nèi)容,或者和上一條內(nèi)容一樣的微博時,程序是否有出現(xiàn)預(yù)先設(shè)定的提示。具體操作:輸入的內(nèi)容為空,或者和上一條相同的內(nèi)容。結(jié)果:提示用戶內(nèi)容不能為空,或者請不要輸入相同內(nèi)容。結(jié)論:要求輸入正確內(nèi)容。3) 測試三評論微博時,輸入評論內(nèi)容,如果內(nèi)容為空,程序是否有出現(xiàn)預(yù)先設(shè)定的
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- GB/T 20907-2024城市軌道交通自動售檢票系統(tǒng)技術(shù)條件
- 低空物流科技創(chuàng)新發(fā)展實施方案
- 城鄉(xiāng)創(chuàng)新創(chuàng)業(yè)項目計劃書(5篇)
- 關(guān)于父母感恩演講稿范文錦集四篇
- 國旗下講話稿(10篇)
- 關(guān)于七夕節(jié)日記(25篇)
- 天英學(xué)校養(yǎng)老護理員(中級)理論復(fù)習(xí)試題有答案
- 2024-2025學(xué)年上海市閔行區(qū)莘松中學(xué)九年級(上)月考數(shù)學(xué)試卷(9月份)(含解析)
- 中學(xué)護校隊工作方案
- 第3章 海洋中的聲傳播理論課件
- 江西省礦山地質(zhì)環(huán)境詳細調(diào)查技術(shù)指南
- 新高考數(shù)學(xué)專題復(fù)習(xí)專題11圓錐曲線中的定點、定值問題專題練習(xí)(學(xué)生版+解析)
- 2024年新人教版一年級數(shù)學(xué)上冊第4單元《第1課時 10的再認識》課件
- 遼寧省名校聯(lián)盟2024-2025學(xué)年高三上學(xué)期10月聯(lián)考數(shù)學(xué)試卷
- 湖北省黃石市(2024年-2025年小學(xué)四年級語文)人教版專題練習(xí)(上學(xué)期)試卷及答案
- 2024年安徽省高校分類考試對口招生語文試卷真題(含答案)
- 二十屆三中全會精神測試題(含答案共600道題)(可編輯)
- Unit 1 This is my new friend. (教學(xué)設(shè)計)-2024-2025學(xué)年人教精通版英語四年級上冊
- 2024年檢察院招錄書記員考試法律基礎(chǔ)知識及答案
- 國開2024年秋季《形勢與政策》大作業(yè)答案
- 孤獨之旅省公開課一等獎新名師比賽一等獎?wù)n件
評論
0/150
提交評論