Android显示系统的基本原理(一)

💡 原文中文,约28600字,阅读约需68分钟。
📝

内容提要

本文介绍了Android中的显现体系,重点讲解了View的显现过程,包括Surface的创建和Canvas的绘制操作。Surface在图形数据的出产过程中起到了重要的作用,为数据输入提供了标准接口。

🎯

关键要点

  • 图形显现部分是Android操作体系的重要模块,承载用户交互与内容展现。
  • 本文主要从View的显现过程切入,讲解Android显现体系的基本原理和运行机制。
  • View的显现依赖于onDraw方法中的canvas进行制作,最终将像素数据传递给显现体系。
  • Canvas是通过Surface调用lockCanvas方法获得的,制作完成后需要释放。
  • Surface是显现体系中的关键部分,聚集烘托数据并传递给显现模块。
  • Android显现体系采用多对一的出产消费模型,数据出产端包括View、Camera、OpenGL ES等。
  • SurfaceFlinger负责将烘托数据合成为一个帧并发送到显示控制器。
  • 出产者通过Surface提供的接口输入烘托数据,Surface是数据的聚集地。
  • View的制作过程通过onDraw回调和canvas逐个进行,最终生成烘托数据。
  • Surface的创建依赖于SurfaceController,涉及Java层和cpp层的交互。
  • Surface的创建过程包括跨进程调用和native层的SurfaceControl的创建。
  • ViewRootImpl中通过Surface获取Canvas,Canvas用于图形制作。
  • 制作过程包括获取Canvas、通过Canvas进行制作、释放并发送Canvas。
  • Surface提供了数据输入的标准接口,广泛应用于图形数据出产者中。

延伸问答

Android的显现体系是如何工作的?

Android的显现体系采用多对一的出产消费模型,数据出产端包括View、Camera、OpenGL ES等,SurfaceFlinger负责将烘托数据合成为一个帧并发送到显示控制器。

Surface在Android显现体系中起什么作用?

Surface是显现体系中的关键部分,聚集烘托数据并提供标准接口供数据出产者输入数据。

Canvas是如何与Surface交互的?

Canvas通过Surface调用lockCanvas方法获得,制作完成后需要释放并通过Surface发送烘托数据。

View的显现过程是怎样的?

View的显现过程通过onDraw方法中的canvas进行制作,最终将像素数据传递给显现体系。

Surface的创建过程涉及哪些步骤?

Surface的创建依赖于SurfaceController,涉及Java层和cpp层的交互,包括跨进程调用和native层的SurfaceControl的创建。

Android显现体系中的数据出产者有哪些?

数据出产者包括Android View、Camera、OpenGL ES等,它们通过Surface提供的接口输入烘托数据。

➡️

继续阅读