当前位置: 首页 > news >正文

Android ActivityManagerService(AMS)深度解析

目录

‌一、什么是AMS?‌

‌二、AMS 的架构层次‌

‌1. 客户端层‌

2‌. 服务层‌

‌3. 底层驱动‌

三、AMS 的主要功能‌

‌四、核心模块与工作流程‌

1. ‌核心模块‌

2. ‌Activity 启动流程

3. ‌进程启动流程

4. ‌广播分发流程

五、AMS 的启动流程‌

1‌. SystemServer 初始化‌

2‌. AMS 主入口初始化

‌六、核心代码解析‌

1. ‌ActivityStarter.execute()

2. ‌ProcessRecord 管理

‌七、调试方法‌

‌1. ADB 命令‌

2‌. 日志过滤‌

3‌. 源码调试‌

4. 性能分析‌

‌八、总结‌


一、什么是AMS?

ActivityManagerService(AMS)‌ 是 Android 系统中负责管理四大组件(Activity、Service、Broadcast、ContentProvider)的核心服务,其核心职责包括:

  • 组件生命周期管理‌:控制 Activity 启动、Service 绑定、广播发送与接收等。

  • 进程调度‌:根据组件状态分配进程优先级(如前台进程、后台进程)。

  • 任务栈管理‌:维护 Activity 的任务栈(Task)与返回栈(Back Stack)。

  • 内存监控‌:通过 LowMemoryKiller 机制回收低优先级进程内存。

  • 权限控制‌:校验组件调用方的权限(如 startActivity 权限检查)。

AMS 是 Android 应用运行的中枢,直接影响多任务切换、应用启动速度和系统稳定性。

二、AMS 的架构层次

‌1. 客户端层

  • 应用进程‌:通过 ActivityThread 与 AMS 交互(如 startActivity 请求)。
  • Binder 客户端‌:IActivityManager 接口代理(如 ActivityManagerProxy)。

2‌. 服务层

  • AMS 主服务‌:运行在 system_server 进程,处理跨进程请求。
  • 关联服务‌:ProcessList(进程列表)、ActiveServices(Service 管理)。

‌3. 底层驱动

  • Linux 内核‌:依赖 Binder 驱动实现 IPC,通过 lmkd 进程管理内存回收。

三、AMS 的主要功能

功能模块说明
Activity管理处理 startActivityonCreate 等生命周期回调,维护任务栈。
Service管理管理 Service 的启动、绑定、停止,处理 bindService() 跨进程调用。
广播管理注册与分发广播(有序广播、粘性广播),优化 BroadcastQueue 调度。
进程管理分配进程优先级(Adj 值),触发 lowmemorykiller 回收进程。
**ContentProvider管理跨应用数据共享,处理 ContentResolver 请求。
ANR监控检测主线程阻塞(如 5 秒内未响应输入事件),触发 ANR 弹窗。

四、核心模块与工作流程

相关文章:

  • 基于javaweb的SpringBoot+MyBatis通讯录管理系统设计与实现(源码+文档+部署讲解)
  • 【维护窗口内最值+单调队列/优先队列】Leetcode 239. 滑动窗口最大值
  • Echarts 问题:自定义的 legend 点击后消失,格式化 legend 的隐藏文本样式
  • PowerShell脚本实现|从文件夹动画序列中均匀选取关键帧(保留首尾帧)
  • redis 数据类型新手练习系列——string类型
  • 【QQMusic项目复习笔记——音乐管理模块详解】第四章
  • Doris vs ClickHouse:深入对比MPP数据库聚合操作的核心区别
  • 重读《人件》Peopleware -(9-1)Ⅱ办公环境Ⅱ“你在这儿从早上9点到下午5点之间什么都做不成.“(上)
  • 2025 年导游证报考条件新政策解读与应对策略
  • 同样机身尺寸下伺服电机比无刷电机扭矩更大的原因
  • LangChain LCEL表达式语言简介
  • IP SSL证书常见问题助您快速实现HTTPS加密
  • ElementUi的tabs样式太难修改,自定义tabs标签页
  • Leetcode 2845 题解
  • Android WindowManagerService(WMS)框架深度解析
  • LibAI Lab闪耀AI出海峰会:技术深耕与全球化增长的双重奏
  • RabbitMQ 复习总结
  • Android 使用支付接口,需要进行的加密逻辑:MD5、HMAC-SHA256以及RSA
  • 实时数据驱动未来:谷云科技CDC实时数据集成平台新版本发布
  • Kubernetes 节点 Not Ready 时 Pod 驱逐机制深度解析(上)
  • 邮轮、无人机、水上运动……上海多区推动文旅商体展融合发展
  • 上海银行一季度净赚逾62亿增2.3%,不良贷款率与上年末持平
  • 广西北海市人大常委会副主任李安洪已兼任合浦县委书记
  • 看展览|深濑昌久:一位超现实主义摄影者的三种意象
  • 上海4-6月文博美展、剧目演出不断,将开设直播推出文旅优惠套餐
  • 特朗普:泽连斯基的言论对和平谈判非常有害