生活随笔
收集整理的這篇文章主要介紹了
简述APP启动流程
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
啟動App,通常是啟動該App的一個Activity,一般是主Activity.用戶從Launcher程序點擊應用圖標可啟動應用的入口Activity,Activity啟動時需要多個進程之間的交互AMS進程實際上是SystemServer進程,因為AMS只是SystemServer啟動的一個服務而已,運行在SystemServer的某個線程中。用戶在Launcher程序里點擊應用圖標時,會通知ActivityManagerService啟動應用的主Activity,ActivityManagerService發現這個應用還未啟動,則會通知Zygote進程孵化出應用進程,然后在這個新孵化的應用進程里執行ActivityThread的main方法。應用進程接下來通知ActivityManagerService應用進程已啟動,ActivityManagerService保存應用進程的一個代理對象,這樣ActivityManagerService可以通過這個代理對象控制應用進程,然后ActivityManagerService通知應用進程創建主Activity的實例,并執行它的生命周期方法,也就是諸如OnCreadte()等方法。Launcher 使用一個帶有 Intent.FLAG_ACTIVITY_NEW_TASK flag 的 Intent,調用 startActivity 方法來啟動App.ActivityThread.main方法是App執行代碼的總入口點普通Activity啟動與Launcher少了第一步,Launcher程序向ams發送消息
總結
以上是生活随笔為你收集整理的简述APP启动流程的全部內容,希望文章能夠幫你解決所遇到的問題。
如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。