目录

一、什么是SystemUI

二、SystemUI应用源码

三、学习 SystemUI 的核心组件

四、修改状态与导航栏测试


      本篇文章,主要科普的是Android SystemUI , 下一篇文章我们将介绍如何把Android SystemUI 应用转成Android Studio 工程项目。

一、什么是SystemUI

     什么是SystemUI?Android SystemUi是指Android操作系统中的系统用户界面,它是用户与设备交互的界面。 SystemUi提供了状态栏、导航栏、通知中心等重要的用户界面元素,这些元素可以帮助用户快速地访问设备的各种功能和信息。主要模块如下:

1、NavigationBar(导航栏):NavigationBar是位于屏幕底部的导航界面,提供了返回、主页和最近任务等导航操作的按钮。它使用户能够浏览应用程序和系统功能,如切换应用、返回主屏幕等。

2、StatusBar(状态栏):StatusBar是Android SystemUI的核心组件之一,位于屏幕顶部。它显示了通知图标、系统图标(如电池、信号强度、时间等)以及其他与系统状态相关的信息。

3、Notification Shade(通知面板):Notification Shade是一个可下拉的面板,用户可以从任何屏幕位置向下滑动以展开它。它显示了来自各个应用程序的通知,并提供一些快速设置选项,如Wi-Fi、蓝牙、飞行模式等。

4、LockScreen(锁屏界面):LockScreen是Android设备的初始界面,显示了时间、日期、通知和快捷操作。用户可以在锁屏界面上查看和管理通知,以及执行一些快速操作,如解锁屏幕、调整音量等。

5、Quick Settings(快速设置):Quick Settings是通知面板中的一部分,提供了一组常用的系统设置选项,用户可以通过快速切换按钮打开或关闭这些选项,例如调整屏幕亮度、打开/关闭无线网络等。

6、SystemUI Tuner(系统UI调节器):SystemUI Tuner是一个隐藏的设置菜单,允许用户自定义和调整系统UI的某些功能和外观。用户可以通过SystemUI Tuner修改状态栏图标、导航栏按钮、通知行为等。

7、System Bars(系统栏):系统栏包括StatusBar和NavigationBar,它们作为Android设备的固定元素,提供了对系统功能和导航的访问。系统栏的样式和行为可以根据不同设备和版本进行自定义

版本变化

时间段    系统版本    发展历程
2008年    Android 1.0    Android初始版本没有状态栏,只有应用程序屏幕
2009年    Android 1.5    引入状态栏,但只有通知和电池指示器
2010年    Android 2.3    状态栏加入了快捷设置面板
2011年    Android 4.0    引入了新的状态栏,支持通知和快捷设置面板
2013年    Android 4.4    状态栏和导航栏支持半透明效果
2014年    Android 5.0    引入Material Design,对状态栏和导航栏进行了全面更新
2016年    Android 7.0    引入了快捷应用程序快捷方式,可从状态栏访问
2019年    Android 10.0    状态栏和导航栏支持全面屏手势导航
2020年    Android 11.0    加入了对新型折叠式设备的支持,如Galaxy Z Fold2
2021年    Android 12.0    引入了Material You设计语言,使状态栏和导航栏更加自适应                2022年    Android 13.0    沿用了Material You设计语言,加入了一些细节                                          2023年    Android 14.0    待更新

二、SystemUI应用源码

        前提是下载Android系统源码,在android12/frameworks/base/packages/SystemUI目录下,其中android12为创建系统源码下载文件位置。在此目录下,你可以找到SystemUI应用的所有源代码文件,包括Java源代码文件、资源文件和布局文件等。如果你想查看和修改SystemUI应用的源代码,可以使用Android Studio等集成开发环境打开该目录,并进行相应的操作。

三、学习 SystemUI 的核心组件

上述核心服务之外,SystemUI 还包含了很多核心组件,如 ViewGroup、View、Drawable、Animation、Layout 等等。在阅读 SystemUI 源码时,需要对这些组件进行一一了解和分析。

其中比较重要的组件有:

BaseStatusBar: 状态栏基础类,负责状态栏的显示和隐藏,以及状态栏中各个 View 的管理。

StatusBarWindowView: 状态栏窗口视图,负责渲染状态栏的整个界面。

NotificationStackScrollLayout: 通知滑动布局,负责管理通知在状态栏中的展示。

RecentsView: 最近任务视图,负责可视化呈现最近任务列表。

KeyguardViewMediator: 锁屏视图中介,负责管理锁屏界面的显示和隐藏

四、修改状态与导航栏测试

        关于Android系统  SystemUI 状态栏(StatusBar)和导航栏(Navigationbar)高度修改,其

路径:frameworks/base/core/res/res/values/dimens.xml,

Navigationbar默认高度48dp

StatusBar高度默认是24dp

编译运行测试

参考

Android SystemUI篇(一)-CSDN博客

Android SystemUI的客制化 (1)_android.uid.systemui-CSDN博客

Logo

开放原子开发者工作坊旨在鼓励更多人参与开源活动,与志同道合的开发者们相互交流开发经验、分享开发心得、获取前沿技术趋势。工作坊有多种形式的开发者活动,如meetup、训练营等,主打技术交流,干货满满,真诚地邀请各位开发者共同参与!

更多推荐