王明超
摘要:該系統(tǒng)基于Android移動開發(fā)平臺,使用Java語言開發(fā),使系統(tǒng)具有良好的平臺移植性和可擴展性。新浪微博AndroidSDK為第三方微博應(yīng)用提供了文檔易用的微博API調(diào)用服務(wù),使第三方微博客戶端無需了解復(fù)雜的驗證和API調(diào)用過程,就可以實現(xiàn)分享文字或者多媒體信息到新浪微博。本系統(tǒng)包括四個模塊:應(yīng)用程序登錄模塊,主界面顯示模塊,微博瀏覽模塊,用戶模塊。在登錄模塊,用戶可以使用授權(quán)配置和用戶注冊并且登錄系統(tǒng)。
關(guān)鍵詞:新浪微博開放平臺;授權(quán)配置;微博API調(diào)用服務(wù)
中圖分類號:TP311 文獻標(biāo)識碼:A 文章編號:1009-3044(2012)33-7933-03
每一個時代都會催生新的理念,每一個理念又會引領(lǐng)新的潮流,每一個潮流又注定會沖破原有的桎梏,創(chuàng)新是時代的特征,更是IT業(yè)的標(biāo)志。
摩爾定律的持續(xù)實現(xiàn)使整個IT業(yè)的發(fā)展和更新令人手忙腳亂,而作為終端設(shè)備中數(shù)量級最大的手機,近年更是近乎脫胎換骨,在顛覆傳統(tǒng)手機概念的同時,不斷挖掘著自身的市場價值,也成為眾多廠商利益角逐的角斗場[1]。IOS在喬布斯的精心策劃下一路高歌猛進,Android則憑著開源的方式開山劈路,Symbian和Blackberry的舊有模式被不斷蠶食,WindowsPhone則在滯后的泥潭中繼續(xù)掙扎。手機終端多樣化應(yīng)用的不斷出現(xiàn),使其在近乎實現(xiàn)PC端功能的同時,也影響著PC的發(fā)展。
互聯(lián)網(wǎng)領(lǐng)域,以Facebook為代表的SNS的突起更是激起新一輪的網(wǎng)絡(luò)風(fēng)波,而在國內(nèi),沖破眾堵的新浪在其準(zhǔn)確的定位和成功的推廣策略下推出的新浪微博更是占據(jù)了先導(dǎo)地位,并逐漸進入大眾生活,成為許多人的生活必需品。近年來,新浪微博的邀請重點由明星、名人轉(zhuǎn)向媒體工作者甚至政府工作者,為時事的發(fā)布和民政工作提供了更為多樣、便捷的方式[2]。
于是,新浪微博手機客戶端便應(yīng)運而生,而作為市場占有率第一的Android平臺下的新浪微博客戶端更是擁有廣泛的需求。目前一些基于Android平臺的新浪微博客戶端相對比較完善,功能也比較齊全,但基于市場利益考慮,均有不同程度的涉及廣告的行為,而且界面設(shè)計相對傳統(tǒng),招到很多用戶的不滿[4]。因此,本課題就致力于開發(fā)出一款基于Android平臺的新浪微博客戶端,來滿足用戶的使用需求。
1基于Android新浪微博客戶端的建設(shè)原
1)統(tǒng)一規(guī)劃、分步設(shè)計;2)堅持標(biāo)準(zhǔn)化和可行性;3)保證系統(tǒng)的穩(wěn)定性和安全性;4)保證網(wǎng)絡(luò)系統(tǒng)的先進性和有效性;5)操作簡單、人機界面友好,便于用戶理解和使用。
1.1設(shè)計思想
Android的上層應(yīng)用程序是使用Java語言開發(fā)的,同時還需要基于Dalvik虛擬機,所以,Google公司推薦使用主流的Java開發(fā)環(huán)境Eclipse。如果只有Eclipse那還不夠,因為是使用Java語言進行開發(fā),還應(yīng)該具備由SUN公司提供的JavaSDK(其中包括JRE:JavaRuntimeEnvironment)[6]。此外,Android的應(yīng)用程序開發(fā)和Java開發(fā)有較大區(qū)別的,所以還需要有Google提供的AndroidSDK。同時,還需要在Eclipse安裝ADT,為Android開發(fā)提供開發(fā)工具的升級或者變更,是Eclipse下開發(fā)工具的升級下載的工具。
1.1.1系統(tǒng)功能模塊劃分
功能模塊劃分是描述系統(tǒng)的一個過程,需要將需求分析中的感性描述進行抽象化,提取出要實現(xiàn)的功能,這是整個系統(tǒng)開發(fā)的一個關(guān)鍵過程。在系統(tǒng)分析的基礎(chǔ)上,確定系統(tǒng)的功能模塊。
1.1.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)能夠有多重圖形窗口和豐富便利的操作界面,通過鼠標(biāo)或鍵盤的操作,為用戶提供最簡潔的使用方法。
2)在系統(tǒng)開放性方面,基于優(yōu)秀的開發(fā)平臺,再按照軟件工程開發(fā)規(guī)范實現(xiàn)系統(tǒng)的開放性,既便于內(nèi)容的擴充又便于技術(shù)的升級,以適用今后其他人的借鑒需求。
3)在系統(tǒng)和數(shù)據(jù)的安全性方面,本項目是采用OAuth認(rèn)證方式,本項目是這樣實現(xiàn)的,當(dāng)用戶第一次使用軟件時,進行授權(quán)認(rèn)證獲取這3個要素,同時將其存儲到SharedPreferences中以便用戶下次使用。當(dāng)用戶再次使用時就不需要重新進行繁瑣的授權(quán)認(rèn)證操作,直接從SharedPreferences中讀取出來即可使用。這樣的需求載入頁面的功能設(shè)定是這樣實現(xiàn)的:當(dāng)用戶打開軟件顯示載入頁面時開始檢查SharedPreferences中是否已經(jīng)保存有用戶的新浪微博的UserID號、AccessToken、AccessSecret的記錄,如果一條記錄都沒有那就說明用戶是第一次使用本軟件,那么跳到認(rèn)證授權(quán)頁面進行授權(quán)認(rèn)證操作(認(rèn)證授權(quán)功能在接下來的兩篇中進行實現(xiàn)講解)獲取這3個值保存到SharedPreferences中。
1.2數(shù)據(jù)庫概念結(jié)構(gòu)設(shè)計
1.2.1系統(tǒng)數(shù)據(jù)庫物理建模
物理建模,即數(shù)據(jù)庫建模,建立在概念模型的基礎(chǔ)上,每一個實體對應(yīng)一個數(shù)據(jù)庫表,實體中的每一個屬性對應(yīng)數(shù)據(jù)表中的每一個字段。有關(guān)系鏈接的實體,在生成物理模型以后會存在相應(yīng)的關(guān)系。
本系統(tǒng)基于性能的考慮,并且大部分?jǐn)?shù)據(jù)從網(wǎng)絡(luò)獲取,所以只有少部分?jǐn)?shù)據(jù)需要存儲,即用戶信息、用戶的相關(guān)信息、微博、評論。本系統(tǒng)選擇SQLite數(shù)據(jù)庫存儲數(shù)據(jù)。建立數(shù)據(jù)庫sina_weibo.db,并且建立四張表t-user存儲用戶的個人授權(quán)認(rèn)證的數(shù)據(jù)。t-userEntry表用于儲存與用戶相關(guān)聯(lián)的一些數(shù)據(jù)。t-weibo表用于存儲與微博內(nèi)容相關(guān)的數(shù)據(jù)。t-comment表存儲評論內(nèi)容相關(guān)的數(shù)據(jù)。
2系統(tǒng)詳細(xì)功能實現(xiàn)
本應(yīng)用主要實現(xiàn)了四個主要模塊,包括應(yīng)用登錄模塊用戶可以使用授權(quán)配置和用戶注冊并且登錄系統(tǒng)。主界面顯示模塊用戶可以發(fā)表新的微博和通過昵稱搜索好友。微博瀏覽模塊進入瀏覽微博的詳細(xì)頁面,用戶可以評論微博和轉(zhuǎn)發(fā)微博。用戶模塊可以獲取用戶的詳細(xì)信息,可以查看該用戶的關(guān)注列表,話題列表,粉絲類表,和該用戶所發(fā)表的全部微博。
2.1登錄模塊實現(xiàn)
2.1.1用戶授權(quán)配置模塊
程序啟動,如果用戶是第一次使用該應(yīng)用,則需要跳轉(zhuǎn)到配置頁面,在用戶配置頁面用戶輸入新浪微博的用戶名和密碼,進行授權(quán)。如果用戶已經(jīng)通過了配置和授權(quán),則只需要選擇要登錄的用戶進行登錄。授權(quán)配置頁面如圖2所示。
2.1.2用戶登錄模塊
用戶在登錄本應(yīng)用時可以點擊屏幕中央的一個下拉框,在下拉框中選擇用戶要登錄的用戶,選中要登錄的用戶再點擊登錄按鈕就可以登錄新浪微博客戶端。用戶登錄頁面如圖3所示。
2.1.3主界面顯示模塊實現(xiàn)
在此功能模塊內(nèi),用戶可以點擊搜索按鈕進入搜索頁面,點擊發(fā)布新微博按鈕進入發(fā)表新微博頁面,點擊刷新按鈕刷新最新的微博列表,并且可以通過滾動鼠標(biāo)分頁顯示更多的微博信息。系統(tǒng)首頁如圖4所示:
3結(jié)論
本系統(tǒng)經(jīng)歷了從系統(tǒng)問題的提出,系統(tǒng)可行性分析,系統(tǒng)數(shù)據(jù)庫設(shè)計,總體的功能模塊設(shè)計,詳細(xì)設(shè)計,功能模塊的實現(xiàn),到最后的程序測試,就是以這樣的一個思路完成整個系統(tǒng)的開發(fā)。
參考文獻:
[1]楊豐盛.Android應(yīng)用開發(fā)揭秘[M].北京:機械工業(yè)出版社,2010:49-508.
[2]王世江,佘志龍,陳昱勛,等.GoogleAndroidSDK開發(fā)范例大全[M].3版北京:人民郵電出版社,2011:170-189.
[3]李剛.瘋狂Android講義[M].北京:電子工業(yè)出版社,2011:20-212.
[4]伯內(nèi)特.Android基礎(chǔ)教程[M].2版.北京:人民郵電出版社,2011:98-145.
[5]楊豐盛.Android技術(shù)內(nèi)幕:系統(tǒng)卷[M].北京:機械工業(yè)出版社,2011:309-402.
[6]韓超,梁泉.Android系統(tǒng)級深入開發(fā):移植與調(diào)試[M].北京:電子工業(yè)出版社,2011,234-327.
[7]??藸?Java編程思想[M].4版.北京:機械工業(yè)出版社,2007:560-698.
[8]布洛克.EffectiveJava中文版[M].2版.北京:機械工業(yè)出版社,2009:120-167.