一種Android資料請求架構,android請求架構

來源:互聯網
上載者:User

一種Android資料請求架構,android請求架構

大部分Android應用一般都涉及到跟伺服器的互動,除非是某些單機應用。既然要跟伺服器打交道,向伺服器請求資料幾乎是必做的事情,也許每家的APP都有一套自己的具體實現邏輯,但我們還是可以抽象出來一個通用的資料請求架構。

先:


我們來具體分析一下,首先豎直虛線左側是Android用戶端,右側是伺服器、後台資料庫。

左側圖中,3個灰色的模組就是Android中的MVC(詳細介紹請參考之前的一篇文字《Android中的MVC模式簡介》),其中Activity或Fragment充當了Controller的角色。接下來我們詳細介紹下具體的步驟:

1.在Android應用中,使用者一般都通過View來互動,比如點擊某個按鈕調用介面請求資料,或者對ListView進行下拉重新整理等,所以很多時候我們是通過View來告訴Controller需要請求資料,當然也有例外的情況,比如當載入某個Activity時就需要先請求資料,此時不需要第1步的通過View來觸發請求。

2.這一步比較簡單,就是向伺服器發送http請求,在Android應用中,一般都是通過http的方式來請求資料的,請求過程中附帶必要參數,為了防止ANR,此操作包或後續的3、4、5步都應當在子線程中實現。

3.伺服器向用戶端返回資料,通常就是輕量級的易傳輸的JSON格式,當然也有使用XML格式的。

4.用戶端拿到JSON格式的返回結果後,我們並不能直接使用,需要使用一個解析器Parser,把JSON資料解析成我們需要的資料模型,即得到Models。在這裡,如果是某些特殊的資料或者產品需求,可以對資料做緩衝處理,當網路異常或者下次不想連網請求資料時,我們可以直接從Cache中拿資料來使用。

5.當資料被解析成Models之後,Controller就可以使用它來更新視圖了,解析資料完成後,一般都會設定一種機制來通知Controller,方法有很多,比如Android的訊息機制。

6.最後一步是Controller使用Models中的資料來更新View,需要注意的是必須在UI線程來執行。

資料請求架構大概就是這樣,比較清楚的一個邏輯。我們請求的資料中不可避免地會有圖片資料,那麼圖片如何下載、如何做緩衝,又是一個很大的問題,在這裡先總結這個總體的資料請求架構,後續會總結一下關於圖片下載、緩衝、載入的架構。



對於在Android架構中增加service

照葫蘆畫瓢唄,你看看framework/base/services/java/com/android/server/下的例子。一般一個server由xxxxService.java xxxxManager.java IxxxxManager.aidl組成。Manager和aidl在frameworks/base/core/java/android/。如果是要系統啟動時就運行,則需要在SystemServer.java中加上啟動你的Service的代碼。
 
android C/S模式應用系統怎搭建架構?

我來簡單的說下,讓你容易理解:
1.系統物理架構
android用戶端------無線路由-------(web伺服器,資料庫)
2.技術選型
(android用戶端)--->Web伺服器(tomcat)--->資料庫(mysql等)
用戶端請求資料成功後,返回資料(可以通過Web Service、HTTP等方式進行網路通訊)
(android用戶端)<---Web伺服器(tomcat)<-->資料庫(mysql等)
3.建立用戶端項目WirelessClient(到時安裝在手機端)和伺服器項目WirelessServer(安裝在web伺服器端PC機)。之後分別開發這兩端的項目,手機端用android的API,伺服器端用Java開發

這樣可以協助你簡單的理解了嗎?
 

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.