【问题标题】:Relationship between android.graphics package and SurfaceFlingerandroid.graphics包与SurfaceFlinger的关系
【发布时间】:2012-07-19 18:41:35
【问题描述】:

我试图了解 android.graphics packageSurfaceFlinger 之间的关系。

基于Android Graphics Documentation,有两种方法可以绘制二维图形。一种是使用 VIEW 对象,另一种是直接绘制到 Canvas。正如我从文档中读到的,当直接绘制到画布上时,可以创建一个线程来管理链接到SurfaceFlingerSurfaceView。我还在代码中注意到 android.graphics 包只是 SKIA 库的包装器。使用 JNI 调用 SKIA 函数。因此,我无法确定呼叫是否仍会转到 SurfaceFlinger。

这是否意味着当使用View对象做简单的2D图形时,就不需要SurfaceFlinger了?还是在将任何类型的图形绘制到屏幕上时总是使用 Surfaceflinger?有输入吗?

【问题讨论】:

    标签: android graphics


    【解决方案1】:

    这个问题已经在我的另一篇文章中回答了。

    Android SurfaceFlinger

    根据@hackbod(我在进一步分析源代码时也证明了这一点),

    SurfaceFlinger 不是绘制窗口的东西。它为您的窗口分配一个帧缓冲区,在您的应用程序中运行的框架直接绘制到该窗口,而不与 SurfaceFlinger 交互。绘制窗口时,SurfaceFlinger 所涉及的唯一交互是在绘制完帧后将最终的新帧缓冲区合成到屏幕上。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2021-06-17
      • 2019-03-29
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-10-07
      相关资源
      最近更新 更多