Activity啟動過程全解析

2022-08-03 06:51:12 字數 1200 閱讀 1846

幾個系統關鍵物件:

systemserver也是乙個程序,而且是由zygote程序fork出來的。系統裡面重要的服務都是在這個程序裡面開啟的,比如 activitymanagerservice、packagemanagerservice、windowmanagerservice等等

在zygoteinit.main()進行初始化 -->startsystemserver-->

zygote.forksystemserver

activitymanagerservice,簡稱ams,服務端物件,負責系統中所有activity的生命週期。activitymanagerservice進行初始化的時機很明確,就是在systemserver程序開啟的時候,就會初始化activitymanagerservice

systemserver.run()中有四個重要方法

1.createsystemcontext();

建立系統上下文,完成了msystemcontext和activitythread的建立

2.startbootstrapservices()
初始化activitymanagerservice,初始化powermanagerservice,初始化powermanager,初始化displaymanagerservice,初始化packagemanagerservice
3.startcoreservices()

4.startotherservices()

這是系統程序開啟時的流程,在這之後,會開啟系統的launcher程式,完成系統介面的載入與顯示.

ams是董事會,負責指揮和排程的

activitythread是老闆,雖然說家裡的事自己說了算,但是需要聽從ams的指揮

而instrumentation則是老闆娘,負責家裡的大事小事,但是一般不拋頭露面,聽一家之主activitythread的安排。

Activity啟動過程

activity.startactivty instrumentation 的 execstartactivity方法 activitymanagernative.getdefault startactivity 在其中得到activitymanagerservice ams 的binder並在am...

activity 的啟動過程

1 handler h 對launch activity 這個訊息處理可以得到,activity 的啟動過程由activitythread 的 handlelaunchactivity 方法實現。2 從activityclientrecord 獲取啟動的activity 的組建資訊。3 通過 ins...

Linux 啟動過程與啟動目錄解析

linux啟動過程 redhat的啟動方式和執行次序是 載入核心 執行init程式 etc rc.d rc.sysinit 由init執行的第乙個指令碼 etc rc.d rc runlevel runlevel為預設的執行模式 etc rc.d rc.local sbin mingetty 等待使...