表面组合有三种方法:

>使用“叠加”平面.当像素被发送到显示器时,最近的设备将组成多达四个平面.这(通常)是进行表面组合的最有效方式.它是DRM视频所必需的,因为目前GLES无法构成“安全”曲面.

>在GPU上,使用OpenGL ES.如果你有超过四架飞机要组成,SurfaceFlinger将会回归到这个状态.它还用于虚拟显示和屏幕记录等.在某些设备上,如果没有任何表面稍微更新过,硬件编写器将使用GPU组合曲面,然后只显示单个缓冲区.如果没有任何变化,这比覆盖平面更有带宽效率(因为您不必遍历所有表面,这意味着您需要更少的内存带宽,这意味着您可以降低时间,这意味着您可以使用更少的功率).

>在CPU上.没有人这样做了.

它究竟在做什么因设备而异,并随着时间的推移而发展.如果你想确切地看到它在做什么,试试adb shell dumpsys SurfaceFlinger.硬件作曲家的细节(靠近底部)是最有趣的部分.在运行命令时,您可能需要在设备显示屏上主动滚动某些内容以避免GLES优化.

我猜你在systrace中看到的是prepare()和set()调用和缓冲区管理,而不是实际的像素组成.

更新:在this post中有一个非常好的写作.

android 画面渲染gpu cpu,android渲染使用CPU而不是GPU?相关推荐

  1. android画面数据存储方式,Android的三种储存方式

    SharePreferences SharePreferences适合用来保存相对较小的键值集合,比如应用程序的配置文件,它本质是存放在/data/data/[包名]/shared_prefs文件夹下 ...

  2. 【Android 性能优化】布局渲染优化 ( GPU 过度绘制优化总结 | CPU 渲染过程 | Layout Inspector 工具 | View Tree 分析 | 布局组件层级分析 )

    文章目录 一. GPU 过度绘制优化总结 二. CPU 渲染过程 三. CPU 渲染性能调试工具 Layout Inspector 四. Layout Inspector 组件树 DecorView ...

  3. Android性能优化(4):UI渲染机制以及优化

    文章目录 1. 渲染机制分析 1.1 渲染机制 1.2 卡顿现象 1.3 内存抖动 2. 渲染优化方式 2.1 过度绘制优化 2.1.1 Show GPU overdraw 2.1.2 Profile ...

  4. 【Android 性能优化】布局渲染优化 ( 过渡绘制 | 背景设置产生的过度绘制 | Android 系统的渲染优化 | 自定义布局渲染优化 )

    文章目录 一. 背景设置产生的过度绘制 二. Android 系统的渲染优化 1. 透明组件数据传递 2. GPU 存储机制 3. Android 7.0 之后的优化机制 三. 自定义布局渲染优化 一 ...

  5. Android应用程序请求SurfaceFlinger服务渲染Surface的过程分析

    文章转载至CSDN社区罗升阳的安卓之旅,原文地址:http://blog.csdn.net/luoshengyang/article/details/7932268 在前面一篇文章中,我们分析了And ...

  6. ​在 Android 上进行高刷新率渲染

    作者 / Ady Abraham, Software Engineer 长久以来,手机屏幕刷新率都是 60Hz.应用和游戏开发者也习惯了假定刷新率为 60Hz,也就是每 16.6ms 生成一帧,而且这 ...

  7. Android 颜色渲染(五) LinearGradient线性渲染

    版权声明:本文为博主原创文章,未经博主允许不得转载. Android 颜色处理(五) LinearGradient线性渲染 相信很多人都看过歌词同步的效果, 一是竖直方向的滚动,另一方面是水平方面的歌 ...

  8. 【Android 应用开发】Paint 渲染 之 BitmapShader 位图渲染 ( 渲染流程 | CLAMP 拉伸最后像素 | REPEAT 重复绘制图片 | MIRROR 绘制反向图片 )

    文章目录 1. 位图渲染 BitmapShader 简介 ( 1 ) 位图渲染综述 ( ① 三种方式 : Shader.TileMode.CLAMP | Shader.TileMode.REPEAT ...

  9. Android 颜色渲染(六) RadialGradient 环形渲染

    Android 颜色处理(六) RadialGradient 环形渲染 public RadialGradient(float x, float y, float radius, int[] colo ...

  10. android平台下基于ANativeWindow实现渲染bitmap图像

    OpenGL ES 3.0学习实践 android平台下OpenGL ES 3.0从零开始 android平台下OpenGL ES 3.0绘制纯色背景 android平台下OpenGL ES 3.0绘 ...

最新文章

  1. php: 通过key获取多维数组中的值
  2. word2vec原理浅析
  3. iOS 混合网页开发 问题
  4. 微服务实战(六):落地微服务架构到直销系统(事件存储)
  5. 2043. 简易银行系统
  6. [SDOI2008]Cave 洞穴勘测
  7. Ansible的简单使用
  8. hadoop备战:hbase的分布式安装经验
  9. JDK多了一个shenandoah GC
  10. 大一高数下册笔记整理_高数下册学习笔记
  11. 学习总结:Handler机制
  12. 机械设备行业经销商管理系统细致化经销商管理,让渠道管理更可控
  13. 什么是网站PR值?如何提高网站pr值?网站pr值查询!
  14. 志金庸小说里,让你印象最深的是哪一段?
  15. 深度学习二分类问题--IMDB数据集
  16. python判断今天周几_如何用python判断今天是星期几
  17. “单词不用背,看完自然会”,4天背过2万单词,原来学英语真的有捷径!
  18. 今天听得好多老的电影的配乐啊
  19. 全面理解Python迭代器和生成器
  20. 软件企业认定条件政策

热门文章

  1. Tudoucms校园跑腿同学小程序源码
  2. 基于Echarts插件的省市区多级地图下钻和返回功能实现
  3. 红米路由器ac2100怎样设置ipv6_红米路由器AC2100刷机教程:刷老毛子Padavan固件
  4. Selenium—八种元素定位方法
  5. 亚马逊收款方式费用对比?
  6. 精通Web Analytics 2.0 (6) 第四章:点击流分析的奇妙世界:实际的解决方案
  7. 《涨知识啦35》-二极管中的隧道效应和齐纳击穿现象
  8. 一款好用的数据可视化报表分析工具
  9. 支付宝:web页面扫码支付、网站支付、支付宝即时到账 + springmvc
  10. UE4 HTN插件使用说明