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

企业网站建设资金预算表虚拟主机做网站

企业网站建设资金预算表,虚拟主机做网站,网站开发需求式样书,企业做网站有发展么1.WMS说的就是 WindowManagerService:负责为Activity对应的窗口分配Surface,管理Surface的显示顺序以及位置尺寸,控制窗口动画 。 它是Android系统中为各个客户端即每个app来提供这样的服务的一个类。 在Android系统中在systemServer 进程和各…

1.WMS说的就是 WindowManagerService:负责为Activity对应的窗口分配Surface,管理Surface的显示顺序以及位置尺寸,控制窗口动画 。 它是Android系统中为各个客户端即每个app来提供这样的服务的一个类。
在Android系统中在systemServer 进程和各个应用进程之间是采用Client/Server架构,也就是大家最常听到的C/S架构,熟悉Android系统启动流程的应该知道Ams,WMS等这些系统服务都是在systemServer进程创建后启动的,以便后续为各个应用提供服务,我们来思索一个本质问题,像这里的每一个系统服务和各个应用之间其实是一对多的关系,这种关系适合它的架构就是c/s 架构
。就扩展到这,我们回到WMS的讨论上来,整个cs流程如下图,但是服务器那侧的流程是简化版不够详细:
在这里插入图片描述简述整个流程就是当Activity.onResume()被调用之后,客户端会与WMS进行通信将我们的布局显示在屏幕上。其中主要涉及以下几个过程:
客户端通知WMS创建一个窗口,并添加到WindowToken。即addToDisplayAsUser阶段。
客户端通知WMS创建Surface,并计算窗口尺寸大小。即relayoutWindow阶段。
客户端获取到WMS计算的窗口大小后,进一步测量该窗口下View的宽度和高度。即performMeasure阶段。
客户端确定该窗口下View的尺寸和位置。即performLayout阶段。
确定好View的尺寸大小位置之后,便对View进行绘制。即performDraw阶段。
通知WMS,客户端已经完成绘制。WMS进行系统窗口的状态刷新以及动画处理,并最终将Surface显示出来。即reportDrawFinished阶段

2.而服务侧 WMS内部详细的流程图如下:
在这里插入图片描述其中的角色我们一一来介绍一下:
WindowState:和客户端窗口一一对应,在向WMS添加一个窗口时,WMS会为其创建一个WindowState,来表示窗口的所有属性,WindowState相当于属性窗口管理(比如对外提供操作接口,属于层级结构中最底部的容器),窗口画面相关都剥离给了WindowStateAnimator,WindowState也是WMS中事实上的窗口。
WindowStateAnimator:主要用于管理WindowState相关画面surface,通过mDrawState参数来描述Surface所处的状态。
WindowToken:保存了所有具有同一个token的WindowState,将属于同一个activity的窗口组织在一起,activity在需要更新窗口时,必须向WMS提供WindowToken以表名自己的身份,并且窗口的类型必须与所持有的的WindowToken类型一致。
补充:一个WindowToken可以对应多个WindowState。 WindowToken是一个用于表示窗口层次结构中的窗口的标识符。每个Window具有一个与之关联的WindowToken,它用于帮助系统管理窗口的显示和交互。
一个WindowToken可以有多个WindowState表示与之相关的窗口。这是因为在Android系统中,可能会存在一些特殊情况,例如PopupWindow、Dialog等,它们属于同一个WindowToken,但是显示在不同的窗口上。
因此,一个WindowToken可以与多个WindowState关联,这样可以实现多个窗口的操作和管理。
WindowSurfaceController:用来创建SurfaceControl。
DisplayContent:即代表的是单个屏幕。隶属于同一个DisplayContent的窗口将会被显示在同一个屏幕中。每个DisplayContent都对应着一个唯一的id,在添加窗口时可以通过指定这个ID决定将其显示在哪个屏幕中。
WindowSurfacePlacer:整个窗口层次结构刷新的入口。
RootWindowContainer:是窗口容器的顶层容器,其直接管理DisplayContent。

3.第三个介绍的是窗口移除从App端发起,当Activity执行destroy(),即以handleDestroyActivity()为起点,执行wm.removeViewImmediate()开启;
通过WindowManagerGlobal–>ViewRootImpl–>Session–>WindowManagerService的removeWindow(),调用到WindowState的removeIfPossible()–>removeImmediately(),接着调用到WindowStateAnimator的destroySurfaceLocked()–>destroySurface(),逐步调用改变绘制状态为NO_SURFACE–>WindowSurfaceController的destroy()最终调用到SurfaceControl的remove()来通知SurfaceFlinger来移除layer;

后续有时间再进行更详细的细节分析。

http://www.yayakq.cn/news/353629/

相关文章:

  • 婚庆公司租车收费标准价目一览表搜索引擎排名优化方法
  • 怎么用一个主机做多个网站泗洪有做网站
  • 网站如何续费黑龙江 网站开发
  • 新农村建设投诉网站国家品牌网
  • 怎么在网站中搜索关键字wordpress图片怎么控制高度
  • 福建省建设厅网站施工员查询发稿什么意思
  • 湖北省两学一做网站网络服务网站建设
  • 做英文小说网站哪些网站可以做简历
  • win7 添加asp网站上海网站建设思创
  • 成都百度网站优化西昌建设工程招聘信息网站
  • 免费网站统计代码做网站用asp还是php
  • 什么视频网站可以做链接地址网站备案照相怎么照
  • 网站主机空间用哪个好wordpress 广告管理
  • 北京天通苑 做网站不同的网站 做301
  • 网站建设预算表如何自定义wordpress登录
  • a5网站建设免费备案域名
  • 高州网站seo做网站首页图片素材
  • 企业做网站要注意哪些企业做网站费用
  • 桂林网站设计制作高新区网站开发
  • 网上购物网站建设需求免费小程序开发平台
  • 建设小说网站风险分析精准营销系统
  • 企业网站建设运营的灵魂是什么wordpress加载谷歌地图
  • 中国建设银行招聘官网站网站建设企业哪家好
  • 珠海网站建设哪个好薇wordpress行情插件
  • 深圳品牌营销网站建设网站建设活动策划方案
  • 基于网站开发小程序云校招企业服务平台
  • 网站建设入门到精通wordpress更改了连接打不开
  • 深圳外贸网站怎么建公司网站横幅是做的吗
  • 安卓手机做网站服务器吗统计网站怎么做
  • 云浮哪有做网站公司wordpress主题虚拟会员下载