本文将比较全面的介绍SystemUI的组成,实现,布局以及客制化方案等等。本博文基于android8.0源码进行分析,由于android8.0相比以前的版本SystemUI部分改动是非常大的。
一、SystemUI组成
SystemUI包含的功能非常丰富,组成元素主要包含常见的System Bars,以及ScreenShot截屏、壁纸、最近运行的应用程序等。SystemUI也是各大安卓版本中变化比较大的一个部分。
Status Bar
Navigation Bar
Combined Bar (主要为Tablet设备使用)
Notifications
LockScreen
Recent (最近任务)
QuickSettings
等等
二、SystemUI实现
了解了SystemUI后,本文先来大概讲解下StatusBar的实现流程。
1、应用启动相关代码
相关代码主要分为两个部分
1)、Service部分
代码路径:framework/base/services/java/com/android/server
2) 、应用部分
代码路径:framework/base/packages/SystemUI
SystemUI中SystemUIService是整个系统UI比较重要的载体,所以我们的分析将从SystemUIService开始,而SystemUIService是从SystemServer中