SystemUI

SystemUI包含的的component

frameworks/base/packages/SystemUI/res/values/config.xml

<string-array name="config_systemUIServiceComponents" translatable="false">
        <item>com.android.systemui.Dependency</item>
        <item>com.android.systemui.util.NotificationChannels</item>
        <item>com.android.systemui.statusbar.CommandQueue$CommandQueueStart</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.stackdivider.Divider</item>
        <item>com.android.systemui.SystemBars</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.pip.PipUI</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.fingerprint.FingerprintDialogImpl</item>
        <item>com.android.systemui.SliceBroadcastRelayHandler</item>
    </string-array>

首先启动SystemUIService,在service中调用SystemUIApplication的方法使所有的component都run起来。
frameworks/base/packages/SystemUI/src/com/android/systemui/SystemUIService.java
frameworks/base/packages/SystemUI/src/com/android/systemui/SystemUIApplication.java

看一下这些component的功能

componentfunction
com.android.systemui.Dependency懒加载初始化一些对象,这些对象是伴随sysui的整个生命周期,可以被sysui的多个模块使用。简单理解,就是sysui的初始化
com.android.systemui.util.NotificationChannels通知的设置
com.android.systemui.statusbar.CommandQueue$CommandQueueStart执行Binder线程中IStatusBar的功能,推送消息到主线程
com.android.systemui.keyguard.KeyguardViewMediator调解对键盘锁的请求
com.android.systemui.recents.Recents最近的任务
com.android.systemui.volume.VolumeUI音量
com.android.systemui.stackdivider.Divider屏幕分割栏
com.android.systemui.SystemBars状态栏
com.android.systemui.usb.StorageNotificationusb连接状态
com.android.systemui.power.PowerUI电量
com.android.systemui.media.RingtonePlayer铃声播放器
com.android.systemui.keyboard.KeyboardUI键盘
com.android.systemui.pip.PipUI画中画窗口
com.android.systemui.shortcut.ShortcutKeyDispatcher分发快捷键事件
@string/config_systemUIVendorServiceComponent == com.android.systemui.VendorServices为某特定厂商占位的
com.android.systemui.util.leak.GarbageMonitor$Service垃圾监视
com.android.systemui.LatencyTester测试延迟
com.android.systemui.globalactions.GlobalActionsComponent长按电源键的菜单和关机
com.android.systemui.ScreenDecoration屏幕上的一层装饰
com.android.systemui.fingerprint.FingerprintDialogImpl指纹对话框
com.android.systemui.SliceBroadcastRelayHandlerAllows settings to register certain broadcasts to launch the settings app for pinned slices.

读源码有感

既要继承IStatusBar.Stub,又要继承SystemUI,怎么实现?
定义2个class,其中一个定义成静态内部类,在静态内部类中创建另一个类的实例。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值