Activity启动流程分析

对Activity的启动和ActivityManager的源码进行了学习,看了代码之后感觉对流程和结构还是有些模糊,因此做了相应的ClassDiagram 和 SequenceDiagram。

ActivityManager采用了Proxy模式。为了让代理类(ActivityManagerProxy)与被代理类(AcitivityManagerService)保持一致的接口,从而实现更加灵活的类结构,或者说完美的屏蔽实现细节,通常的作法是让代理类与被代理类实现一个公共的接口(IActivityManager)。

Activity启动流程分析_第1张图片

Activity启动流程分析_第2张图片

根据网上说在startActivityLocked()函数里边会看到mWindowManager.setAppStartingWindow的语句调用,mWindowManager是WindowManagerService对象,用于负责界面上的具体窗口调试。不过我没发现有这个调用,以后有时间再深入学习。

你可能感兴趣的:(Android)