• 
    

    
    

      99热精品在线国产_美女午夜性视频免费_国产精品国产高清国产av_av欧美777_自拍偷自拍亚洲精品老妇_亚洲熟女精品中文字幕_www日本黄色视频网_国产精品野战在线观看 ?

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

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

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

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

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

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

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

      1  引言

      Android是一種專為智能手機設(shè)計的操作系統(tǒng)平臺,除了操作系統(tǒng)以外,還包括中間件、手機應(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)的手機客戶端,功能包括:首次登陸界面、豆瓣網(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。

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

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

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

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

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

      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(“這是您是第一次登陸,只需要進行簡單的配置,您就可以正常使用啦:)”);

      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手機的應(yīng)用軟件豆瓣網(wǎng)客戶端。經(jīng)在手機上運行測試,該客戶端操作方便,運行結(jié)果正確,軟件性能好,連接速度快,具有一定的實用價值。

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

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

      [3]楊豐盛.Android應(yīng)用開發(fā)揭秘[M].機械工業(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].機械工業(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].機械工業(yè)出版社,2008.

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

      猜你喜歡
      令牌客戶端出版社
      內(nèi)卷
      科教新報(2024年4期)2024-03-17 09:48:21
      稱金塊
      我等待……
      讀者(2021年5期)2021-02-05 02:52:39
      基于路由和QoS令牌桶的集中式限速網(wǎng)關(guān)
      動態(tài)令牌分配的TCSN多級令牌桶流量監(jiān)管算法
      計算機工程(2018年8期)2018-08-17 00:26:54
      縣級臺在突發(fā)事件報道中如何應(yīng)用手機客戶端
      傳媒評論(2018年4期)2018-06-27 08:20:24
      孵化垂直頻道:新聞客戶端新策略
      傳媒評論(2018年4期)2018-06-27 08:20:16
      基于Vanconnect的智能家居瘦客戶端的設(shè)計與實現(xiàn)
      電子測試(2018年10期)2018-06-26 05:53:34
      今日華人出版社有限公司
      石油工業(yè)出版社
      全國新書目(2014年7期)2014-09-19 20:45:40
      咸阳市| 南雄市| 盱眙县| 台中市| 黎川县| 通化县| 乐都县| 两当县| 新丰县| 河西区| 鹤峰县| 惠水县| 潜山县| 泸州市| 聂拉木县| 安达市| 宁陵县| 安多县| 澳门| 达拉特旗| 上林县| 瓦房店市| 东台市| 阿克苏市| 兴安县| 三台县| 蓝田县| 长沙市| 祁阳县| 唐山市| 凤庆县| 大港区| 白河县| 连州市| 丹江口市| 兰西县| 阿瓦提县| 临泉县| 栾城县| 金川县| 韶山市|