1、Dependency 是SystemUI为了优化耦合依赖关系搞的类,在其start方法中,实例化了大量的Controller类,StatusBarIconContrllerImpl 在其中进行实例化。 2、StatusBar类 是 StatusBar 模块的核心类。 3、PhoneStatusBarPolicy 是负责StatusIcon的添加和更新,是StatusIcon初始化和更新的核心类。 4、StatusBarIconContrllerImp...
BaseStatusBar继承了SystemUI PhoneStatusBar继承了BaseStatusBar; 从源码中可以看到, TvStatusBar也继承了BaseStatusBar; 意味着如果我们要把Android移植到Phone和TV之外的新设备上, 并且需要一个不同的StatusBar的时候, 可以通过继承BaseStatusBar实现. 布局显示 主要布局文件有如下几个: super...
// 创建整个SystemUI视图并添加到WindowManager中createAndAddWindows(result);//这个重点方法,创建相关的视图// 省略部分代码...// 调用图标策略来显示更新所有图标。mIconPolicy.init();// 省略部分代码...} 这里直接看PhoneStatusBarPolicy#init() 这个方法很关键 frameworks/base/packages/SystemUI/src/com/andr...
图2.1和2.2中清晰的列出了StatusBar的结构组成,StatusBar实际上是由PhoneStatusBarView构成,而PhoneStatusBarView又细分成两个大模块,分别是icons和ticker两个布局。我们知道,在通常情况下,系统左边放置通知图标(notificationIcons),中间放置状态图标(statusIcons)以及信号图标(signal_battery_cluster),右边放置日期(clock),...
上面我们提到了,终于还是要启动StatusBar,而这里启动的StatusBar并非其真正的StatusBar,而是他的子类,也就是位于com/android/systemui/statusbar/phone/PhoneStatusBar.java,以下我们来看一下他的start()函数: @Overridepublicvoidstart(){ mDisplay = ((WindowManager)mContext.getSystemService(Context.WINDOW_SERVICE...
在看 CollapsedStatusBarFragment 之前,我们先看看 NotificationIconAreaController(通知图标区域控制器),在 NotificationIconAreaController 的构造函数中会调用如下方法来创建通知图标的容器,即初始化布局。 // frameworks/base/packages/SystemUI/src/com/android/systemui/statusbar/phone/NotificationIconAreaControlle...
判断要使用的装态栏是通过wm.canStatusBarHide()获取,config_statusBarComponent的值是com.android.systemui.statusbar.phone.PhoneStatusBar,这是手机的状态栏,config_systemBarComponent的值是com.android.systemui.statusbar.tablet.TabletStatusBar,定义位于(frameworks\base\packages\SystemUI\res\values\),这是平板...
Super Status Bar:这是一个无需ROOT权限即可使用的应用,允许用户自定义状态栏的样式、颜色,甚至添加手势操作来控制音量、亮度等。 StatusBar+:这款应用提供了Windows Phone风格的状态栏,支持自定义显示的图标和消息通知的颜色。 修改系统设置 状态栏透明度:通过设置android:windowTranslucentStatus属性为true,可以实现状态...
PhoneStatusBarPolicy 在 StatusBar 的 start() 方法里初始化: // StatusBar.java @Override public void start() { // 省略部分代码... mStatusBarSignalPolicy.init(); // 这里Android 13 与前面 Android 11 的初始化方法有点不同。 // 创建整个SystemUI视图并添加到WindowManager中 createAndAddWindows...
在Android顶部下滑可以唤出StatusBar窗口,并且窗口大小可以跟随手势动态变化。在PhoneWindowManager.java里有一个onSwipeFromTop, 添加log显示,这里并不是唤出StatusBar动作入口。那么Android系统中识别顶部下滑动作,并唤出StatusBar的相关代码在哪儿或者调用逻辑是什么呢?