Android9.0 系统Framework发送通知流程分析

news/2024/10/18 20:19:57/

1.前言


  在android 9.0的系统rom定制化开发中,在systemui中一个重要的内容就是系统通知的展示,在状态栏展示系统发送通知的图标,而在
系统下拉通知栏中展示接收到的系统发送过来的通知,所以说对系统framework中发送通知的流程分析很重要,接下来就来分析下系统
通知从framework到systemui中通知的流程

 

2.系统Framework发送通知流程分析的核心类

frameworks/base/core/java/android/app/NotificationManager.java
frameworks/base/services/core/java/com/android/server/notification/NotificationManagerService.java
frameworks/base/packages/SystemUI/src/com/android/systemui/statusbar/NotificationListener.java

3.系统Framework发送通知流程分析的核心功能分析和实现
3.1NotificationManager中关于预处理通知的相关代码分析

 @SystemService(Context.NOTIFICATION_SERVICE)public class NotificationManager {/*** @hide*/public void notifyAsUser(String tag, int id, Notification noti

http://www.ppmy.cn/news/58040.html

相关文章

黑客如何在攻击中使用生成式人工智能以及我们能做些什么?

生成式人工智能 (AI) 最近备受关注。AI 驱动的聊天机器人 ChatGPT 和 VALL-E 等其他支持自然语言处理的系统已将生成 AI 带给了公众,并释放了它的好处和坏处。 关于生成式 AI 的核心担忧之一是它可用于升级恶意攻击并提出更复杂的网络攻击。 那么,黑客…

Ae:画笔工具

画笔工具 Brush Tool 快捷键:Ctrl B 画笔工具 Brush Tool仅能工作在图层 Layer面板上。 双击纯色图层、像素图层等可打开图层面板。 在 Ae 中的每次画笔绘制都将新建一条路径,然后通过对路径的描边来显示绘制结果,故又称为“绘画描边”或“…

4.30学习周报

文章目录 前言文献阅读摘要简介数据源和预处理理论基础与模型构建结果和讨论结论和未来工作 时间序列预测总结 前言 本周阅读文献《Water Quality Prediction Based on LSTM and Attention Mechanism: A Case Study of the Burnett River, Australia》,文献主要提出…

SPSS如何进行均值比较和T检验之案例实训?

文章目录 0.引言1.均值过程2.单样本T检验3.独立样本T检验4.成对样本T检验 0.引言 因科研等多场景需要进行绘图处理,笔者对SPSS进行了学习,本文通过《SPSS统计分析从入门到精通》及其配套素材结合网上相关资料进行学习笔记总结,本文对均值比较…

如何使用CSS和JS实现一个响应式的滚动时间轴

随着互联网的发展,网站的界面设计越来越重要。吸引用户的关注、提高用户体验已经成为了许多网站的目标。而在实现各种复杂的界面效果中,CSS与JS的组合无疑是开发者的得力工具。本文将介绍如何使用CSS和JS实现一个响应式的滚动时间轴。 1.需求分析 在开…

linux中的同步和异步

linux中的同步和异步 什么是同步,异步在linux中,他们有哪些应用?什么是同步,异步 同步和异步是两种不同的编程模型,它们用于描述在编程中如何处理并发操作。 同步操作是指程序在执行某项任务时,必须等待该任务完成才能继续执行下一个任务。在同步操作中,程序会一直等待某…

树的存储和遍历

文章目录 6.5 树与森林6.5.1 树的存储结构1. 双亲表示法(顺序存储结构)2 孩子链表表示法3 孩子兄弟表示法(二叉树表示法) 6.5.2 森林与二叉树的转换1 树转换成二叉树2 二叉树转换成树3 森林转换成二叉树4 二叉树转换成森林 6.5.3 树和森林的遍历1. 树的遍历2. 森林的遍历 6.6 赫…

leetcode刷题之有关树的算法

144.二叉树的前序遍历 方法一:递归 var preorderTraversal function(root) {let arr []const preorder root >{//递归的出口if(rootnull){return}arr.push(root.val)preorder(root.left)preorder(root.right)}preorder(root)return arr };方法二:迭代 使用栈…