SystemUI

SystemUI StatusBar状态栏部分功能记录 目录 核心类: 部分界面布局文件 滑动和点击事件: 通知的通知显示过程 核心类: StatusBar.java 状态栏整体控制 StatusBarWindowView.java 状态栏未扩展时的跟布局 PhoneStatusBarView.java 继承PanelBar.java NotificationPanelView.java 状态栏下拉后的控制类,继承自Panel.................. 阅读详情
tag (android:excludeFromRecents="true"该属性用于控制activity不在最近列表中显示。默认false。)


SystemUI
位于frameworks/base/packages/SystemUI,在SystemServer中通过startService来开启SystemUIService,在SystemUIService的onCreate方法中开启相关服务:
@Override
    public void onCreate() {
        super.onCreate();
        ((SystemUIApplication) getApplication()).startServicesIfNeeded();
    }
具体都有哪些服务呢?查看SystemUIApplication的相关方法:
/**
     * Makes sure that all the SystemUI services are running. If they are already running, this is a
     * no-op. This is needed to conditinally start all the services, as we only need to have it in
     * the main process.
     *
     * <p>This method must only be called from the main thread.</p>
     */
    public void startServicesIfNeeded() {
        if (mServicesStarted) {
            return;
        }


        if (!mBootCompleted) {
            // check to see if maybe it was already completed long before we began
            // see ActivityManagerService.finishBooting()
            if ("1".equals(SystemProperties.get("sys.boot_completed"))) {
                mBootCompleted = true;
                if (DEBUG) Log.v(TAG, "BOOT_COMPLETED was already sent");
            }
        }


        Log.v(TAG, "Starting SystemUI services.");
        final int N = SERVICES.length;
        for (int i=0; i<N; i++) {
            Class<?> cl = SERVICES[i];
            if (DEBUG) Log.d(TAG, "loading: " + cl);
            try {
                mServices[i] = (SystemUI)cl.newInstance();
            } catch (IllegalAccessException ex) {
                throw new RuntimeException(ex);
            } catch (InstantiationException ex) {
                throw new RuntimeException(ex);
            }
            mServices[i].mContext = this;
            mServices[i].mComponents = mComponents;
            if (DEBUG) Log.d(TAG, "running: " + mServices[i]);
            mServices[i].start();


            if (mBootCompleted) {
                mServices[i].onBootCompleted();
            }
        }
        mServicesStarted = true;
    }




在for循环中实例化相关服务,这些服务都已经定义在了SERVICES这个数组中:
/**
     * The classes of the stuff to start.
     */
    private final Class<?>[] SERVICES = new Class[] {
            com.android.systemui.keyguard.KeyguardViewMediator.class,
            com.android.systemui.recent.Recents.class,
            com.android.systemui.volume.VolumeUI.class,
            com.android.systemui.statusbar.SystemBars.class,
            com.android.systemui.usb.StorageNotification.class,
            com.android.systemui.power.PowerUI.class,
            com.android.systemui.media.RingtonePlayer.class
    };
可以看到包含但不限于:锁屏  最近打开列表   音量调节界面  系统状态栏  通知  电量  铃声等







Android 4.0 ICS SystemUI浅析——SystemUI启动流程 阅读Android 4.0源码也有一段时间了,这次是针对SystemUI的一个学习过程。本文只是对SystemUI分析的一个开始——启动流程的分析,网上有很多关于2.3的SystemUI的分析,可4.0与2.3的差别还是很大的,为了给自己留下笔记同时也方便大家学习和探讨,遂写此文,后续将有更多关于SystemUI的分析,敬请关注。        转载请注明出处:http://blog.csdn. 阅读详情

相关推荐

[深入SystemUI]-了解SystemUI的大致架构

文章目录1. SystemUI的架构图2. 对我的架构图的解释2.1 为什么要将SystemUIService和SystemUIApplication放在一层?2.2 抽象服务层2.3 功能层 这篇文章还是在于一位前辈的交流过程中汲取到的,之前也有看网上的关于SystemUI的内容,但是都没有从架构角度去琢磨SystemUI,我一位SystemUI小白就先在这里班门弄斧了,希望各位看官们抱着批评的...

百吉猫的博客 2761

Android 12系统源码_SystemUI(一)SystemUI的启动流程

通过Android12系统源码分析SystemUI的启动流程

AfinalStone的专栏 1万+

SystemUI之插件Plugin

SystemUI模块非常多,结构自然也就非常复杂,而且SystemUI是一个常驻的进程,不能随意做修改升级,如果修改不到位,很可能会存在bug,这是修复就非常难。另外一个原因是可以方便客户客制化,如需要改变状态栏的背景色、显示时钟的风格、锁屏壁纸等等都可以直接通过插件的方式来修改,不需要对SystemUI重新定制。所以,使用插件极大地方便了客户,又维持了系统的稳定。

luyu22的博客 2396

Android SystemUI 架构详解

Android SystemUI 架构详解 本文描述Android系统中一个核心应用SystemUI,详细赘述SystemUI中几大模块功能的实现过程。由于作者水平有限,如发现本文中错误的地方,欢迎指正。 1、SystemUI介绍 1.1、SystemUI摘要 在Android系统中SystemUI是以应用的形式运行在Android系统当中,即编译SystemUI模块会生产APK文件...

Jon.Lo 的专栏 1万+

SystemUi概述

一.SystemUI概述 在Android系统中SystemUI是以应用的形式运行的。即编译SystemUI会产生APK文件。但它和普通的APK不同,它是开机启动的A并且不可以退出, SystemUI顾名思义是系统用户界面。它为系统提供了基础的显示界面。比如:屏幕顶端 的状态栏、屏幕底部的导航栏、下拉界面的快速设置栏、 通知栏、锁屏界面,音量调节对话框、截屏显示界面等功能。 1.SystemUI路径 与Packages/apps/下许多模块不同的是,SystemUI属于Android ...

xxdw1992的博客 5658

SystemUI中NavigationBar分析

将导航栏View添加到Window进行显示通过读取解析xml里config的图标排布信息,来创建对应的view如果设置了keycode,则将点击事件touch以keycode方式交由系统处理。

wangadping的博客 1795

Android 16系统源码_SystemUI(一)SystemUI的启动流程

结合AOSP16的系统源码梳理系统SystemUI模块的启动流程

AfinalStone的专栏 2277

SystemUI 7.0学习总结一-SystemUI的启动

最近在学习并接触SystemUI模块的工作,Keyguard做为引入库也纳入了SystemUI的大家庭,所以整体感觉SystemUI模块还是挺大的,为了日后的查阅还是要写一下笔记。笔记记录过程中参考了许多网友的文章,在本文最后的文章参考会一一罗列,在此非常感谢他们的分享。SystemUI概览SystemUI属于系统级的apk,位置在frameworks\base\packages\SystemUI,

songjinghao的专栏 5467

SystemUI介绍

1.启动流程 SystemUI启动是在SystemServer进程之后启动的,android系统启动流程依次是: 从Boot RAM->BootLoader->Kenel->Init->Zygote->SystemServer->Launcher,SystemUI是在SystemServer进程中启动的,SystemServer是Zygote进程fork出来的,SystemServer.java文件查找路径方法,切换到工程目录下, find ./ -na.

morgerton的博客 5593

Android系统源码framework SystemUI导入eclipse编译

Android系统源码framework SystemUI导入eclipse编译

你只是看起很努力 9056

WVP+ZLM国标平台实战:从设备注册失败到视频播放黑屏,我遇到的5个典型问题与解法

部署WVP+ZLM国标视频平台时,设备注册失败、视频播放黑屏等问题常常让运维人员头疼不已。本文将基于真实运维场景,剖析五个最具代表性的故障案例,提供从网络配置到版本兼容性的全链路解决方案。

weixin_33178839的博客 360

SystemUI编译遇到的问题

用m mm 或者 mmm 编译是会出错的 ,因为需要静态库 所以需要 make SystemUI 这条指令 会报错: 参考:jack-server报错 jack-diagnose 查看jack相关进程 进入/home/workspace_zhaoming/X888/prebuilts/sdk/tools# 这个目录 ./jack-admin kill-server 杀死相关进程 如果杀...

明耀的博客 1162

高光谱目标检测论文学习(1)—— Hyperspectral Target Detection:Hypothesis Testing,SNR and SA Theories

前言 从这篇开始,将会学习一些高光谱目标检测的论文,我仍然把这篇文章放到了读论文专栏里,但是不对其进行顺序编号了,因为这个方向是比较小众的。今天来学习这篇TGRS2021的最新论文,讲的比较详细,相对比较适合初学者入门。我之前也写过一些有关目标检测的论文,但是高光谱目标检测(HTD)和之前的我们学的目标检测是不同的,因为其检测的对象不是普通摄像头得来的数字图像,而是高光谱遥感图像。其包含了很多光谱信息,而光谱信息本身经过处理后就可以作为特征,因此很多情况下就无需使用广义的目标检测问题中的卷积神经网络等方式去

MrBamboo2000的博客 7483

SystemUI分析

简介 SystemUI是一个持续的进程,为系统提供UI,作为Android系统的核心应用,SystemUI负责反馈系统及应用状态并与用户保持大量的交付。 SystemUI的路径 代码位置在 frameworks\base\packages\SystemUI apk安装目录 system/priv-app/SystemUI 不同手机的SystemUI可能有所不同,比如小米手机的安装...

一个小菜鸟的成长之路的专栏 3988

UFS软件分区介绍

本文主要介绍了ufs软件分区管理的概况,能够使大家对软件分区有个大体的认识

肥匪斐's blogs 1万+

液态神经网络(Liquid Neural Networks)从线虫大脑到下一代 AI

液态神经网络(Liquid Neural Networks,LNN)是一类具有动态内部结构的神经网络,其灵感来源于生物神经系统,尤其是大脑中神经元如何以复杂、非线性的方式响应外部刺激。与传统神经网络不同,液态神经网络的每个神经元在处理输入时,不再是静态线性或非线性变换,而是基于一个微分方程模型进行响应。这种建模方式使神经元的行为具有时间连续性和动态适应性。换句话说,它不仅“记住”过去的信息,还能根据当前环境实时调整自身的动态特性,这对于感知、决策、预测等任务都非常关键。

hello.reader 7408

Android 车载应用开发指南(3)- SystemUI 详解

SystemUI 全称 System User Interface,直译过来就是“系统级用户交互界面”,在 Android 系统中由 SystemUI 负责统一管理整个系统层的 UI,它是一个系统级应用程序(APK),源码在`/frameworks/base/packages/`目录下。

话唠扇贝的博客 4955

AI Agent在智能腰带中的姿势矫正与提醒

随着人们生活方式的改变,长时间不正确的坐姿、站姿等不良姿势问题日益普遍,这不仅会导致身体疲劳,还可能引发颈椎病、腰椎病等多种健康问题。智能腰带作为一种可穿戴设备,具有实时监测人体姿势的潜力。本研究的目的是将AI Agent引入智能腰带,实现对人体姿势的准确识别、矫正与提醒功能。本研究的范围涵盖了从AI Agent的核心算法原理到智能腰带的实际开发与应用。包括传感器数据的采集与处理、机器学习算法的选择与训练、智能腰带的硬件设计与软件开发,以及在不同场景下的实际应用测试。本文共分为十个部分。

AI 原生应用开发的博客 343

SystemUI模块总结

SystemUI模块总结 1,SystemUI路径: SystemUI被放在 framework/base/packages/apps/SystemUI 在该目录的二级目录src/com/android下可看到SystemUI和Keyguard两个目录 SystemUI Keyguard 由此可见如今将锁屏界面也整合在SystemUI中 2,SystemUI所需权限 从清单文件中可以发现 S...

Easyhood的博客 3452

MAVLink协议详解

MAVLink是为微型飞行器MAV(Micro Air Vehicle)设计的(LGPL)开源的通讯协议。是无人飞行器和地面站(Ground Control Station ,GCS)之间,以及无人飞行器之间通讯常用的协议。APM、PIXHAWK飞控,Mission Planner、QGroundControl地面站均使用了MAVLink协议进行通讯。 MAVLink源码下载地址(现已更新至v2.0):https://github.com/mavlink/qgroundcontrol   用户手册:ht

程序猿老樊的博客 7704

DeepSeek邮件管理全攻略

DeepSeek邮件助手是一款高效的邮件处理工具,提供智能分类、撰写、回复和任务自动化功能。通过API调用或多智能体系统,它能自动分类邮件意图、生成专业回复并优化邮件内容。核心功能包括智能过滤、会议安排和任务提醒,支持与主流邮箱服务集成。提供精准提示词模板,帮助用户快速生成得体邮件,提升工作效率。适合个人和企业使用,通过简单配置即可实现邮件处理自动化。

Genio_Wang的博客 180

SystemUI启动流程

SystemUI启动流程

ck_67的博客 2698

Open3D 点云转深度图像【2026最新版】

python版本Open3D 实现的点云转深度图像,博客长期更新,本文最新更新时间为:2026年5月10日。

点云侠的博客 2836

SystemUI简介

SystemUI简介 简介 SystemUI应用是一个持久化进程,它为用户提供系统级别的信息显示与交互的一套UI组件,其 UID 是 SYSTEM_UID,值为1000,是系统核心应用,能够使用系统级权限,能够访问系统隐藏的API(@hide方法)和internal资源,在开机时由 SystemServer 启动 SystemUIService 实现应用启动。 SystemUI 普通应用 UID 1000

qq_35095738的博客 4265

ssm框架搭建

这个是一个在idea上成功跑起来的ssm框架项目,保存在这里方便以后使用直接下载

RU DOS版、EFI版32bit/64bit BIOS常用工具

DOS版、EFI版的RU工具,可用来查看IO、MEM、PCI、SMBIOS等资源。亲测在EFI SHELL下可用。

Android systemui 编译

SystemUI是Android系统非常重要的一个组件,日常使用无论是Android应用开发还是framework开发,我们都会经常遇到,它主要包括状态栏、快捷设置、通知栏、导航、锁屏、音量、最近访问等模块,在下载Android源码后,我们该如何编译Android SystemUI呢?下面让我们来一步步实现。

shi450561200的博客 2850

NTscan扫描工具

ntscan是一个扫描器,可以扫描没有密码和弱密码的共享,先到配置文件中填写猜测的用户名和密码,扫描过程中右侧出现的是扫描日志。

上一篇: Android_Provision
下一篇: power_off_alarm
杨鑫校
博客等级 码龄11年 24粉丝 113原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值