SystemUI

SystemUI模块

    StatusBar:通知消息提示和状态展现

    NavigationBar:返回,HOME,Recent

    KeyGuard:锁屏模块可以看做单独的应用(包括息屏与亮屏),提供基本的手机个人隐私保护

    Recents:近期应用管理,以堆叠栈的形式展现。

    Notification Panel:展示系统或应用通知内容。提供快速系统设置开关。

    VolumeUI:来用展示或控制音量的变化:媒体音量、铃声音量与闹钟音量

    截屏界面:长按电源键+音量下键后截屏,用以展示截取的屏幕照片/内容

    PowerUI:主要处理和Power相关的事件,比如省电模式切换、电池电量变化和开关屏事件等。

    RingtonePlayer:铃声播放

    StackDivider:控制管理分屏

    PipUI:提供对于画中画模式的管理

1. SystemUI相关技术介绍;嵌入式系统移植 - SystemUI : NotificationPanelView - 首次下拉和展开 QSPanel流程_iFinelio Tower 的博客-CSDN博客

2. SystemUI概述与分析

SystemUI架构分析_FamilyYuan的博客-CSDN博客_systemui

3.  Zygote进程与AMS之间的跨进程通信为什么要用Socket不用binder

参考:启动App时AMS与Zygote进程的跨进程通信过程中为什么要用Socket?_yzpbright的博客-CSDN博客

4. SystemUI博主(该博主有很多关于SystemUI的文章

参考:KeyguardBouncer启动流程_tj_shenzhendaxue的专栏-CSDN博客

StatusBar

StatusBar系统图标显示流程

 1. 显示流程图

2. 各结点调用函数解释

(1)MobileSignalController.java
    notifyListeners函数:监听系统状态,若监听到SignalCallBack反馈(即启动蓝牙了),则调用callback.setMobileDataIndicator函数;
(2)CallbackHandler.java
    setMobileDataIndicator函数:将状态值传递到 StatusBarSignalPolicy类中解析显示;
(3)StatusBarSignalPolicy.java
    setMobileDataIndicator函数:对图标状态进行赋值;
(4)StatusBarIconControllerImpl.java
    setMobileIcons函数:设置手机状态图标(例如:蓝牙)
(5)StatusBarIconController.java
    applyMobileState函数:将设置好的图标应用到状态栏
(6)StatusBarMobileView.java
    updateState函数:更新当前状态栏的显示效果

3. 参考文章

        SystemUI 的信号栏修改以及配置流程(过程较为完整

                网址:https://blog.csdn.net/kongbaidepao/article/details/88719985

        图标显示流程:

                网址:https://www.bbsmax.com/A/LPdooR3yd3/

        SystemUI状态栏(该博主讲解比较全,好几篇文章

        参考:Android SystemUI之StatusBar,状态栏(二)_肖岩-CSDN博客

        SystemUI状态栏启动流程

        参考:状态栏SystemUI的启动过程_Android专栏-CSDN博客

        状态栏图标更新流程分析

        参考:Android的StatusBar分析 - 智行无疆 - 博客园

        状态栏StatusIcon加载流程

        参考:SystemUI之状态栏status icon加载流程 - 简书

        状态栏多图标成点

        参考:Android Q : 适配状态栏图标(图标过多时显示一个点)_AiHH的博客-CSDN博客

        状态栏反色

        参考:安卓11状态栏图标不显示问题调查_书虫-CSDN博客

        深入理解Android(一本书 讲解了SystemUI等内容)

        参考:7.1.3 理解IStatusBarService · 深入理解Android 卷III · 看云

自动亮度调节快捷设置

        内容:三方apk中如何在下拉状态栏中添加自动亮度调节快捷设置

        参考: https://blog.csdn.net/xiangzaixiansheng/article/details/87618305

QS亮度调节初始化流程

StatusBar(状态栏)显示界面

ViewStub控件

        参考:ViewStub基本用法_Q 的博客-CSDN博客_viewstub

       1. config_showOperatorNameInStatusBar属性

        状态栏显示运营商信息:将该属性设置为true;

       2. include标签

        使用include显示悬浮式通知布局

状态栏主要控件

系统图标控件

         1. 定义图标的资源文件

         "xliff:g"标签

        参考:"xliff:g"标签_会飞的鱼~的博客-CSDN博客

Notification通知栏

1. 管理流程-SystemServer进程

        在SystemServer进程中对Notification处理流程如下:

        

参考文章 

        Android通知系统源码解析_PPLLiang的博客-CSDN博客

通知栏相关函数与类的解析

        Android SystemUI组件(04)状态栏-Notification显示&管理_wangdsh的博客-CSDN博客 

下拉通知栏源码分析

        SystemUI下拉通知栏的源码分析_u010823818的博客-CSDN博客

 下拉通知栏简介

       SystemUI 下拉通知栏快捷键加载流程_tj_shenzhendaxue的专栏-CSDN博客

SystemUI博主

        忘冻鱼的博客_SystemUI_Fisher_CSDN博客

SystemUI简介即SystemUI启动流程

        Android9.0 SystemUI 简介篇 (一) - dinghmcn's blog

修改下拉通知栏尺寸

        Android系统定制之SystemUI修改:下拉通知栏尺寸【转】 - 请给我倒杯茶 - 博客园

【Android系统源码修改】Android系统定制之SystemUI修改:下拉通知栏尺寸_Bright的博客-CSDN博客

1. super_status_bar.xml解析

        Android P SystemUI之super_status_bar.xml解析_Sunxiaolin2016的博客-CSDN博客

2. status_bar.xml解析

    Android P SystemUI之StatusBar UI布局status_bar.xml解析_Sunxiaolin2016的博客-CSDN博客

------------------------SystemServer进程对Notification的处理流程理解 start----------------------------------

## 用户进程创建通知-start

NotificationManager.getSystemService()函数

        参考:Android的getSystemService总结和具体使用方法 - 壮汉请留步 - 博客园

NotificationChannel类

        参考:NotificationChannel 适配填坑指南 - 简书

        功能与应用:https://blog.csdn.net/yh18668197127/article/details/86299290

## 用户进程创建通知-end

SystemServer进程对通知的处理流程中的各节点功能解析(*)

        参考:Android 发送通知Framework处理流程_闯荡_脚印-CSDN博客

Notification运行机制

        https://blog.csdn.net/silvia0427/article/details/8313396

NotificationListenerService使用详解

        NotificationListenerService使用详解_一个炮哥的博客-CSDN博客_notificationlistenerservice

INotificationManager.Stub详解

        AIDL,在Stub类中的asInterface函数_浅学误人的博客-CSDN博客

从INotificationManager.enqueueNotificationWithTag到NotificationManagerService类,其中跳转的原理,即aidl中Stub的运行机制

        AIDL,在Stub类中的asInterface函数_浅学误人的博客-CSDN博客

------------------------SystemServer进程对Notification的处理流程理解 end---------------------------------- 

2. 显示流程-SystemServer进程

-----------------------------SystemUI进程对Notification的处理流程理解 start----------------------------------

22 RemoteView的理解

        第五章、理解RemoteView_sp不会玩ps-CSDN博客(特别注意apply与reqpply()的使用)

-----------------------------SystemUI进程对Notification的处理流程理解 end-----------------------------------

KeyGuard锁屏界面

隐藏锁屏界面照相机与电话按钮

        Android_LockScreen.org · vimchan/ldk - Gitee.com

Keyguard视图布局

        参考:android4.4 Keyguard 锁屏之----布局篇_yiersanxuexi的博客-CSDN博客

        参考:Android6.0锁屏源码分析之界面布局分析_fanfan-CSDN博客_android 锁屏源码

        对布局中的小控件讲的很详细:

        Android-Keyguard开发分析(持续...)_伪程序猿的专栏-CSDN博客

 KeyGuard滑动解锁流程(锁屏解锁流程结构分析比较清晰

        Android8.1 SystemUI Keyguard之滑动解锁流程_测试0901-1-CSDN博客

Keyguard从SystemServer开始的部分流程(重要

        注:很多教程都没有讲解启动Keyguard服务的部分,这里讲了,作为补充;

        KeyguardBouncer启动流程_tj_shenzhendaxue的专栏-CSDN博客

KeyGuard 启动流程分析

        Android8.1 SystemUI Keyguard之启动流程_测试0901-1-CSDN博客

Keyguard锁屏原理解析(对视图和相关类的功能解析比较详细

        https://blog.csdn.net/qinjuning/article/details/7505703

KeyGuard解锁流程(较为详细

        Android O(8.0) Keyguard解锁流程 - 程序员大本营

Android解锁屏机制详解

        Android4.0开发之Keyguard解锁屏机制详解 - 博客 - 编程圈

Keuguard Pin码解锁流程(对于解锁部分的代码功能讲解比较详细

        android PIN码解锁流程 - JavaShuo

下拉菜单结构解析

        Android SystemUI之下拉菜单,通知栏,快捷面板(三)_肖岩-CSDN博客

VolumeUI音量界面

VolumeUI流程各函数功能详解(该博主有一个SystemUI专栏)(重要)

        VolumeUI(1):MVP框架_renshuguo123723的博客-CSDN博客

Volume流程函数功能解析(对上述博客的一个补充,结合起来理解)(重要)

        Android音量调节(二)音量处理及UI刷新_作茧自缚丶的博客-CSDN博客

Volume音量控制原理(原理清晰

        https://www.iteye.com/blog/wx1568444409-2456303

Volume音量键处理流程(对于VolumeUI的前置知识讲解的较为清晰)

   Android音量调节(一)音量键的处理流程_作茧自缚丶的博客-CSDN博客_android音量调节流程

修改系统音量条UI(测试成功

        Android 修改系统音量条UI_qq_25094789的博客-CSDN博客_android 音量条

VolumeUI分析

        SystemUI之VolumeUI分析 - Android开发 - 找一找教程网

VolumeUI启动流程(几个方法的代码详细分析)

        SystemUI之VolumeUI启动流程 - 简书

VolumeDialogControllerImpl.java # onVolumeChangedW() (音量界面更新)中使用的AudioManager常量的含义

        Android AudioManager探索_无名的一棵小树-CSDN博客

VolumeDialogControllerImpl.java # redister() # setVolumePolicy()(设置音量模式)

        AndroidQ 设置静音模式后按音量上键不能调节音量大小_u010869159的博客-CSDN博客

Android音视频(MediaSessionManager)

        Android音视频API(android.media.session):概览_一世豁然的专栏-CSDN博客

PowerUI

PowerUI启动流程

        SystemUI之PowerUI启动流程 - 简书

PowerUI分析

        system ui powerUI_jason的笔记-CSDN博客

PowerUI流程分析(函数内具体含义说明较为详细)

        Android9.0 SystemUI PowerUI 篇 (二) - dinghmcn's blog

maybeShowBateryWarning()、PowerNotificationWarnings类

        Android10 低电量通知_Aaron121314的博客-CSDN博客

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值