Systrace系列4 —— SystemServer 解读

news2024/12/23 22:33:22

本文主要是对 SystemServer 进行简单介绍,介绍了 SystemServer 中几个比较重要的线程,由于 Input 和 Binder 比较重要,所以单独拿出来讲,在这里就没有再涉及到。

窗口动画

Systrace 中的 SystemServer 一个比较重要的地方就是窗口动画,由于窗口归 SystemServer 来管,那么窗口动画也就是由 SystemServer 来进行统一的处理,其中涉及到两个比较重要的线程,Android.Anim 和 Android.Anim.if 这两个线程,这两个线程的基本知识在下面有讲。

这里我们以应用启动为例,查看窗口时如何在两个线程之间进行切换(Android P 里面,应用的启动动画由 Launcher 和应用自己的第一帧组成,之前是在 SystemServer 里面的,现在多任务的动画为了性能部分移到了 Launcher 去实现)

首先我们点击图标启动应用的时候,由于 App 还在启动,Launcher 首先启动一个 StartingWindow,等 App 的第一帧绘制好了之后,再切换到 App 的窗口动画

Launcher 动画

此时对应的,App 正在启动

从上图可以看到&#x

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/560332.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

CentOS离线配置Java环境

CentOS离线配置Java环境 环境: 操作系统:Linux-CentOS 7Java版本:JDK17远程连接工具:MobaXterm 1.JDK下载 官网下载:https://www.oracle.com/cn/java/technologies/downloads/#java17 ​ 因为MobaXterm自带Sftp&am…

【python csv、Excel、json】零基础也能轻松掌握的学习路线与参考资料

CSV、Excel、JSON 是常用的数据存储格式,分别在不同的场景下有其特点和应用。下面将从以下几个方面进行比较:格式、特点、应用场景和优秀实践。 1.格式 CSV(Comma-Separated Values,逗号分隔值)格式是一种以纯文本形…

Contrastive Triplet Center Loss

Contrastive Loss background: 最直接的想法是我们假设存在一个损失函数,它满足如下的基本准则 近似样本之间的距离越小越好不似样本之间的距离越大越好 相似样本的坐标被放的越来越远,不似样本之间的距离越来越大,但训练的目标…

V神透露以太坊发展规划 未来十年,zkS将与区块链一样重要

作为加密世界,除中本聪外颇为“传奇”的人物,以太坊联合创始人V神眼光向来毒辣,在加密领域、区块链产业取得诸多“卓著”成绩。 在近期举行的EDCON 2023盛会上,V神透露了以太坊2.0的最新进展和未来规划,以及他对以太坊…

MySQL之索引初步

1. 索引概念 数据库是⽤来存储数据,在互联⽹应⽤中数据库中存储的数据可能会很多(⼤数据), 数据表中数据的查询速度会随着数据量的增⻓而逐渐变慢 ,从⽽导致响应⽤户请求的速度变慢——⽤户体验差,我们如何提⾼数据库的查询效率呢…

射频电容物位开关电容传感器的分类与应用

​射频电容物位开关电容传感器是一种常见的物位检测装置,广泛应用于粉状物料、液体、颗粒物料等不同类型的物料的检测和控制。本文将对射频电容物位开关电容传感器的分类和应用进行详细介绍。 一、射频电容物位开关电容传感器的工作原理 射频电容物位开关电容传感…

perl 通过 swig 调用 c++代码

Swig 是一个软件开发工具,可以简化不同语言与 C/C 的交互(直接在其它语言的代码中调用 C/C 的代码)。   记录一下成功用 perl 调用 c 代码的例子。 环境 操作系统:centos 7.9 perl: version 5.16.3 swig: version 2.0.10 g: v…

C++中map的用法

博主简介:Hello大家好呀,我是陈童学,一个与你一样正在慢慢前行的人。 博主主页:陈童学哦 所属专栏:CSTL 前言:Hello各位小伙伴们好!欢迎来到本专栏CSTL的学习,本专栏旨在帮助大家了解…

接口测试五个重要测试点

一、功能测试 接口的功能是否实现、接口是否按照设计文档实现(如:username参数写成了user)———接口文档是在整个开发中使用,所以接口设计要与接口文档的设计保持一致。 1、兼容性测试:如:接口进行了调整…

【ACM训练】2023 河南 CCPC省赛 vp

2023 河南 CCPC省赛 题目链接 VP赛况: 目录 2023 河南 CCPC省赛赛况及总结赛况总结 补题 赛况及总结 赛况 开场:我提前打印了题册,于是我们开始分开看题目,我先看了A,发现很签,遂上机,8 m…

【软考系统规划与管理师笔记】第1篇 信息系统综合知识

目录 写在前面 1. 信息的基本概念 2. 信息的定量描述 3. 信息的传输模型 3. 信息系统的主要性能指标 4. 信息化的层次 5. 电子政务和电子商务 6. 信息系统 6.1 系统开发的方法 6.2 信息系统总体规划 6.3 信息系统规划内容 7 IT战略 8 习题收集 写在前面 系统规划与…

从8连挂到面面offer,我只用了一个月,面试25K测试岗血泪经验分享给你

直到如今,我才敢把这段经历分享出来,毕竟一个多月前,我是经历了面试八连挂的人。作为一只骄傲的软件测试工程师,恨不得找一块豆腐撞死。但是在闭关修炼了一个多月之后,重新出来面试,面试了五家公司&#xf…

《人月神话》译文修订明细(2)-读者可以对照修改

《人月神话》译文修订明细(1)-读者可以对照修改 《人月神话》译文修订如下,读者可以对照自己手上的书修改。 相关阅读 这回真要动刀子-征集《人月神话》中译本的翻译修正>> 第一章(续) 原译文 水平边界以下…

Graphpad Prism9.5.1 安装教程 (含Win/Mac版)

GraphPad Prism GraphPad Prism是一款非常专业强大的科研医学生物数据处理绘图软件,它可以将科学图形、综合曲线拟合(非线性回归)、可理解的统计数据、数据组织结合在一起,除了最基本的数据统计分析外,还能自动生成统…

Mysql中千万数据查询浅析

假如mysql数据库中有一千万数据,如何进行查询,查询效率如何,下面进行简单的分析。 1、准备数据 也许有些人没遇见过上千万数据量的表,没关系,下面通过sql脚本准备一下数据,环境为:mysql5.7. 1…

提示msvcr120.dll丢失怎么办?由于找不到msvcr120.dll如何修复?

msvcr120.dll 是 Microsoft Visual C 文件中的一个重要组件。它是一种动态链接库,包含了很多函数,提供了许多基础的 C 运行时支持。这个库文件的主要功能是提供 C 应用程序的运行时环境,它是一些常用的 C 运行时库文件的集合。这些库包括了 m…

队列:数据结构中的排队之道

本篇博客会讲解队列这种数据结构,并使用C语言实现。 概况 什么是队列呢?队列是一种先进先出的数据结构,即First In First Out,简称FIFO。队列有2端,分别是队头和队尾,规定只能在队尾插入数据(…

华为OD机试真题 Java 实现【单核CPU任务调度】【2023Q2 200分】

一、题目描述 现在有一个CPU和一些任务需要处理,已提前获知每个任务的任务D、优先级、所需执行时间和到达时间。 CPU同时只能运行一个任务,请编写一个任务调度程序,采用“可抢占优先权调度”调度算法进行任务调度,规则如 下&…

嵌入式Android系统启动基本分析

目录 第一:Android系统架构图: 第二:Android 系统启动流程如下: 第三:Android 层级分析 第四:案例分析 第五:Android 权限问题 上一篇我们讲了 Linux 系统的启动流程,本文讲解一…

QTableWidget样式设置

QTableWidget的样式分为几个部分: 分别是: 外框:QTableWidget 表头:QHeaderView 表头字段:QHeaderView::section 表格:QTableWidget::item 选中的表格:QTableWidget::item::selected 水平滚动条…