版權(quán)聲明:本文為博主原創(chuàng)文章,未經(jīng)博主允許不得轉(zhuǎn)載。http://www.lxweimin.com/p/23b9ba9b685d
轉(zhuǎn)載請標(biāo)明出處:
http://www.lxweimin.com/p/23b9ba9b685d
本文出自 AWeiLoveAndroid的博客
【前言】很多人在開發(fā)中使用了大量的第三方的庫,或者自己封裝的庫,很多庫都是需要在Application里面配置的,如果配置過多,導(dǎo)致Application過于臃腫,代碼不好維護(hù),可讀性比較差。下面是我寫的一個(gè)簡單的庫,幫你快速解耦A(yù)pplication,讓你的Application顯得更簡潔,更好維護(hù)。
使用場景: Application里面配置的過多的時(shí)候,可以使用這個(gè)庫。
注意事項(xiàng):
1.目前只適用于普通開發(fā),組件化插件化沒做兼容處理。
2.線程切換也沒做考慮,因?yàn)橐话愕牡谌綆斓氖褂没径际窃谥骶€程,所以沒做線程切換,后續(xù)有時(shí)間會慢慢完善的。
3.進(jìn)程有關(guān)的也沒做處理,因?yàn)槟壳坝玫降娜綆鞗]有這方面的需求,所以沒考慮這一塊。
1.首先來一張調(diào)用的圖,如下,是不是很簡單:
調(diào)用方式
2.下面看一下ApplicationHelper這個(gè)類做了什么事情:
這是一個(gè)單例的類,調(diào)用init方法傳入上下文,然后調(diào)用init開頭的方法,比如initNetWork()就表示初始化網(wǎng)絡(luò)操作的一些邏輯。
ApplicationHelper這個(gè)類簡單介紹
3.ApplicationHelper實(shí)現(xiàn)了IInitMethods接口,這個(gè)接口主要用來規(guī)范有哪些邏輯要處理,它是初始化的所有方法的頂層接口,用于規(guī)范有哪些邏輯需要做,比如網(wǎng)絡(luò)庫,圖片庫等。
IInitMethods接口
4.ApplicationHelper類調(diào)用了InitWrapperImpl這個(gè)類,通過InitWrapperImpl.getInstance()返回一個(gè)實(shí)例對象,然后調(diào)用了init(mContext)方法,傳入一個(gè)上下文,最后調(diào)用execute(XX,XX,XX)執(zhí)行庫的初始化的具體操作。
InitWrapperImpl這個(gè)類的一個(gè)簡單說明
5.InitWrapperImpl這個(gè)類里面用到了常量類Contants,主要保存type類型,和庫的名字的信息。
常量類Contants
6.InitWrapperImpl這個(gè)類它是實(shí)現(xiàn)了IInitWrapper接口,規(guī)范了具體的執(zhí)行過程公用的一些接口方法。
IInitWrapper接口
到此,這個(gè)庫基本就介紹完了,是不是很簡單?想要源碼的可以下面的鏈接獲取。
ApplicationHelper這個(gè)庫,輕松實(shí)現(xiàn)Application的隔離型框架