文件:/ frameworks / base / services / core / java / com / android / server / wm / WindowState.java 能看到實際上這個過程誕生了一個很重要的對象InputWindowHandle,輸入窗口的句柄。
創新互聯專業為企業提供文登網站建設、文登做網站、文登網站設計、文登網站制作等企業網站建設、網頁設計與制作、文登企業網站模板建站服務,10年文登做網站經驗,不只是建網站,更提供有價值的思路和整體網絡服務。
Activity啟動流程(從Launcher開始):第一階段: Launcher通知AMS要啟動新的Activity(在Launcher所在的進程執行)第二階段:AMS先校驗一下Activity的正確性,如果正確的話,會暫存一下Activity的信息。
啟動者Activity向Instrumentation請求啟動目標的Activity。 Instrumentation通過AMS在App進程的IBinder接口(IActivityManager)訪問AMS,此時App進程會阻塞等待AMS的調用返回,采用的跨進程通信技術是AIDL。
啟動Activity的消息,會回調到ActivityThread中的mH的dispatchMessage方法,可以通過給mH設置一個callBack,在callBack的handleMessage中,然后替換回真正要啟動的Intent,然后返回false,讓handleMessage再繼續處理。
ATM啟動最終調用的是ActivityTaskManagerService.Lifecycle.onStart()來啟動ATM服務的 源碼:ActivityTaskManagerService.java#Lifecycle.class 將ActivityTaskManagerInternal添加到本地服務的全局注冊表中。
Activity的四種啟動模式: standard 模式啟動模式,每次激活Activity時都會創建Activity,并放入任務棧中。
:startActivity 主要就是應用進程與 system_server 進程的 AMS 通信,AMS 是實際來管理 Activity 組件的,負責處理啟動模式,維護 Activity 棧等工作。
1、在 ActivityStarter. executeRequest 方法中先做一系列的檢查,包括調用進程的檢查、Intent的檢查、權限的檢查、向PKMS獲取啟動Activity的ActivityInfo等信息,然后調用 startActivityUnchecked 方法開始對要啟動的Activity做堆棧管理。
2、前面realStartActivityLocked方法中通過addCallback,傳入參數LaunchActivityItem。
3、Activity啟動流程分兩種,一種是啟動正在運行的app的Activity,即啟動子Activity。如無特殊聲明默認和啟動該activity的activity處于同一進程。如果有聲明在一個新的進程中,則處于兩個進程。
4、:startActivity 主要就是應用進程與 system_server 進程的 AMS 通信,AMS 是實際來管理 Activity 組件的,負責處理啟動模式,維護 Activity 棧等工作。
5、啟動Activity的消息,會回調到ActivityThread中的mH的dispatchMessage方法,可以通過給mH設置一個callBack,在callBack的handleMessage中,然后替換回真正要啟動的Intent,然后返回false,讓handleMessage再繼續處理。
點擊桌面圖標后,Launcher進程訪問AMS進程請求啟動目標Activity,采用的跨進程方式是AIDL。2 AMS進程訪問Zygote進程請求啟動一個新的進程。采用的跨進程方式是Socket。3 Zygote進程通過調用fork函數創建一個App進程。
AMS主要功能: AMS是Android中最核心的服務,主要負責系統中四大組件的啟動、切換、調度及應用進程的管理和調度等工作。還負責啟動或殺死應用程序的進程。WMS主要功能: 為所有窗口分配Surface。
統一調試應用程序的Activity。應用程序要運行Activity,首先會報告給AmS,然后由AmS決定該Activity是否啟動。內存管理。
scheduleServiceArg()方法最終通過調用handleServiceArgs()方法,回調Service.onStartCommand()方法。至此,Service的啟動過程分析完畢。
(四)具體流程 Launcher:Launcher通知AMS要啟動activity。startActivitySafely-startActivity-Instrumentation.execStartActivity()(AMP.startActivity)-AMS.startActivity AMS:PMS的resoveIntent驗證要啟動activity是否匹配。
文章標題:android應用啟動流程 android 應用啟動流程
本文網址:http://m.newbst.com/article1/dipopid.html
成都網站建設公司_創新互聯,為您提供App開發、建站公司、網站設計公司、用戶體驗、網站維護、企業網站制作
聲明:本網站發布的內容(圖片、視頻和文字)以用戶投稿、用戶轉載內容為主,如果涉及侵權請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網站立場,如需處理請聯系客服。電話:028-86922220;郵箱:631063699@qq.com。內容未經允許不得轉載,或轉載時需注明來源: 創新互聯