国产日韩欧美一区二区三区三州_亚洲少妇熟女av_久久久久亚洲av国产精品_波多野结衣网站一区二区_亚洲欧美色片在线91_国产亚洲精品精品国产优播av_日本一区二区三区波多野结衣 _久久国产av不卡

?

基于Android平臺的豆瓣網(wǎng)客戶端的設(shè)計與實現(xiàn)

2015-01-13 03:13宜昌市第七中學(xué)陳羽修
電子世界 2015年21期
關(guān)鍵詞:令牌客戶端界面

宜昌市第七中學(xué) 陳羽修

基于Android平臺的豆瓣網(wǎng)客戶端的設(shè)計與實現(xiàn)

宜昌市第七中學(xué) 陳羽修

豆瓣網(wǎng)是一個以生活文化為內(nèi)容的社區(qū)網(wǎng)站,提供圖書與影音作品信息及其他多種功能的服務(wù)。隨著Android智能手機(jī)的普及,加上Android操作系統(tǒng)強(qiáng)大的功能和開放性的特點,本文基于Android平臺及豆瓣網(wǎng),使用java語言設(shè)計并實現(xiàn)了豆瓣網(wǎng)手機(jī)客戶端,經(jīng)測試,該客戶端在Android手機(jī)上能正確有效的運行,具有一定的實用性。

Android;豆瓣網(wǎng);Java;智能手機(jī)

1  引言

Android是一種專為智能手機(jī)設(shè)計的操作系統(tǒng)平臺,除了操作系統(tǒng)以外,還包括中間件、手機(jī)應(yīng)用軟件、及Android SDK應(yīng)用開發(fā)組件,供開發(fā)人員開發(fā)Android平臺的應(yīng)用程序。目前Android限定所有的應(yīng)用程序用java語言來編寫。本文利用JDK、 Android SDK和eclipse相結(jié)合的開發(fā)環(huán)境實現(xiàn)了豆瓣網(wǎng)的手機(jī)客戶端,功能包括:首次登陸界面、豆瓣網(wǎng)客戶端授權(quán)、我說功能和友鄰廣播功能。

2  應(yīng)用開發(fā)環(huán)境介紹

Android開發(fā)環(huán)境搭建包括JDK、Eclipse、Android SDK、ADT的安裝以及AVD的創(chuàng)建,具體安裝內(nèi)容如下:

Java應(yīng)用程序開發(fā)環(huán)境JDK(Java Development Kit)安裝,安裝完成之后,檢查JDK是否安裝成功;

集成開發(fā)環(huán)境Eclipse安裝;

軟件開發(fā)工具包Android SDK(Software Development Kit)安裝,檢查SDK是否安裝成功;

集成開發(fā)環(huán)境插件ADT(Android Development Tools Plugin for the Eclipse IDE)安裝;

虛擬設(shè)備AVD(Android Virtual Devices),為使Android應(yīng)用程序可以在模擬器上運行,必須創(chuàng)建AVD,創(chuàng)建AVD完畢后,檢查測試環(huán)境是否搭建成功。

3  豆瓣網(wǎng)客戶端的設(shè)計思路與步驟

設(shè)計主要完成用戶第一次登錄界面,授權(quán)界面(用戶未登錄),用戶登錄界面,顯示“我說”界面,編輯框中輸入“我說”內(nèi)容,發(fā)送“我說”內(nèi)容。

3.1 認(rèn)證及訪問資源的流程

豆瓣網(wǎng)API通過以下四個步驟完成認(rèn)證授權(quán),并訪問或修改受限資源的流程。

步驟一:通過申請的apikey和他的私鑰來獲取未授權(quán)的請求令牌。

通過http://www.douban.com/service/auth/ request-token,獲取未授權(quán)的令牌。

步驟二:獲取請求令牌后請求用戶授權(quán)這個請求令牌。獲取請求令牌之后,需要請求用戶授權(quán)該請求令牌request token需要將瀏覽器跳轉(zhuǎn)到如下網(wǎng)站:http:// www.douban.com/service/oauth/authorize跳轉(zhuǎn)后,用戶會看到請求授權(quán)的頁面用戶可以選擇同意或拒絕授權(quán)。

步驟三:如果用戶授權(quán)了這個請求令牌,那么就用授權(quán)后的請求令牌換取訪問令牌用戶完成授權(quán)后第三方應(yīng)用可以通過訪問如下網(wǎng)址,將已授權(quán)的request token換取access token access token將被用于修改和訪問第三方應(yīng)用已完成授權(quán)http://www.douban.com/service/ auth/access-token。

步驟四:使用訪問令牌訪問或修改受保護(hù)的資源。獲得accesstoken后,用戶的應(yīng)用就可以使用accesstoken訪問或修改資源。

3.2 客戶端功能規(guī)劃設(shè)計

步驟一:用戶第一次登錄時程序會彈出一個對話框提示用戶。

步驟二:進(jìn)入認(rèn)證授權(quán)界面。

步驟三:顯示用戶登錄界面,提示輸入用戶名和密碼,用戶登錄后顯示API授權(quán)界面,單機(jī)確定完成授權(quán),完成授權(quán)后進(jìn)入顯示所有廣播界面,在編輯框里輸入“我說”的內(nèi)容,手機(jī)發(fā)送“我說”的內(nèi)容發(fā)送到服務(wù)器,并在手機(jī)屏幕上顯示出來。

3.3 數(shù)據(jù)存儲設(shè)計

需要存儲的主要有以下幾個數(shù)據(jù):請求令牌值、請求令牌對應(yīng)的密鑰、授權(quán)令牌值、授權(quán)令牌對應(yīng)的密鑰、用戶的id,這些數(shù)據(jù)直接存儲在Android提供的類SharePreference中。

4  豆瓣網(wǎng)客戶端的實現(xiàn)

4.1 首次登陸界面設(shè)計

類Activitymain的實現(xiàn),Activitymain繼承了Activity類,在Activitymain中實現(xiàn)用戶首次登陸界面,如果用戶登陸的話,會直接跳轉(zhuǎn)到顯示說說,部分實現(xiàn)代碼如下:

private void showAlertDialog() {

final AlertDialog alert = new AlertDialog.Builder(this).

create();

alert.setMessage(“這是您是第一次登陸,只需要進(jìn)行簡單的配置,您就可以正常使用啦:)”);

alert.setButton(“登陸”, new DialogInterface.

OnClickListener();

}

Acesstokenisvalid()函數(shù)判斷Acesstoken是否合法,如果用戶第一次登錄那么返回的false,表示acesstoken不合法。Showalertdialog()顯示用戶第一次登錄的提示框,程序跳轉(zhuǎn)到activityauth中。首次登陸如圖1所示:

圖1  首次登陸圖

4.2 獲取未授權(quán)的請求令牌并請求用戶授權(quán)的實現(xiàn)

主要實現(xiàn)了豆瓣網(wǎng)客戶端的授權(quán)過程的兩個步驟:

步驟一:獲取未授權(quán)的請求令牌;

步驟二:請求用戶授權(quán)。

在getrequest()函數(shù)里主要得到未授權(quán)的請求令牌和對應(yīng)的請求令牌密鑰并存儲到類SharePreference里。

4.3 授權(quán)令牌換取訪問令牌的實現(xiàn)

Activityauthsuccess的實現(xiàn),當(dāng)用戶在豆瓣網(wǎng)的授權(quán)界面單擊同意按鈕后Activiy跳轉(zhuǎn)到Activitysuccess,在這個Activity里主要完成豆瓣網(wǎng)授權(quán)的第三個步驟:使用授權(quán)后的令牌換取訪問令牌并保存用戶ID,部分實現(xiàn)代碼如下:

//保存token

private String saveAccessToken() {

myService = new DoubanService("subApplication",

DoubanUtil.apiKey, DoubanUtil.secret, true);

String url = myService.getAuthorizationUrl(DoubanUtil. callback);

settings = getSharedPreferences(PreferencesUtil. preferencesDouban, 0);

String requestToken = settings.getString(PreferencesUtil .oauthToken,"false");

String requestTokenSecret = settings.getString(Preferen cesUtil.oauthTokenSecret,

"false");

Log.i("jinyan", "requestToken=" + requestToken);

myService.setRequestToken(requestToken);

myService.setRequestTokenSecret(requestTokenSecret);

ArrayList<String> list = myService.getAccessToken();

String acessToken = list.get(0);

String acessTokenSecret = list.get(1);

Log.i("jinyan", "acessToken=" + acessToken);

Log.i("jinyan", "acessTokenSecret=" + acessTokenSecret);

settings.edit().putString(PreferencesUtil.acessToken, acessToken).putString(PreferencesUtil.acessTokenSecret, acessTokenSecret).commit();

return url;

}

在saveaccesstoken()里我們得到了訪問令牌和與之對應(yīng)的密鑰,并將其保存在SharePreference里,登陸界面如圖2所示。

圖2  登陸界面

4.4 “我說”功能和友鄰廣播功能實現(xiàn)

Activityshowsaying的實現(xiàn),為應(yīng)用中最核心的功能,實現(xiàn)豆瓣網(wǎng)中的“我說”功能和友鄰廣播功能,實現(xiàn)部分代碼如下:

public View getView(int position, View convertView, ViewGroup parent) {

SayingView sayingView;

Saying saying = sayingList.get(position);

if (convertView == null) {

sayingView = new SayingView(mContext, saying);

} else {

sayingView = (SayingView) convertView;

sayingView.setNickname(saying.nickname);

sayingView.setContent(saying.content);

}

return sayingView;

}

圖3  顯示“說說”

4.5 豆瓣網(wǎng)開放API的調(diào)用

主要完成Abstractactivity的實現(xiàn),Abstractactivity是一個抽象的Activity,其中Activityauthsuccess和Activityshowsaying繼承了這個Abstractactivity。在Abstractactivity實現(xiàn)后,通過獲得一個授權(quán)后的豆瓣網(wǎng)服務(wù),可以直接使用java豆瓣網(wǎng)庫的API來調(diào)用豆瓣網(wǎng)開放出來的API。

5  結(jié)論

本文基于Android開發(fā)環(huán)境,結(jié)合豆瓣網(wǎng)的API,采用Java語言編程,設(shè)計并實現(xiàn)了一個Android手機(jī)的應(yīng)用軟件豆瓣網(wǎng)客戶端。經(jīng)在手機(jī)上運行測試,該客戶端操作方便,運行結(jié)果正確,軟件性能好,連接速度快,具有一定的實用價值。

[1]Retour Meier.Android高級編程[M].北京:清華大學(xué)出版社,2010.

[2]郭宏志.Android應(yīng)用開發(fā)詳解[M].電子工業(yè)出版社,2010.

[3]楊豐盛.Android應(yīng)用開發(fā)揭秘[M].機(jī)械工業(yè)出版社,2010.

[4]韓超.Android系統(tǒng)移植開發(fā)概述[M].電子工業(yè)出版社,2011.

[5]張利國,代聞,龔海平.Android移動開發(fā)案例詳解[M].人民郵電出版社,2010.

[6]楊文志.google android程序設(shè)計指南[M].電子工業(yè)出版社,2009.

[7]楊豐盛.a(chǎn)ndroid應(yīng)用開發(fā)揭秘[M].機(jī)械工業(yè)出版社,2010.

[8]郭本?。苿榆浖_發(fā)技術(shù)[M].中國水利水電出版社,2010.

[9]李鐘尉,周小彤,陳丹丹.Java從入門到精通[M].清華大學(xué)出版社,2010.

[10]閆迎利.Java編程[M].清華大學(xué)出版社,2010.

[11]劉培文.Java程序設(shè)計教程[M].中國人民大學(xué)出版社,2009.

[12]Y.Daniel Liang.Introduction to Java Programming[M].機(jī)械工業(yè)出版社,2008.

陳羽修(1998-),湖北宜昌人,現(xiàn)就讀于宜昌市第七中學(xué)。

猜你喜歡
令牌客戶端界面
稱金塊
國企黨委前置研究的“四個界面”
基于路由和QoS令牌桶的集中式限速網(wǎng)關(guān)
如何看待傳統(tǒng)媒體新聞客戶端的“斷舍離”?
動態(tài)令牌分配的TCSN多級令牌桶流量監(jiān)管算法
縣級臺在突發(fā)事件報道中如何應(yīng)用手機(jī)客戶端
孵化垂直頻道:新聞客戶端新策略
大樞紐 云平臺 客戶端——中央人民廣播電臺的探索之路
基于FANUC PICTURE的虛擬軸坐標(biāo)顯示界面開發(fā)方法研究
人機(jī)交互界面發(fā)展趨勢研究