Android Графика Внутренние - PullRequest
38 голосов
/ 02 января 2011

Я не нашел четкого объяснения того, как работает графическая система Android, в частности, использует ли он сервер отображения, основан ли он на DirectFB или X11 и т. Д.

Из того, что мне удалось собрать, Android зависит от кадрового буфера Linux . Я не нашел много информации о том, какой сервер отображения или оконный менеджер Android использует для мультиплексирования доступа к фрейм-буферу, поэтому любые указатели были бы очень благодарны!

Наконец, из того, что я понимаю, набор инструкций ARM содержит инструкции по ускорению OpenGL, но как это интегрируется с сервером отображения, т.е. клиентские приложения согласовывают буфер разделяемой памяти, в который клиент пишет напрямую?

Являются ли библиотеки OpenGL для ускорителя платформы открытым исходным кодом? Я нашел несколько ссылок, предполагающих, что они являются закрытыми исходными кодами. Опять же, любые указатели будут оценены.

Ответы [ 4 ]

40 голосов
/ 15 февраля 2011

В графике Android есть два основных элемента: SurfaceFlinger и Skia. SurfaceFlinger - это Android-композитор, используемый оконным менеджером для создания и отображения окон (фактически называемых поверхностями.) В настоящее время SurfaceFlinger реализован поверх OpenGL ES 1.x, а также может использовать другие методы аппаратного ускорения, когда они доступны (MDP, 2D блиттер на T-Mobile G1 или аппаратные накладки на Xoom.)

Каждое приложение рендерится в свои окна (или поверхности), используя в основном Skia. Skia - это 2D графическая библиотека Android. Вы также можете использовать OpenGL ES 1.x и 2.0 для рендеринга на поверхность.

Android не использует DirectFB или X11 или любое другое существующее решение Linux.

8 голосов
/ 05 января 2012

Краткое представление о Android Graphics: http://www.slideshare.net/jserv/design-and-concepts-of-android-graphics

4 голосов
/ 08 марта 2013

Ромен Гай определенно был прав. Но с Android 3.0 ситуация изменилась. Skia уже не так важна, большинство 2D-чертежей ускоряются с помощью openGL, a.k.a HWUI-компонента.

1 голос
/ 27 июля 2016

Всю информацию об андроид графике можно найти здесь:

https://source.android.com/devices/graphics/

...