Systrace系列9 —— MainThread 和 RenderThread 解读

这篇具有很好参考价值的文章主要介绍了Systrace系列9 —— MainThread 和 RenderThread 解读。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

本文是介绍 Android App 中的 MainThread 和 RenderThread,也就是大家熟悉的主线程渲染线程。文章会从 Systrace 的角度来看 MainThread 和 RenderThread 的工作流程,以及涉及到的相关知识:卡顿、软件渲染、掉帧计算等。

这里以滑动列表为例 ,我们截取主线程和渲染线程一帧的工作流程(每一帧都会遵循这个流程,不过有的帧需要处理的事情多,有的帧需要处理的事情少) ,重点看 “UI Thread ” 和 RenderThread 这两行

Systrace系列9 —— MainThread 和 RenderThread 解读

这张图对应的工作流程如下文章来源地址https://www.toymoban.com/news/detail-473017.html

  1. 主线程处于 Sleep 状态,等待 Vsync 信号
  2. Vsync 信号到来,主线程被唤醒,Choreographer 回调 FrameDisplayEventReceiver.onVsync 开始一帧的绘制
  3. 处理 App 这一帧的 Input 事件(如果有的话)
  4. 处理 App 这一帧的 Animation 事件(如果有的话)
  5. 处理 App 这一帧的 Traversal 事件(如果有的话)
  6. 主线程与渲染线程同步渲染数据,同步结束后,主线程结束一帧的绘制,可以继续处理下一个 Message(如果有的话,IdleHandler 如果不为空,这时候也会触发处理),或者进入 Sleep 状态等待下一个 Vsync
  7. 渲染线程首先需要从 BufferQueue 里面取一个

到了这里,关于Systrace系列9 —— MainThread 和 RenderThread 解读的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • YOLOv5系列(二十八) 本文(2万字) | 可视化工具 | Comet | ClearML | Wandb | Visdom |

    点击进入专栏: 《人工智能专栏》 Python与Python | 机器学习 | 深度学习 | 目标检测 | YOLOv5及其改进 | YOLOv8及其改进 | 关键知识点 | 各种工具教程

    2024年02月03日
    浏览(37)
  • 小知识点系列(十一) 本文(2万字) | BCELoss | BCEWithLogitsLoss | CrossEntropyLoss | Smooth L1 Loss | NLLLOSS |

    点击进入专栏: 《人工智能专栏》 Python与Python | 机器学习 | 深度学习 | 目标检测 | YOLOv5及其改进 | YOLOv8及其改进 | 关键知识点 | 各种工具教程 官网 torch.nn - PyTorch中文文档 (pytorch-cn.readthedocs.io)

    2024年01月21日
    浏览(32)
  • Linux系列文章 —— vim的基本操作(误入vim退出请先按「ESC」再按:q不保存退出,相关操作请阅读本文)

    vim-操作篇 进程概念篇 进程地址空间篇 Linux,是一种免费使用和自由传播的类UNIX操作系统,是一个基于POSIX的多用户、多任务、支持多线程和多CPU的操作系统。它能运行主要的Unix工具软件、应用程序和网络协议。Linux继承了Unix以网络为核心的设计思想,是一个性能稳定的多用

    2024年02月03日
    浏览(36)
  • 工具系列(九) 本文(2万字) | 在ubuntu中安装docker教程 | 在Linux下Docker将镜像导出 | 上传至服务器 | 部署并创建容器 |

    点击进入专栏: 《人工智能专栏》 Python与Python | 机器学习 | 深度学习 | 目标检测 | YOLOv5及其改进 | YOLOv8及其改进 | 关键知识点 | 各种工具教程

    2024年01月19日
    浏览(58)
  • Python与Pytorch系列(二) 本文(1.8万字) | 解析Opencv, Matplotlib, PIL | 三者之间的转换 | 三者对JPG和PNG读取和写入 |

    点击进入专栏: 《人工智能专栏》 Python与Python | 机器学习 | 深度学习 | 目标检测 | YOLOv5及其改进 | YOLOv8及其改进 | 关键知识点 | 各种工具教程 推荐网站 : OpenCV Matplotlib Pillow opencv的基本图像类型可以和numpy数组相互转化,因此可以直接调用 torch.from_numpy(img) 将图像转换成 t

    2024年02月03日
    浏览(41)
  • Android性能分析工具-systrace使用

    本文暂时记录使用方法,具体结合项目后续再分析。 最近研究启动优化,在此记录一下systrace工具的使用。官网资料: source.android.google.cn/devices/tec… systrace 是分析 Android 设备性能的主要工具,也是平台提供的旧版命令行工具( Android 10后引入了Perfetto),可用于获得系统跟踪

    2024年02月07日
    浏览(53)
  • 一文解读无人配送标准进展 | 标准解读系列之十二

    关注公号回复“221123”可提供相关标准原文下载 文 | 吴冬升 全文 5 4 00 ,预计阅读 14 分钟 (一)无人配送标准整体情况  无人配送服务类标准方面 ,2020年3月10日,中国贸促会商业行业委员会发布了 《T/CCPITCSC 042-2020 无接触配送服务规范》 团体标准。2020年11月19日, 《GB/

    2024年02月05日
    浏览(31)
  • VLM 系列——中文CLIP——论文解读

        CLIP 的中文版《Chinese CLIP: Contrastive Vision-Language Pretraining in Chinese》,训练使用2亿 图-文 对的对比学习(不是LLM的预测下一个token),是一个双塔模型(图像和文本各子拥有一个编码器)。由于对齐了图像和文本特征,可以用来做:图-图(文章中没有相关测试任务)、图

    2024年01月24日
    浏览(44)
  • GPT系列论文解读:GPT-2

    GPT(Generative Pre-trained Transformer)是一系列基于Transformer架构的预训练语言模型 ,由OpenAI开发。以下是GPT系列的主要模型: GPT:GPT-1是于2018年发布的第一个版本,它使用了12个Transformer编码器层和1.5亿个参数。GPT-1的训练数据包括了互联网上的大量文本。 GPT-2:GPT-2于2019年发布

    2024年02月07日
    浏览(42)
  • GaussDB技术解读系列之高级压缩

    本文作者 华为云数据库GaussDB首席架构师 冯柯 数据压缩与关系数据库的结合,早已不是一个新鲜的话题,当前我们已经看到了各种各样数据库压缩的产品和解决方案。对于GaussDB来说,在今天引入数据压缩,究竟能够给客户带来什么不一样的价值,是过去一段时间我们一直在

    2024年02月15日
    浏览(36)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包