System UI学习笔记(一)
System UI内容概述:从表面上来看,我们能够直接看到的就是状态栏、通知栏、下拉菜单、导航栏、最近任务、低电量显示等等系统界面都是 SystemUI 的。SystemUI,在源码⽬录中位于: framework/base/packages ⽬录下, 可见 SystemUI 和 framework 是关联的,SystemUI 依赖了很多内部 API , 系统资源, SystemUI 编译是要依赖系统源码的。SystemUI 也是⼀个应⽤,不过这个应⽤特殊之处在于他没有启动图标、也没有⼊⼝Activity。他的⼊⼝程序是⼀个服务:SystemUIService。这个服务会被系统服务拉起来, 这个服务起来,SystemUI 应⽤进程就创建起来了,具体启动过程后⾯会分析。除了 SystemUIService,SystemUI 还有很多服务,例如: 负责锁屏的KeyguardService、负责最近任务的RecentsSystemUserService、负责壁纸的ImageWallpaper 、负责截屏TakeScreenshotService 等。
架构关系:我们的系统服务中,有一个服务专门为这个系统UI状态栏服务,这个服务是StatusbarManagerService (简称:SMS),那么和这个服务关系比较密切的是WindowManagerService(简称:WMS),前者主要管控状态栏、导航栏,例如:设置全屏、沉浸式状态栏等。
初次开发:因为我有源码,可以在MTK源码中编译,为了提高效率,我有一个样机,配合ssh搭建通道配合完成开发、编译和安装流程。
后续看测试结果如何。。。😅