WMS-Window的添加流程

本文延续上篇关于Activity启动流程的分析,详细探讨Window的添加过程,涉及WMS(Window Manager Service)的相关原理。从Window的创建、WindowManager、WindowManagerGlobal到ViewRootImpl,解释每个环节的作用,并简述WindowManagerService如何申请Surface完成Window的显示。
摘要由CSDN通过智能技术生成

总览

我在上一篇文章介绍了 Activity 的启动流程,一直讲到到 WMS 这里结束,这篇文章讲沿着上篇文章的脉络继续分析下去。
这篇文章不仅仅是 Window 的添加过程,也会涉及到一些 WMS 相关的原理。我希望能通过了解 Window 添加流程来掌握整个 WMS 的架构,从而对其产生一个完整的印象,至于旁枝末节也不着急深入的理解,有空就看看,这样后面遇到相关的问题也能知道个大概。
先看一下 Window 的添加过程:

在这里插入图片描述

上一篇文章讲了 AMS 将会调用 WMS 中的几个方法,也就是上图中从 AMS 引出的箭头,WMS 的流程也是从这几个方法开始运转起来的。

Window

Window 是一个抽象类,实现类一般为 PhoneWindow,在 Activity#attach 中被创建,一个 Activity 对应一个 Window。
对于 AMS 来说,Activity 是一个基本操作单元,而对于 WMS 来说,Window 就是一个基本的操作单元。这意味着,对于一个页面来说,AMS 中的表现是 Activity,WMS 中的表现是 Window。
WMS 一切几乎都是为了服务 Window 所展开的,Window 主要具有两个功能,一个是负责展示页面,一个是接受触摸/按键事件。
先来看看 setContentView 方法:

public void setContentView(int layoutResID) {
   
    //省略部分代码
    //创建 DecorView
    installDecor();
    //加载资源文件到 DecorView 中
    mLayoutInflater.inflate(layoutResID, mContentParent);
    //回调 onContentChanged
    getCallback().onContentChanged();
}

上面代码中的注释已经很明确了,DecorView 待会在介绍,getCallback() 方法获取到的就是 Activity 中设置的 Callback,除此之外还包括触摸事件等等回调。
我们再来看看 installDecor 方法:

private void installDecor() {
   
    //省略部分代码
    //创建 DecorView
    mDecor = 
仓库管理系统(WMS)是一种用于管理仓库操作和流程的软件系统。它通过自动化和优化仓库流程,提高了仓库的效率和准确性。 WMS系统可以帮助企业实现对仓库的全面掌控和监管。它提供了实时的库存信息、调度规划、收货、上架、拣货、打包、出货等功能。用户可以通过WMS系统对仓库作业进行统一调度和管理,减少了人为因素对仓库作业的影响。 WMS系统的核心功能包括库存管理和作业管理。库存管理功能包括库存查询、库存调整、库存盘点等,通过对库存信息的准确记录和实时更新,可以避免库存过多或不足的情况。作业管理功能包括入库作业、出库作业、移库作业等,通过对各项作业进行计划、分派和跟踪,提高了作业效率和准确性。 WMS系统还提供了一些高级功能,如货物跟踪、批次管理、质量管理等。货物跟踪功能可以帮助用户实时了解货物的流向和位置,提高了货物配送的准确性。批次管理功能可以对货物进行批次的管理和追溯,方便了企业对产品质量的控制和追踪。质量管理功能可以对货物的质量信息进行记录和追踪,保证了产品质量的可追溯性。 总之,WMS系统是一种能够提高仓库效率、准确性和可控性的管理工具。通过实时监控和跟踪仓库的各项作业和库存信息,可以帮助企业降低成本、提高服务水平,提高了企业的竞争力。
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值