Подтвердить что ты не робот

Внутренние интерфейсы для Android

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

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

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

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

4b9b3361

Ответ 1

В 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.

Ответ 3

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