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进行合成。      合成结果将放入系统缓冲区或本机   窗口,这是显示控制器从中获取数据的源。   这就是您在屏幕上看到的。     

要回复问题请先登录注册