Android开发Android技术进阶Android开发经验谈

WMS & AMS【Android Framework进阶】

2023-02-16  本文已影响0人  谁动了我的代码

1.简介

可以毫不夸张的说,android的framework层主要是由WMS、AMS还有View所构成,这三个模块穿插交互在整个framework中,掌握了它们之间的关系和每一个逻辑步骤,你对framework的了解至少有百分之五十

AMS是Android中最核心的服务,主要负责系统中四大组件的启动、切换、调度及应用进程的管理和调度等工作,其职责与操作系统中的进程管理和调度模块相类似,因此它在Android中非常重要。

在没有深入了解AMS与WMS前,对它俩负责的功能一直很模糊,一直搞不清区别。所以在深入理解其中之一时,先对它们在Android中各自负责的任务有个基本的了解和区分。

下面先简单对AMS与WMS作个简单的介绍:

Activity与WIndow:

AMS与WMS:

在视图层次中,Activity在WIndow之上,如下图

image

2. WMS

WindowManagerService服务的实现是相当复杂的,毕竟它要管理的整个系统所有窗口的UI,而在任何一个系统中,窗口管理子系统都是极其复杂的。

作用:

什么是Window?

类间关系:

上面那些都是对WMS相关功能的介绍,对WMS有个感性的认识,现在开始进入相关类。

主要使用的桥接模式,具体自行学习

image

一个问题:

WMS是系统服务,有SystemServer负责启动,启动时机相对较晚,那么在WMS运行之前,终端显示屏就一团黑?

3. AMS

作用:

类间关系:

主要使用了代理模式:

image

启动流程:

工作流程:

Client端流程:

Server端流程:

启动Activity的请求从Client端传递给Server端后,便进入了启动应用的七个阶段,这里也是整理出具体流程,细节可以参考《Android的设计与实现》第十一章内容。

预启动:

暂停:

启动应用程序进程:

加载应用程序Activity:

显示Activity:

Activity Idle状态的处理

停止源Activity:

image

本篇为Android framework中的常说的wms与ams;讲述了其主要原理关于更多的framework的学习,其知识点很多我总在一个技术文档中;需要参考可点击《Framework全家桶学习手册》在Android中framework起到很重要的角色,说以学好framework是非常重要的,以及阅读他的相关源码,另外源码也放在上方。需要可以点击查看。

文末

可以毫不夸张的说,Android的framework层主要是由WMS、AMS还有View所构成,这三个模块穿插交互在整个framework中,掌握了它们之间的关系和每一个逻辑步骤,你对framework的了解至少有百分之五十”。

钻研底层就离不开源码;其实很多的移动开发者都止步于这个水平,要想再进一步深入发展很难,进阶学习成为了一个迫在眉睫又进展艰难的点。

上一篇下一篇

猜你喜欢

热点阅读