eoe源碼解讀之旅-----網絡模塊的設計

網絡模塊設計思想

eoe裏的網絡訪問模塊都是經過靜態類的調用來實現的,來看分析一下簡單的設計過程。

首先是內容請求RequestCacheUtil類
這個類只有一個共有方法,就是getRequestContent這個拿內容的方法。這裏的方法都是一些靜態的方法,完成的簡單流程如下:在入口先判斷SD卡是否可用,然後確定緩存的目錄傳到下級,在getCacheRequest查看是否要拿緩存,如果不用直接從網絡中獲取,否則先看getStringFromSoftReference的軟緩存裏面有沒有緩存這個內容,如果有直接拿取返回上層。如果沒有就進入二級緩存本地,這個二級緩存使用Sqlite數據庫保存緩存的數據文件路徑,如果查詢到數據還要判斷一下文件時間是否過期,如果沒有過期返回上層使用,如果過期刪除緩存進入下一級網絡獲取。網絡獲取後更新三種緩存。

如圖:


如上圖getWeb的具體實現類類HttpUtils,也是一個靜態的類,主要包含以下功能:

CustomHttpURLConnection類具體實現以下兩個方法

postByHttpURLConnection             使用HttpURLConnection連接的Post方法請求
getByHttpURLConnection 使用HttpURLConnection連接的Get方法請求

CustomHttpClient類具體實現以下兩個方法
postByHttpClient         使用HttpClient連接的Post方法請求
getByHttpClient 使用HttpClient連接的Get方法請求

基於NetWorkHelper類來檢查網絡狀態

isMobileDataEnable 判斷mobile網絡是否可用
isWifiDataEnable 判斷wifi網絡是否可用
setMobileDataEnabled 設置Mobile網絡開關
isNetworkRoaming 判斷是否爲漫遊


類包的結構:


具體的代碼查看eoe的開源包,有錯誤請指正,有問題可以留言


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章