[Android]Activity启动过程
生活随笔
收集整理的這篇文章主要介紹了
[Android]Activity启动过程
小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.
Android系統(tǒng)啟動加載流程:
參考圖
- Linux內(nèi)核加載完畢
- 啟動init進(jìn)程
- init進(jìn)程fork出zygote進(jìn)程
- zygote進(jìn)程在ZygoteInit.main()中進(jìn)行初始化的時候fork出SystemServer進(jìn)程
- SystemServer進(jìn)程開啟的時候初始化ActivityThread和ActivityManagerService(其它還有PowerManagerService,DisplayManagerService,PackageManagerService)
- 啟動Launcher,Launcher本質(zhì)上也是一個App,繼承自Activity
App與AMS通過Binder進(jìn)行IPC通信
啟動一個Activity
客戶端:ActivityManagerProxy --> Binder驅(qū)動 --> ActivityManagerService:服務(wù)器
- ActivityThread
老板,雖然說家里的事自己說了算,但是需要聽從AMS的指揮 - Instrumentation
老板娘,負(fù)責(zé)家里的大事小事,但是一般不拋頭露面,聽一家之主ActivityThread的安排,每個Activity都有一個Instrumentation引用,整個進(jìn)程只有一個Instrumentation實(shí)例 - ActivityManagerProxy
ActivityManagerNative.getDefault().startActivity獲取ActivityManagerProxy對象通過Binder IPC與AMS通信 - AMS
真正啟動一個Ativity(ActivityStackSupervisor, ActivityStack)
Resume一個Activity
客戶端:ApplicationThread <-- Binder驅(qū)動 <-- ApplicationThreadProxy:服務(wù)器
- AMS
- ApplicationThreadProxy
ApplicationThreadProxy對象通過Binder IPC與客戶端通信。 - ApplicationThread
- Handler
- ActivityThread
- Activity
調(diào)用onResume方法
AMS(SystemServer進(jìn)程)與zygote通過Socket進(jìn)行IPC通信
參考:http://blog.csdn.net/zhaokaiqiang1992/article/details/49428287
總結(jié)
以上是生活随笔為你收集整理的[Android]Activity启动过程的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 基于Nexys4 DDR的温度数码管实时
- 下一篇: 基于Nexys4 DDR的弹球游戏实现