MVC:
model 網(wǎng)絡(luò)io文件io業(yè)務(wù)模型
controller和view 都是activity
缺點: 業(yè)務(wù)復雜時activity龐大臃腫
MVP:
activity代表view嫉称,不處理業(yè)務(wù)邏輯
presenter 中間紐帶一忱,處理業(yè)務(wù)邏輯违孝,避免model直接操作view
特點:通過交互接口巷折,交互都發(fā)生在presenter描孟。
優(yōu)點:將業(yè)務(wù)邏輯從activity分離。降低activity臃腫泪蔫。方便單元測試蹦狂。
缺點:業(yè)務(wù)復雜可能導致presenter臃腫大量接口磨总。業(yè)務(wù)改動接口也需要改動嗦明。
okhttp流程:
EventBus:
register獲取當前類,類作為key蚪燕,訂閱方法合并為list作為values娶牌,存儲為map
post消息時奔浅,根據(jù)key獲取list,循環(huán)加入隊列诗良,隊列獲取每項反射調(diào)用方法
unregister汹桦,移除map內(nèi)的相關(guān)信息
Dagger2:
控制反轉(zhuǎn)IOC/依賴注入DI框架〖框架調(diào)控對象賦值
作用:管理類實例舞骆、解耦
比較知名的依賴注入框架有Spring
Retrofit2:
通過動態(tài)代理生成接口的實體對象,通過注解獲取請求的信息
返回的response通過converterFactorty轉(zhuǎn)換成相應(yīng)的數(shù)據(jù)model径荔,通過calladapter轉(zhuǎn)換成其他數(shù)據(jù)類型
NestedScrolling機制:
NestedScrollingChild_startNestedScroll督禽、stopNestedScroll、dispatchNestedScroll
NestedScrollingParent_onStartNestedScroll猖凛、onStopNestedScroll赂蠢、onNestedScroll绪穆、onNestedFling
NestedScrollingParentHelper辨泳、NestedScrollingChildHelper
事件分發(fā)機制:
app啟動流程:
啟動activity window流程
AMS啟動過程