Android 12 MTK SystemUI 定制化开发系列(2) 之 状态栏介绍

1. 概述

忙碌之中,抽了点空更新SystemUI 定制化开发系列(2) 之 状态栏介绍,状态栏主要用于手机信息 (时间日期、电池电量等)和显示图标(SIM卡、通知、系统图标等)

2. SystemUI 启动的组件数组 

SystemUI要启动的所有组件都是在数组 config_systemUIServiceComponents中定义的,路径如下:

    <!-- SystemUI Services: The classes of the stuff to start. -->
    <string-array name="config_systemUIServiceComponents" translatable="false">
        <item>com.android.systemui.util.NotificationChannels</item>
        <item>com.android.systemui.keyguard.KeyguardViewMediator</item>
        <item>com.android.systemui.recents.Recents</item>
        <item>com.android.systemui.volume.VolumeUI</item>
        <item>com.android.systemui.statusbar.phone.StatusBar</item>
        <item>com.android.systemui.usb.StorageNotification</item>
        <item>com.android.systemui.power.PowerUI</item>
        <item>com.android.systemui.media.RingtonePlayer</item>
        <item>com.android.systemui.keyboard.KeyboardUI</item>
        <item>com.android.systemui.shortcut.ShortcutKeyDispatcher</item>
        <item>@string/config_systemUIVendorServiceComponent</item>
        <item>com.android.systemui.util.leak.GarbageMonitor$Service</item>
        <item>com.android.systemui.LatencyTester</item>
        <item>com.android.systemui.globalactions.GlobalActionsComponent</item>
        <item>com.android.systemui.ScreenDecorations</item>
        <item>com.android.systemui.biometrics.AuthController</item>
        <item>com.android.systemui.SliceBroadcastRelayHandler</item>
        <item>com.android.systemui.statusbar.notification.InstantAppNotifier</item>
        <item>com.android.systemui.theme.ThemeOverlayController</item>
        <item>com.android.systemui.accessibility.WindowMagnification</item>
        <item>com.android.systemui.accessibility.SystemActions</item>
        <item>com.android.systemui.toast.ToastUI</item>
        <item>com.android.systemui.wmshell.WMShell</item>
    </string-array>

3. 锁屏时状态栏

关于锁屏状态栏所有显示逻辑实现都是在 NotificationPanelViewController.java中, 路径如下:

vendor/mediatek/proprietary/packages/apps/SystemUI/src/com/android/systemui/statusbar/phone/NotificationPanelViewController.java

显示布局 : keyguard_status_bar.xml    路径如下:

vendor/mediatek/proprietary/packages/apps/SystemUI/res/layout/keyguard_status_bar.xml

4. 解锁后状态栏  (PS: 这个根布局很重要,打算单独出一期在UI定制系列(3)中详解这个布局作用,在此就简单过一下吧!

解锁后显示效果布局:  status_bar.xml   

路径如下:

vendor/mediatek/proprietary/packages/apps/SystemUI/res/layout/status_bar.xml

对应的逻辑类:  PhoneStatusBarView.java

路径如下:

vendor/mediatek/proprietary/packages/apps/SystemUI/src/com/android/systemui/statusbar/phone/PhoneStatusBarView.java

5. 下拉状态栏

主要在  QuickStatusBarHeader.java  类中控制,路径如下:

vendor/mediatek/proprietary/packages/apps/SystemUI/src/com/android/systemui/qs/QuickStatusBarHeader.java

顶部日期显示布局:   quick_status_bar_header_date_privacy.xml        路径如下:

vendor/mediatek/proprietary/packages/apps/SystemUI/res/layout/quick_status_bar_header_date_privacy.xml

显示系统时间和图标布局: quick_qs_status_icon.xml    路径如下:

vendor/mediatek/proprietary/packages/apps/SystemUI/res/layout/quick_qs_status_icons.xml

PS: 下一期我打算把 status_bar.xml  单独用一期详解下, 这个布局嵌套很深,网上基本找不到详解这个布局的, 但这个布局 个人觉得很重要,对小白很有帮助或维护SystemUI的同僚多少都会有点帮助吧!

(创作不易,要是感觉对大家有用的话,就帮点个赞吧!多谢。。。)

  • 11
    点赞
  • 14
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值