SystemServer启动SystemUI

SystemServer启动SystemUI:

    private static void startSystemUi(Context context, WindowManagerService windowManager) {
        PackageManagerInternal pm = LocalServices.getService(PackageManagerInternal.class);
        Intent intent = new Intent();
        intent.setComponent(pm.getSystemUiServiceComponent());
        intent.addFlags(Intent.FLAG_DEBUG_TRIAGED_MISSING);
        //Slog.d(TAG, "Starting service: " + intent);
        context.startServiceAsUser(intent, UserHandle.SYSTEM);
        windowManager.onSystemUiStarted();
    }

PackageManagerInternal:

        @Override
        public ComponentName getSystemUiServiceComponent() {
            return ComponentName.unflattenFromString(mContext.getResources().getString(
                    com.android.internal.R.string.config_systemUIServiceComponent));
        }

res/res/values/config.xml:

<string name="config_systemUIServiceComponent" translatable="false">com.android.systemui/com.android.systemui.SystemUIService</string>

SystemUIService的关键代码:

 <service android:name="SystemUIService"
            android:exported="true"
        />
    @Override
    public void onCreate() {
        super.onCreate();

        // Start all of SystemUI
        ((SystemUIApplication) getApplication()).startServicesIfNeeded();
.....
}

然后会通过反射来创建配置里面的组件:

<!-- 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.stackdivider.Divider</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.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.biometrics.AuthController</item>
    <item>com.android.systemui.SliceBroadcastRelayHandler</item>
    <item>com.android.systemui.SizeCompatModeActivityController</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>
</string-array>

这些 module继承了SystemUI 类 。

相关推荐

  1. SystemServer启动SystemUI

    2024-04-27 11:24:04       13 阅读
  2. SystemServer的面试题目

    2024-04-27 11:24:04       21 阅读
  3. android系列-SystemServer创建服务

    2024-04-27 11:24:04       39 阅读

最近更新

  1. 大众点评商家电话采集软件分享 解析爬虫工具

    2024-04-27 11:24:04       0 阅读
  2. Python 使用正则提取字符串

    2024-04-27 11:24:04       0 阅读
  3. 专业课笔记——(第十二章:文件的读写)

    2024-04-27 11:24:04       1 阅读
  4. lvs集群

    2024-04-27 11:24:04       1 阅读
  5. Perl 语言入门学习

    2024-04-27 11:24:04       0 阅读

热门阅读

  1. 支持向量机(SVM)详细介绍

    2024-04-27 11:24:04       13 阅读
  2. 对于C# 任务并行库(TPL)的一些理解

    2024-04-27 11:24:04       13 阅读
  3. [C++] 小游戏 斗破苍穹 2.10.5 版本 zty发布

    2024-04-27 11:24:04       12 阅读
  4. Python项目开发实战:怎么删除恶意代码

    2024-04-27 11:24:04       14 阅读
  5. 【笔记】非Transformer结构

    2024-04-27 11:24:04       12 阅读
  6. 安全作业-1

    2024-04-27 11:24:04       14 阅读
  7. DevOps(十六)Nexus二进制仓库与Jenkins

    2024-04-27 11:24:04       12 阅读
  8. 商城数据库(33-36)

    2024-04-27 11:24:04       17 阅读
  9. ModuleNotFoundError: No module named ‘pyautogui‘

    2024-04-27 11:24:04       10 阅读
  10. MATLAB初学者入门(19)—— 均值算法

    2024-04-27 11:24:04       10 阅读