总体架构

ActivityManagerService相关

由图可以知道ActivityManagerService的体系实现也是一个Binder机制的实现。因为ActivityManagerService与应用程序运行在不同的进程,
所以需要跨进程通信。 ActivityManagerService的作用是管理四大组件的创建,销毁以及生命周期的管理。管理,记录,查询。

启动service的流程

ActivityManagerService相关

ContextWrapperContextImpl是典型的装饰者设计模式。 经过一系列方法调用,
最终在ActivityManagerService的方法realStartServiceLocked中调用了Service所在进程的scheduleCreateService方法。
也标志着ActivityManagerService所在进程做的事情已经做完了,事情做完指的是各种校验及记录功能完成。
将交由Service所在进程创建Service对象等等操作。最后通过反射创建对象的代码在ActivityThreadhandleCreateService方法。并在此方法中执行ServiceonCreate方法。Service启动完成了。

activity启动的流程

ActivityManagerService相关
流程跟Service是差不多的, 都是先由app所在进程调用ActivityManagerService的方法, ActivityManagerService经过校验和记录之后, 调用app所在进程的方法,创建Activity对象,回调onCreate方法。

相关文章: