VirtualApp拆解之一::x进程

: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。




最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容