Context
classDiagram
class Context {
<>
}
class ContextImpl
class ContextWrapper
ContextImpl --|> Context
ContextWrapper --|> Context
ApplicationContext --|> Context
note for ContextThemeWrapper "A context wrapper that allows you to modify or replace the theme of the
wrapped context."
class ContextThemeWrapper {
+ setTheme(Theme theme)
}
class Activity
ContextThemeWrapper --|> ContextWrapper
Application --|> ContextWrapper
Service --|> ContextWrapper
class WindowProvider {
<>
+ int getWindowType()
+ Bundle getWindowContextOptions()
}
WinodowContext --|> ContextWrapper
WinodowContext --|> WindowProvider
WindowProviderService --|> WindowProvider
AbstractInputMethodService --|> WindowProviderService
Activity --|> ContextThemeWrapper
Activity启动流程
sequenceDiagram Activity ->> Instrumenttation: execStartActivity Instrumenttation ->> ActivityTaskManagerService: startActivityAsUser ActivityTaskManagerService ->> ActivityStarter: execute ActivityStarter ->> ActivityStarter: executeRequest ActivityStarter ->> ActivityStarter: startActivityUnchecked ActivityStarter ->> ActivityStarter: startActivityInner ActivityStarter ->> RootTask: startActivityLocked RootTask ->> StartingSurfaceController: showStartingWindow StartingSurfaceController ->> ActivityRecord: showStartingWindow ActivityRecord ->> ActivityRecord: addStartingWindow ActivityRecord ->> ActivityRecord: createSnapshot ActivityRecord ->> ActivityRecord: scheduleAddStartingWindow
最近任务启动流程
sequenceDiagram ActivityTaskManagerService ->> ActivityTaskSupervisor: startActivityFromRecents ActivityTaskSupervisor ->> RootWindowContainer: anyTaskForId RootWindowContainer ->> ActivityTaskSupervisor: restoreRecentTaskLocked ActivityTaskSupervisor ->> RootWindowContainer: getOrCreateRootTask RootWindowContainer ->> TaskDisplayArea: getOrCreateRootTask ActivityTaskSupervisor ->> ActivityStartController: startActivityInPackage ActivityStartController ->> ActivityStarter: startActivityInner ActivityStarter ->> ActivityStarter: getOrCreateRootTask ActivityStarter ->> RootWindowContainer: getOrCreateRootTask RootWindowContainer ->> TaskDisplayArea: getOrCreateRootTask
Activity启动流程
sequenceDiagram ActivityThread ->> ActivityThread: handleLaunchActivity ActivityThread ->> Instrumentation: newActivity Instrumentation ->> Activity: attach Note over ActivityThread,Instrumentation: 实例化Activity ActivityThread ->> LoadedApk: makeApplicationInner ActivityThread ->> Instrumentation: callActivityOnCreate Instrumentation ->> Instrumentation: prePerformCreate Instrumentation ->> Activity: performCreate Activity ->> Activity: onCreate Instrumentation ->> Instrumentation: postPerformCreate LocalActivityManager ->> ActvivityThread: performResumeActivity ActivityThread ->> Activity: handleResumeActivity ActivityThread ->> Activity: performResume Activity ->> Activity: performRestart Activity ->> Activity: callActivityOnStart
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来源 BravestSnail's Blog!