Android开发经验谈Android技术知识Android开发

Android Framework 框架层 | AMS 定义与知

2022-09-19  本文已影响0人  程序老秃子

AMS 定义

ActivityManagerService(简称 AMS),是 Android核心服务;因此其创建过程伴随在开机过程中,其由 System_serverServerThread 线程创建,创建完后就进入 home activity 界面,也就是 AMS 启动的第一个 activity

从系统运行的角度看: AMS 可以分为 Client 端和 Service 端

AMS 功能

AMS 主要负责系统中四大组件的启动、切换、及进程管理调度等工作;根据其主要的职能,可以从以下几个方面AMS 进行学习:

AMS 关键函数

对AMS 调用轨迹分析是我们破解AMS的第一条线,希望读者反复阅读,以真正理解其中涉及的知识点,尤其是和 Android 运行环境及 Context 相关的知识,接下来深入了解下 AMS 的主要作用和启动流程

AMS 主要作用

统一调度 Activity

AMS 中的重要数据类:

除此之外,在 frameworks\base\services\core\java\com\android\server\am 路径中,还有 serviceRecord、ProviderRecord、BoardRecord、ProcessRecord、UidRecord 等近50个 AMS 相关的类

重要变量

如后台的 Activity 和近期任务的 Activity 最多20个,onpause 必须在0.5秒内执行完,Activity 必须在10秒内完成启动并回调给 AMS

启动 Activity

Acitivity 的启动最终都会调用 startActivity(),总体上就是 ActivityThread和 AMS 和 WMS 的交互过程 Application 加载后,先加载 provider,然后才加载 Activity

AMS 启动流程

总结

AMS (ActivityManagerService) Android 的核心服务之一,管理着四大组件;AMS 是 Binder 服务,但不是通过 AIDL 自动生成的;好了,今天有关于 AMS 的框架设计的阐述就到这里了;为了帮助大家了解更多 Android Framework 框架层 必备的技术知识,这里特别提供一份由腾讯大佬所整理的一张 Framework 思维导图及其配套的一份学习手册;有需要思维导图及学习笔记的朋友: 可以简信发送 “进阶” 即可 直达获取;希望大家看完之后能给大家一些帮助

内容展示如下:

Android Framework 思维导图

应用程序与 AMS 的通讯实现

完整版 Android Framework 思维导图及学习手册 获取方式: 简信发送 "进阶" 即可 直达获取

应用进程与 WMS 的通讯实现

应用进程之间的通讯实现

完整版 Android Framework 思维导图及学习手册 获取方式: 简信发送 "进阶" 即可 直达获取

既然选择了程序员这个行业,那么你一定要做好充足的准备;要想在人前显贵,背后所付出的辛劳和汗水就是必须的

Android 架构师之路还能漫长,与君共勉

上一篇 下一篇

猜你喜欢

热点阅读