Activity源碼簡要分析總結


 

Activity源碼簡要分析總結

 

  摘自參考書籍,只列一下結論:

  1. Activity的頂層View是DecorView,而我們在onCreate()方法中通過setContentView()設置的View只不過是這個DecorView中的一部分。

  DecorView是一個FrameLayout。

  2. Activity和UI 有關,它包含一個Window(真實類型是PhoneWindow)和一個WindowManager(真實類型是LocalWindowManager)對象。這兩個對象將控制整個Activity的顯示。

  3. LocalWindowManager使用了WindowManagerImpl作為最終的處理對象(Proxy模式),這個WindowManagerImpl中有一個ViewRoot對象。

  4. ViewRoot實現了ViewParent接口,它有兩個重要的成員變量,一個是mView,它指向Activity頂層UI單元的DecorView,另外一個是mSurface,這個Surface包含了一個Canvas(畫布)。

  除此之外,ViewRoot還通過Binder系統和WindowManagerService進行了跨進程交互

  5.ViewRoot能處理Handler的消息,Activity的顯示就是由ViewRoot在它的performTraversals()方法中完成的。

  6. 整個Activity的繪圖流程就是從mSurface中lock()一塊Canvas,然后交給mView去繪制,最后unlockCanvasAndPost()釋放這塊Canvas。

 

參考資料

  《深入理解Android 卷I》 鄧凡平 著


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM