Android SurfaceFlinger

Sólo me gustaría preguntar si SurfaceFlinger siempre se llama para cualquier tipo de dibujo en la pantalla? Ejemplo, visualización del archivo JPG en la pantalla.

SurfaceFlinger no es lo que dibuja su ventana. Asigna un búfer de cuadro para su ventana, que el marco que se ejecuta en su aplicación se dirige directamente a sin interactuar con SurfaceFlinger. La única interacción que SurfaceFlinger está involucrada cuando dibujas tu ventana es compilar el buffer de marco nuevo final a la pantalla una vez que hayas terminado de dibujar un marco.

Sí, SurfaceFlinger es el compositor de Android, por lo que se necesita todo lo que se mostrará, las cifras que el marco resultante se verá como y luego lo envía a mostrarse en la pantalla a través de la interfaz gráfica de la tarjeta EGL.

Puedes tener la idea de que controla el resultado de todo lo que ves en una publicación del desarrollador Android Jeff Sharkey, donde pinta toda la pantalla para el modo nocturno . También he encontrado una presentación beamer que se ve bien sobre este tema .

http://pierrchen.blogspot.jp/2014/02/what-is-surfaceflinger-in-android.html

SurfaceFlinger es un servicio de sistema Android, responsable de componer todas las superficies de la aplicación y del sistema en un solo búfer que finalmente se mostrará mediante el controlador de pantalla.

Vamos a hacer zoom en la declaración anterior.

SurfaceFlinger es un servicio de todo el sistema, pero no está disponible directamente para el desarrollador de aplicaciones como Sensor u otros servicios. Cada vez que desee actualizar su interfaz de usuario, SurfaceFlinger se iniciará. Esto explica por qué SurfaceFlinger es un escurridor de la batería.

Además de las superficies de aplicación, hay superficies del sistema, incluyendo barra de estado, barra de navegación y, cuando ocurre la rotación, las superficies creadas por el sistema para la animación de rotación. La mayoría de las aplicaciones sólo tienen una superficie activa: la de la actividad de primer plano actual, otras tienen más de una cuando SurfaceView se utiliza en la jerarquía de vistas o se utiliza el modo Presentación.

SurfaceFlinger es responsable de COMPOSICIÓN de todas esas superficies. Un malentendido común es que SurfaceFinger es para DIBUJAR. No es correcto. Dibujo es el trabajo de OpenGL. Lo interesante es SurfaceFlinger utilizado openGL para la composición también.

El resultado de la composición se colocará en un búfer del sistema, o ventana nativa, que es la fuente para que el controlador de visualización obtenga datos. Esto es lo que ves en la pantalla.

  • Android Bitmap.createBitmap () rellena montón
  • Cómo cambiar el color predeterminado de borrado en la aplicación de pintura en Android?
  • ¿El android tiene * nativo * imagen de la ayuda SVG como recursos drenables (iconos)?
  • Cómo crear efectos de gráficos de partículas de fuegos artificiales en android
  • ¿Por qué la muestra de documentación se divide por 2 para calcular inSampleSize para la carga de mapa de bits?
  • Android: cómo averiguar la relación de aspecto exacta de píxeles de los dispositivos mediante programación?
  • Ruta de intersección en android
  • Gráficos para Android
  • Android AvoidXfermode está obsoleto desde la API 16, ¿hay un reemplazo?
  • Ideas para la física para rodar dados
  • Cómo dibujar una flecha utilizando la clase de gráficos de Android?
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.