:x進程啟動時序圖
:x進程是VirtualApp所有虛擬服務所在的進程,模擬了大部分的系統服務,以供插件(虛擬App)調用。下面便是:x進程啟動時序圖。點此鏈接可查看高清svg圖::x進程啟動時序圖

過程分拆:
1、在啟動主應用閃屏的時候,調用VirtualCore的waitForEngine方法。
2、waitForEngine方法僅做了一件事,就是調用了ServiceManagerNative的ensureServerStarted方法。
3、注意這個ensureServerStarted方法,它訪問:x進程的BinderProvider的call方法,從而使得:x進程啟動起來。
4、BinderProvider啟動時會回調onCreate方法,在其中啟動后臺的DaemonService,保持:x進程不被系統殺死。然后初始化各個模擬的系統服務,如VPackageManagerService、VUserManagerService、VActivityManagerService、VAppManagerService、VNotificationManagerService、VAccountManagerService等,并注冊到ServiceCache中。
5、VirtualApp是支持多用戶的,其中VAppManagerService會調用UidSystem的initUidList方法來加載uid文件,得出每個插件包名和uid的對應關系,以及下一個可用的uid。