Android4.4 Framework分析——Activity視窗的建立過程(一)

來源:互聯網
上載者:User

標籤:activity視窗建立   gui   

學習android的視窗模組一周多了,感覺自己對這個模組的理解還是比較模糊,先把get的知識點記錄一下。

是學習過程記錄的activity視窗啟動過程式列圖,沒有或者沒辦法完整的描繪出來,整個過程比較複雜:


整個學習過程中是參照老羅的android之旅部落格和《深入理解android核心設計思想》一書來輔助的,非常感謝前輩。

Activity的整體啟動過程可查看Android4.4 framework分析——Launcher中啟動應用程式(startActivity)的過程的順序圖表,本文關注Activity視窗建立細節部分(也許不夠細)。

step3~step13,是Activity上下文Context的建立過程,Activity本身是Context的間接子類,而此處建立的ContextImpl與它們的關係,可查看Android與設計模式——裝飾者(Decorator)模式一文。step3~step13的詳細分析,建議查看老羅的Android應用程式視窗(Activity)的運行上下文環境(Context)的建立過程分析,這篇文章寫的比較詳細。

step14~step16,是PhoneWindow的建立,我們標題提到的Activity視窗其實就是這個,所有的View都是在這window上建立起來的。

step19~step22,是WindowManager的建立過程。

step24~step33,是DecorView的建立過程,這個DecorView後面會被add到PhoneWindow裡。

step40~step42,XXXActivity的onResume()的調用過程,標誌著這個activity要被顯示出來了。

step47,開始將視窗添加到WMS中。

step50,ViewRootImpl建立了。

step51~step57,將window與WMS關聯起來了,WMS中將會記錄這個window的相關資訊。

step63,將逐步將我們在xml檔案中的布局添加到ViewRootImpl中。


後面會用SurfaceFlinger來關聯Surface之類的,這部分C++代碼不太理解,整個過程還有不少地方需要加深理解,繼續啃代碼。。。。


右鍵複製圖片地址,在瀏覽器中開啟即可查看大圖。

未完待續,有不對的地方,請指正。



Android4.4 Framework分析——Activity視窗的建立過程(一)

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.