幾個系統關鍵物件:
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 等待使...