返回

追溯Android WMS诞生,揭秘其运作机制

Android

WMS的诞生

WindowManagerService(WMS)是Android系统中负责管理窗口和显示输出的系统服务。它于Android 1.0中首次引入,旨在提供统一的窗口管理机制,以便应用程序能够在屏幕上显示窗口并进行交互。

WMS的诞生源于Android系统对图形用户界面的需求。在Android早期版本中,每个应用程序都直接控制自己的窗口。这导致了多个应用程序在屏幕上同时显示窗口时出现混乱和冲突。为了解决这个问题,Android团队决定引入一个统一的窗口管理器来管理所有应用程序的窗口。

WMS的运作机制

WMS是一个复杂的系统服务,它负责以下任务:

  • 管理窗口的创建、销毁和显示。
  • 处理窗口的事件(如点击、滑动、拖动等)。
  • 控制窗口的透明度、大小、位置和旋转。
  • 管理窗口之间的Z轴顺序。
  • 与Display Manager Service和SurfaceFlinger协同工作,以便将窗口的内容显示到屏幕上。

WMS通过与应用程序和系统服务的交互来完成这些任务。应用程序可以通过Binder IPC与WMS进行通信,以便创建、销毁和控制窗口。WMS还会与Display Manager Service和SurfaceFlinger交互,以便将窗口的内容显示到屏幕上。

Android 8.0与Android 7.1.2中WMS的差异

在Android 8.0中,WMS引入了一些新的特性和改进,包括:

  • 采用Java Framework: 在Android 7.1.2中,WMS是以C++编写的。在Android 8.0中,WMS被移植到了Java Framework中。这使得WMS更容易与其他Java应用程序和库进行交互。
  • 支持多窗口模式: 在Android 8.0中,WMS支持多窗口模式。这允许应用程序在屏幕上同时显示多个窗口。
  • 改进的窗口动画: 在Android 8.0中,WMS引入了新的窗口动画效果。这使得窗口的创建、销毁和切换更加流畅。

总结

WMS是Android系统中负责管理窗口和显示输出的重要系统服务。它于Android 1.0中首次引入,旨在提供统一的窗口管理机制。WMS通过与应用程序和系统服务的交互来完成其任务。在Android 8.0中,WMS引入了一些新的特性和改进,包括采用Java Framework、支持多窗口模式和改进的窗口动画。