如何解决Android SurfaceFlinger
| 我只想问一下是否总是要求SurfaceFlinger在屏幕上进行任何类型的绘图? 例如,将JPG文件显示到屏幕上。解决方法
SurfaceFlinger并不是绘制窗口的原因。它为窗口分配一个帧缓冲区,应用程序中运行的框架无需与SurfaceFlinger进行交互即可直接将其绘制到该缓冲区。绘制窗口时,唯一涉及SurfaceFlinger的交互是在完成绘制框架后将最终的新框架缓冲区合成到屏幕上。
,是的,SurfaceFlinger是Android的合成器,因此它将获取将要显示的所有内容,弄清楚所生成的框架的外观,然后将其发送出去,以通过图形卡的EGL界面显示在屏幕上。
您可能会想到,它可以控制您在Android开发人员Jeff Sharkey的帖子中看到的所有结果,在该帖子中他将整个屏幕设置为夜间模式。我还找到了一个关于此主题的漂亮的演示文稿演示。
,http://pierrchen.blogspot.jp/2014/02/what-is-surfaceflinger-in-android.html
SurfaceFlinger是Android系统服务,负责
将所有应用程序和系统表面组合为一个
最后由显示控制器显示的缓冲区。
让我们放大以上语句。
SurfaceFlinger是一项系统范围的服务,但并非直接提供
提供给应用程序开发人员,因为Sensor或其他服务可以
是。每次您要更新UI时,SurfaceFlinger都会启动
in。这说明了SurfaceFlinger为什么是电池耗水器。
除了您的应用程序表面,还有系统表面,
包括状态栏,导航栏,以及发生旋转时,
系统为旋转动画创建的曲面。最
应用程序只有一个活动表面-当前的一个
前景活动,当SurfaceView为
在视图层次结构或演示模式下使用。
SurfaceFlinger负责合成所有这些曲面。一个
常见的误解是SurfaceFinger用于绘制。它是
不正确。绘图是OpenGL的工作。有趣的是
SurfaceFlinger也使用openGL进行合成。
合成结果将放入系统缓冲区或本机
窗口,这是显示控制器从中获取数据的源。
这就是您在屏幕上看到的。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。