我正在尝试理解android.graphics package和SurfaceFlinger之间的关系。
基于Android Graphics Documentation有两种绘制二维图形的方法。一种是使用视图对象,另一种是直接绘制到画布上。正如我从文档中读到的,当直接绘制到画布时,可以创建一个线程来管理链接到SurfaceFlinger的SurfaceView。我还在代码中注意到,android.graphics包只是SKIA库的一个包装器。SKIA函数使用JNI调用。因此,我不能确定调用是否仍然转到SurfaceFlinger。
这是否意味着在使用简单2D图形的视图对象时,不需要SurfaceFlinger?或者在屏幕上绘制任何类型的图形时总是使用Surfaceflinger?有什么建议吗?
发布于 2011-07-11 08:34:32
这个问题已经在我的另一篇文章中得到了回答。
根据@hackbod (我在进一步分析源代码时也证明了这一点),
SurfaceFlinger不是绘制窗口的工具。它为您的窗口分配一个帧缓冲区,在您的应用程序中运行的框架无需与SurfaceFlinger交互即可直接绘制该缓冲区。在绘制窗口时,SurfaceFlinger唯一涉及的交互是在绘制完帧后将最终的新帧缓冲区合成到屏幕上。
https://stackoverflow.com/questions/5657588
复制相似问题