Android輕量級框架XSnow

2021-08-07 15:13:45 字數 3645 閱讀 4112

如:

該類還提供了根據tag中斷單個網路請求以及中斷所有網路請求功能,也提供了根據key刪除快取和清除所有網路快取功能。必須注意的是,在應用初始化時必須呼叫該類的初始化方法

visehttp.init(this);
以及相關的網路配置

//配置請求主機位址

.baseurl("")

//配置全域性請求頭

.globalheaders(new hashmap<

string, string

>())

//配置全域性請求引數

.globalparams(new hashmap<

string, string

>())

//配置讀取超時時間,單位秒

.readtimeout(30)

//配置寫入超時時間,單位秒

.writetimeout(30)

//配置連線超時時間,單位秒

.connecttimeout(30)

//配置請求失敗重試次數

.retrycount(3)

//配置請求失敗重試間隔時間,單位毫秒

.retrydelaymillis(1000)

......;這樣才能在應用中呼叫相關的網路請求功能。如果沒有初始化,在呼叫網路請求時該模組會丟擲如下異常資訊:

切記!下面來分別講解該模組下每個包的功能:

該模組提供了幾種快取方式,分別是記憶體快取、磁碟快取以及sharedpreferences儲存。該模組主要思想是面向介面程式設計,提供了icache介面,主要包含新增快取、獲取快取、刪除快取、清除所有快取以及判斷是否包含該快取這幾個能力。下面將對每個快取方式做詳細的解釋說明:

該模組使用rx思想實現了rxbus功能,其bus的設計思想與eventbus類似。其主要由以下幾個核心類組成:

事件接收採用註解方式類進行管理,事件訂閱後依據註解來查詢對應的事件接收地。

該模組為了能將事件匯流排統一,定義了ibus介面,提供了如下四個方法:

void register(object object);

void unregister(object object);

void post(ievent event);

void poststicky(ievent event);

也提供了ievent介面,所有事件都實現該介面,這樣就可以將具體的事件實現類抽離,其實也是面向介面程式設計。

該模組針對載入做了二次封裝,面向介面程式設計,每個實現就是一種載入策略,預設採用glide載入框架,上層也可以依需自定義實現介面iloader,比如demo中提供的fresco框架的實現類frescoloader,其主要思想就是外掛程式化,外部可注入任何載入策略,這樣可達到高內聚低耦合。

介面中提供了如下四種載入的方式:

void loadnet(imageview target, string url, options options);
void loadresource(imageview target, int resid, options options);
void loadassets(imageview target, string assetname, options options);
void loadfile(imageview target, file file, options options);
預設的glide框架採用provided方式依賴,這樣就只是編譯時依賴,執行時不依賴,上層如果確定使用glideloader載入策略,那麼還需要自己使用compile進行依賴,這樣執行時才不會報錯,glideloader在初始化時也增加了如下驗證機制

try  catch (classnotfoundexception e)
如果沒有依賴glide庫則會丟擲異常。

該模組將greendao作為底層資料庫,定義了資料庫的操作介面idatabase,統一由dbmanager抽象類管理,由於每個實體類對應的dao不一樣,所以定義了抽象方法getabstractdao()。由於greendao的特殊性,該方法的實現類不能在框架中搭建,所有資料庫操作都可以參考demodbhedlper類實現自己的資料庫操作管理類,不同的dao實現對應的getabstractdao()方法就行。

該模組利用rx思想統一管理許可權的申請,一行**搞定許可權的申請問題。

permissionmanager.instance().with(this).request(onpermissioncallback, manifest.permission

.call_phone);

該模組很簡潔,就幾個類,下面分別對它們進行介紹:

permissionmanager.instance().with(this).request(new onpermissioncallback() 

@override

public

void

onrequestrefuse(string permissionname)

@override

public

void

onrequestnoask(string permissionname)

}, manifest.permission.call_phone);

該模組包含萬能介面卡和試圖切換功能。介面卡部分採用viewholder來管理資料的裝載和展示,將資料與展示分離,提供了datahelper介面來裝載資料,viewhelper介面來處理ui的展示。其中的helperadapter提供了介面卡的常用方法,基本能滿足介面卡的常用需求。 

檢視切換部分由statuslayoutmanager統一管理,通過傳入相關配置進行檢視展示處理。內部提供了onretrylistener重試監聽和onstatusviewlistener試圖切換監聽,並定義了乙個自定義檢視statuslayout用來展示以下五種檢視:

到此,xsnow框架的所有模組就介紹完畢了,不知各位朋友是否對該框架有了更深入的了解。

輕量級框架

1.概述 輕量級框架一般由struts,spring組成,側重於減小開發的複雜度,相應的它的處理能力便有所減弱 如事務功能弱 不具備分布式處理能力 比較適用於開發中小型企業應用。2.定義 輕量級框架是相對於重量級框架的一種設計模式 輕量級框架不帶有侵略性api,對容器也沒有依賴性,易於進行配置,易於...

輕量級Java框架

該專案是乙個輕量級mvc框架,重點實現了依賴注入和aop特性,適合需要學習這兩方面知識的人 依賴注入的實現 通過beanhelper 位於helper包中 獲取所有bean map 是乙個記錄了類與物件的對映關係的map,object 結構 遍歷這個對映關係,取出bean類與bean例項,通過反射獲...

輕量級框架優勢

整理自 輕量級框架是相對於重量級框架的一種不同的設計模式 輕量級框架相對於重量級框架的優勢 1.輕量級框架不帶有侵略性api,對容器也沒有依賴性 例如spring和ejb,ejb必須依賴容器,spring即使在cmd下也能跑,不需要類似tomcat這樣的容器 2.易於進行配置,易於通用,同時能夠被擴...