WM服务是Android的窗口管理器, 提供了多Window合成, 手势分发等服务.
- 与相应的UI进程通过IWindowSession与IWindow接口通信
- 与SurfaceFlinger服务通过SurfaceSession通信, 并向UI进程暴露Surface用于绘制UI
WM服务是Android的窗口管理器, 提供了多Window合成, 手势分发等服务.
SurfaceFlinger一个native service, 用于合成窗口呈现给用户。 Android通过BufferQueue, 将不同进程的Android组件: WindowManagerService, 应用进程, SurfaceFlinger联系在一起. 这里大致介绍下BufferQueue的实现原理, 另外涉及到SurfaceSession、SurfaceControl, Surface这些基本概念.
遇到一个关于timeout的bug, 发现自己不能准确解释清楚readtimeout, writetimeout, connecttimeout具体表示的含义, 这里扒拉下源码研究下(Android平台)
为了能够自动回收C++的对象, google使用sp与wp两个模板类使用引用计数的方式自动对C++对象进行回收, 作为阅读Android C/C++源码必要的基础, 从源码角度剖析下实现原理
pm 是Android的包管理器, 对应着包安装, 删除, 信息查看等操作. 其主Service为 PackageManagerService, 对权限的限制部分也在PackageManagerService中。 由于PM服务中有大量的InstantApp的处理代码, 忽略这部分代码.
am Android系统的活动管理器, 系统使用AM service管理应用的四大组件, 是Android系统的大管家. 弄明白大管家的工作机制, 方便我们与其打交道. 在阐述工作原理的同时,提供一些工具的使用.