Android ActivityTaskManagerService

一、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博客

  • 22
    点赞
  • 29
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值