MVC, MVP, MVVM
不同的開發(fā)模式適用不同的場景,在復雜的業(yè)務場景下,Activity作為Controller層,顯得非常臃腫,代碼量大,邏輯復雜。同時View與Model也存在直接的交互關系。
隨之MVP誕生,Presenter層徹底將View與Model層隔離開來。當然需要編寫大量接口來實現(xiàn)解耦。代碼邏輯清晰,但代碼量也增加不少。
MVVM可以算是MVP的升級版,其中的VM是ViewModel的縮寫,ViewModel可以理解成是View的數(shù)據(jù)模型和Presenter的合體,ViewModel和View之間的交互通過Data Binding完成,而Data Binding可以實現(xiàn)雙向的交互,這就使得視圖和控制層之間的耦合程度進一步降低,關注點分離更為徹底,同時減輕了Activity的壓力。
淺談MVC、MVP、MVVM的區(qū)別
Android App的設計架構:MVC,MVP,MVVM與架構經(jīng)驗談
設計模式
常用模式:工廠模式、單例模式、構建器模式、裝飾模式,代理模式,外觀模式,模板模式
注意:裝飾模式、代理模式、外觀模式、代理模式區(qū)別
構建器模式:AlertDialog
代理模式:AIDL,Retrofit
模板模式:Activity,AsyncTask
裝飾模式:Context,ContextImpl,ContextWrapper,ContextThemeWrapper
Android CleanArchitecture
一種更清晰的Android架構
使用Clean Architecture模式開發(fā)Android應用的詳細教程
Clean架構探討
Android-Architecture之todo-mvp-clean
布局優(yōu)化,內存優(yōu)化,內存溢出
Andorid內存優(yōu)化還是比較重要一個話題,我們可以通過各種內存泄露檢測組件,MAT查看內存占用,Memory Monitor跟蹤整個App的內存變化情況, Heap Viewer查看當前內存快照, Allocation Tracker追蹤內存對象的來源,以及利用崩潰上報平臺從多個方面對App內存進行監(jiān)控和優(yōu)化。
Android 內存優(yōu)化總結&實踐
Android 性能優(yōu)化之String篇
Java常量池理解與總結
View的事件體系,View的工作流程
《Android開發(fā)藝術探索》——View事件體系
《Android開發(fā)藝術探索》——View事件分發(fā)機制
Activity啟動流程->Window創(chuàng)建過程->View的工作流程
Activity的attach方法中,實例化window的具體類PhoneWindow,給window實例設置 從系統(tǒng)服務中獲取的WindowManager對象,實例化WindowManagerImpl實例,獲取到WindowManagerGlobal對象,去addView。同時將ViewRoot和DecorView關聯(lián)起來。
了解RxJava、Dragger、Retrofit、OkHttp
關于 RxJava 最友好的文章—— RxJava 2.0 全新來襲
OkHttp3架構分析
Retrofit分析-漂亮的解耦套路
代碼混淆,打包
進程間通信,線程間通信
組件化、模塊化
將工程按照不同的屬性拆分成獨立的子工程,可以獨立編譯、運行、測試,發(fā)布,各組件之間互不影響。