一、ActivityTaskManagerService介绍
ActivityTaskManagerService是Android系统中的一个服务,它位于server/wm目录下。它是在Android 10中引入的,主要负责管理activities和activity相关容器,如task、stacks和display。它是Android系统中的一个关键组件,用于管理和控制应用程序的生命周期、任务栈、窗口和显示等。
ActivityTaskManagerService不在am目录下的原因是因为它是在Android 10中引入的新功能,用于管理activities和activity相关容器(task,stacks,display)。为了更好地组织代码和功能,Android团队将ActivityTaskManagerService放置在server/wm目录下,而不是放在server/am目录下。这样可以更清晰地区分和管理不同的服务和功能模块。通过将ActivityTaskManagerService与ActivityManagerService关联起来,可以更好地实现对activity的管理和控制。
二、ActivityTaskManagerService相关类和接口
IApplicationThread
System private API for communicating with the application.
用于与应用程序通信的系统专用 API。
IApplicationThread文件路径:
frameworks/base/core/java/android/app/IApplicationThread.aidl
IApplicationThread定义:
oneway interface IApplicationThread {}
IActivityTaskManager
System private API for talking with the activity task manager that handles how activities are managed on screen.
系统专用 API,用于与活动任务管理器通信,该任务管理器处理如何在屏幕上管理活动。
IApplicationThread文件路径:
frameworks/base/core/java/android/app/IApplicationThread.aidl
IApplicationThread定义:
interface IActivityTaskManager {}
ActivityTaskManagerService
ActivityTaskManagerService是Android系统中的一个服务,它位于server/wm目录下。它是在Android 10中引入的,主要负责管理activities和activity相关容器,如task、stacks和display。它是Android系统中的一个关键组件,用于管理和控制应用程序的生命周期、任务栈、窗口和显示等。
ActivityTaskManagerService文件路径:
frameworks/base/services/core/java/com/android/server/wm/ActivityTaskManagerService.java
ActivityTaskManagerService定义:
public class ActivityTaskManagerService extends IActivityTaskManager.Stub {}
ActivityTaskManagerService方法:
void startProcessAsync(ActivityRecord activity, boolean knownToBeDead, boolean isTop, String hostingType) :创建新的进程。
ActivityStartController
ActivityStartController用于委派Activit启动的控制器。此类的主要目标是接收外部Activit启动请求,并将它们准备成一系列可由ActivityStarter处理Activity启动。它还负责处理Activity启动时发生的逻辑,但不一定影响Activity启动。示例包括电源提示管理、处理挂起的Activity列表以及记录home Activity启动。
ActivityStartController文件路径:
frameworks/base/services/core/java/com/android/server/wm/ActivityStartController.java
ActivityStartController定义:
public class ActivityStartController {}
ActivityClientController
Server side implementation for the client activity to interact with system.
客户端活动与系统交互的服务器端实现。
ActivityClientController文件路径:
frameworks/base/services/core/java/com/android/server/wm/ActivityClientController.java
ActivityClientController定义:
class ActivityClientController extends IActivityClientController.Stub {}
ActivityStarter
Controller for interpreting how and then launching an activity.
ActivityStarter:是一个启动发射器,用于解析如何启动Activity。该类收集所有逻辑,用于确定如何将intent和标志转换为activity以及相关任务和根任务。
ActivityStarter文件路径:
frameworks/base/services/core/java/com/android/server/wm/ActivityStarter.java
ActivityStarter定义:
class ActivityStarter {}
ActivityRecord
An entry in the history task, representing an activity.
历史记录任务中的条目,表示活动。
ActivityRecord文件路径:
frameworks/base/services/core/java/com/android/server/wm/ActivityRecord.java
ActivityRecord定义:
final class ActivityRecord extends WindowToken implements WindowManagerService.AppFreezeListener {}
Task
Task是一个TaskFragment,可以包含一组用于执行特定作业的活动。
Task文件路径:
frameworks/base/services/core/java/com/android/server/wm/Task.java
Task定
class Task extends TaskFragment {}
TaskFragment
A basic container that can be used to contain activities or other {@link TaskFragment}, which also able to manage the activity lifecycle and updates the visibilities of the activities in it.
一个基本容器,可用于包含活动或其他 {@link TaskFragment},它还能够管理活动生命周期并更新其中活动的可见性。
TaskFragment文件路径:
frameworks/base/services/core/java/com/android/server/wm/TaskFragment.java
TaskFragment定义:
class TaskFragment extends WindowContainer<WindowContainer> {}
TaskDisplayArea
that represents a section of a screen that contains app window containers.
表示包含应用窗口容器的屏幕部分。
TaskDisplayArea文件路径:
frameworks/base/services/core/java/com/android/server/wm/TaskDisplayArea.java
TaskDisplayArea定义:
final class TaskDisplayArea extends DisplayArea<WindowContainer> {}
public class StartingSurfaceController {}
StartingSurfaceController
Managing to create and release a starting window surface.
管理创建和释放起始窗口图面。
StartingSurfaceController文件路径:
frameworks/base/services/core/java/com/android/server/wm/StartingSurfaceController.java
StartingSurfaceController定义:
public class StartingSurfaceController {}
RootWindowContainer
RootWindowContainer是Android系统中的一个类,它是窗口容器的根容器。它负责管理和处理多个屏幕和显示设备的情况,以确保多个窗口正确地显示在不同的屏幕上。
RootWindowContainer文件路径:
frameworks/base/services/core/java/com/android/server/wm/RootWindowContainer.java
RootWindowContainer定义:
class RootWindowContainer extends WindowContainer<DisplayContent>
implements DisplayManager.DisplayListener {}
三、ActivityTaskManagerService相关流程分析
ActivityTaskManagerService启动流程分析
Android13 ActivityTaskManagerService启动流程分析-CSDN博客
ActivityTaskManagerService startActivity流程分析
Android13 ActivityTaskManagerService startActivity流程分析-CSDN博客