Intereting Posts
Поддерживать сеанс cookie в Android Настройка гравитации ImageView в центр в android программно 'Android.support.test.espresso не существует', когда я хочу использовать его для отдельного теста apk Обновление диалога прогресса в Activity из AsyncTask Как передать значения между действиями на Android? Исключение из памяти + анализ дампа файла hprof Android AppWidget TextView: как установить цвет фона во время выполнения Кто-нибудь когда-либо пытался использовать DialerFilter? Включить Stetho только в варианте сборки отладки Как закрыть текущий фрагмент с помощью кнопки, как кнопка «Назад»? Как сделать EditText Box Height Expand ListView, SimpleCursorAdapter, фильтр EditText – почему он ничего не сделает? Как получить доступ к представлениям внутри макета при повторном использовании его несколько раз? Есть диаграмма зависимостей задачи построения диаграммы Android? Почему функция setVisibility не работает после просмотра анимированного представления?

Android SurfaceFlinger

Я просто хотел бы спросить, всегда ли SurfaceFlinger вызывается для любого типа рисования на экране? Пример: отображение файла JPG на экране.

Solutions Collecting From Web of "Android SurfaceFlinger"

SurfaceFlinger не то, что рисует ваше окно. Он выделяет буфер кадра для вашего окна, к которому фреймворк, запущенный в вашем приложении, обращается напрямую, не взаимодействуя с SurfaceFlinger. Единственное взаимодействие SurfaceFlinger связано с тем, когда вы нарисовываете свое окно, чтобы скомпоновать последний буфер нового кадра на экран, как только вы закончите рисовать кадр.

Да, SurfaceFlinger – это композитор от Android, поэтому он получает все, что будет отображаться, и выяснит, как будет выглядеть результирующий кадр, а затем отправит его на экран с помощью интерфейса EGL графической карты.

Вы можете понять, что он контролирует результат всего, что вы видите в сообщении разработчика Android Джеффа Шарки, где он оттеняет весь экран для ночного режима . Я также нашел презентацию лучей, которая хорошо разбирается в этой теме .

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

SurfaceFlinger является системным сервисом Android, который отвечает за компоновку всех поверхностей приложений и систем в один буфер, который, наконец, будет отображаться контроллером дисплея.

Давайте увеличим выражение выше.

SurfaceFlinger – это системный сервис, но он не доступен непосредственно разработчику приложений, поскольку Sensor или другие сервисы могут быть. Каждый раз, когда вы хотите обновить свой пользовательский интерфейс, SurfaceFlinger начнет работать. Это объясняет, почему SurfaceFlinger – это сливной аккумулятор.

Помимо поверхностей вашего приложения, есть системные поверхности, в том числе строка состояния, панель навигации и, когда происходит поворот, поверхности, созданные системой для анимации вращения. Большинство приложений имеют только одну активную поверхность – текущую переднюю активность, другие – более одного, когда SurfaceView используется в иерархии представлений или используется режим презентации.

SurfaceFlinger отвечает за СОСТАВЛЕНИЕ всех этих поверхностей. Общее недоразумение заключается в том, что SurfaceFinger предназначен для ЧЕРТЕЖЕЙ. Это неверно. Рисование – это работа OpenGL. Интересно, что SurfaceFlinger использовал openGL для композитинга.

Результат композиции будет помещен в системный буфер или собственное окно, которое является источником для контроллера отображения для извлечения данных. Это то, что вы видите на экране.