返回介绍

主要对象功能介绍

发布于 2025-02-28 12:35:45 字数 1250 浏览 0 评论 0 收藏 0

我们下面的文章将围绕着这几个类进行介绍。可能你第一次看的时候,印象不深,不过没关系,当你跟随者我读完这篇文章的时候,我会在最后再次列出这些对象的功能,相信那时候你会对这些类更加的熟悉和深刻。

  • ActivityManagerServices,简称 AMS,服务端对象,负责系统中所有 Activity 的生命周期
  • ActivityThread,App 的真正入口。当开启 App 之后,会调用 main() 开始运行,开启消息循环队列,这就是传说中的 UI 线程或者叫主线程。与 ActivityManagerServices 配合,一起完成 Activity 的管理工作
  • ApplicationThread,用来实现 ActivityManagerService 与 ActivityThread 之间的交互。在 ActivityManagerService 需要管理相关 Application 中的 Activity 的生命周期时,通过 ApplicationThread 的代理对象与 ActivityThread 通讯。
  • ApplicationThreadProxy,是 ApplicationThread 在服务器端的代理,负责和客户端的 ApplicationThread 通讯。AMS 就是通过该代理与 ActivityThread 进行通信的。
  • Instrumentation,每一个应用程序只有一个 Instrumentation 对象,每个 Activity 内都有一个对该对象的引用。Instrumentation 可以理解为应用进程的管家,ActivityThread 要创建或暂停某个 Activity 时,都需要通过 Instrumentation 来进行具体的操作。
  • ActivityStack,Activity 在 AMS 的栈管理,用来记录已经启动的 Activity 的先后关系,状态信息等。通过 ActivityStack 决定是否需要启动新的进程。
  • ActivityRecord,ActivityStack 的管理对象,每个 Activity 在 AMS 对应一个 ActivityRecord,来记录 Activity 的状态以及其他的管理信息。其实就是服务器端的 Activity 对象的映像。
  • TaskRecord,AMS 抽象出来的一个“任务”的概念,是记录 ActivityRecord 的栈,一个“Task”包含若干个 ActivityRecord。AMS 用 TaskRecord 确保 Activity 启动和退出的顺序。如果你清楚 Activity 的 4 种 launchMode,那么对这个概念应该不陌生。

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。
列表为空,暂无数据
    我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
    原文