LINUX.ORG.RU

Как устроена графика в Android?

 , ,


0

1

Там X-сервер, Wayland, или что? В этом топике советуют Skia, но я так понимаю, что это клиентская библиотека. А что у неё ниже? Надо ли что-то использовать кроме этой библиотеки при программировании при помощи NDK для того, чтобы сделать простое приложение с окном-формой?

Ответ на: комментарий от menangen

А этот Flutter можно использовать без Dart? Вроде что-то там есть ведь на C++?

А то мне поисковики сюда показывают - https://github.com/AshampooSystems/boden и вот это ещё - https://github.com/eugals/GTKAndroid

Shushundr ()
Последнее исправление: Shushundr (всего исправлений: 2 )
Ответ на: комментарий от Shushundr

Можно, но не нужно. Сейчас графику и UI не пишут на плюсах, прошлый век. Пишут на простых языках, а число дробилки специализированные уже пишут на крестах и дёргают из них, из вирт машины аля jvm

Сейчас рулят Flutter и React Native

menangen ★★★★★ ()

Там аппаратно ускоренный SurfaceFlinger, который работает как аналог Wayland и встроенных устаревших 40-летних тулкитов как X11 не имеет, поэтому оперирует лишь буферами/окнами/activity.

Поэтому точно так же как и для Wayland ты должен выбрать графический тулкит для отрисовки чего-либо. Любой, который заточен под Android и на нижнем уровне использует OpenGL ES или Vulkan.

EXL ★★★★★ ()
Ответ на: комментарий от EXL

Там аппаратно ускоренный SurfaceFlinger, который работает как аналог Wayland

Нет. SurfaceFlinger – это голый композитор. Управлением окон занимается WindowManager на Java. Wayland – это монолит который содержет в себе всё: композитор, оконную систему, управление вводом, WM, иногда даже оболочку. И не надо говорить что Wayland – это протокол. Все существующие его реализации такие.

X512 ★★★★ ()
Ответ на: комментарий от rumgot

Ну, приложухи можно и на чистом opengl клепать, и на rust и тп, только будет ли это удобно и быстро, да и ещё для одного разраба? Одному такие приложения разрабатывать будет не в пример сложнее, чем клепать на React Native

menangen ★★★★★ ()
Ответ на: комментарий от menangen

Ну не скажи. Если есть большой опыт C++/Qt и нет желания учить другой стек, то какую-нибудь приклодуху вполне себе удобно писать.

rumgot ★★★★★ ()
Ответ на: комментарий от X512

Wayland – это монолит который содержет в себе всё: композитор, оконную систему, управление вводом, WM, иногда даже оболочку.

Не содержит и содержать не может.

Все существующие его реализации такие.

…поэтому те, кому не наплевать, ведут работы по разделению этих сущностей. ИЧСХ, помех этому со стороны Wayland практически нет.

Но это же @X512, который при каждом упоминании Wayland готов вставить свое мнение о том, как, по его мнению все устроено – даже если это будет 4.2, о чем ему не раз сообщали.

Siborgium ★★★★ ()
Ответ на: комментарий от Siborgium

Не содержит и содержать не может.

Содержать не может откуда?

поэтому те, кому не наплевать, ведут работы по разделению этих сущностей.

Где эти люди?

Но это же @X512, который при каждом упоминании Wayland готов вставить свое мнение о том

Кстати DirectFB2 выглядит как годная замена Wayland.

X512 ★★★★ ()

Переходить ли на Android Desktop, чтобы не ставить Wayland?

Shushundr ()
Ответ на: комментарий от menangen

приложухи можно и на чистом opengl клепать

Я в этом сомневаюсь, потому что какая-никакая обвязка нужна, и я не уверен, что в opengl есть абстракция над ней, а так же реализация этой абстракции конкретно для SurfaceFlinger.

Shushundr ()
Ответ на: комментарий от menangen

Можно, но не нужно. Сейчас графику и UI не пишут на плюсах, прошлый век.

ПО пишут на том, что хорошо знают и привыкли. Сейчас по естественным причинам доминирует сегмент веб-разработки над всеми остальными. Причем сильно доминирует. Там задействовано больше всего людей. В итоге эти люди имеют возможность «насаждать» свое мировоззрение всей остальной индустрии. Гипотетически, если бы доминировала армия лисперов, то весь гуй бы делался на лиспе, а остальные подходы бы считались прошлым веком.

pathfinder ★★★★ ()
Ответ на: комментарий от Siborgium

поэтому те, кому не наплевать, ведут работы по разделению этих сущностей. ИЧСХ, помех этому со стороны Wayland практически нет.

ИЧСХ, каждый по-своему, в итоге имеем дикую фрагментацию и помех этому со стороны Wayland практически нет.

cocucka ★★★★☆ ()
Ответ на: комментарий от pathfinder

Гипотетически, если бы первым в тред зашел лиспер, то весь гуй бы делался на лиспе, а остальные подходы бы считались прошлым веком.

fixed)

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

goingUp ★★★★★ ()

Если я правильно понял, то Skia (как Cairo, только другая) вызывает ANGLE, а та в свою очередь могла бы использовать OpenGL (на линуксе). Как там в андроиде это происходит, я пока не знаю. Но мне абстрактно интересно, как пишут программы с использованием этой Skia. Chromium же как-то работает?

Shushundr ()
Последнее исправление: Shushundr (всего исправлений: 2 )
Ответ на: комментарий от cocucka

Одна ось, один дистр, один GNOME.


Вас не поймешь: то вам мало возможность и корпорасты навязывают, то не хватает помех фрагментации.

Siborgium ★★★★ ()
Ответ на: комментарий от Siborgium

Одна ось, один дистр, один GNOME.

Принципиально другие графические системы от него не отличаются. Тоже на C/C++ написаны. Вот когда перепишут на Rust…

Shushundr ()
Ответ на: комментарий от aol

Нет, я не нахожусь, я думал, не перейти ли в ту сторону.

И пока всё выглядит как-то непроработанно. Допустим, что графику можно сделать как в Firefox, то есть Moz2D поверх Skia.

Но я пока не нашел нигде объяснений, как эту Skia запустить через Vulkan.

Shushundr ()
Ответ на: комментарий от Shushundr

В задроиде это все перманентно выглядит непроработанным, т.к. они жертвы NIH синдрома и NDK вообще по остаточному принципу поддерживали, периодически ломая тулчейн, т.к. gcc им мешал вендорлокинить ;) Либо используй фреймворк где это уже порешано за тебя и просто нужно выбрать таргет (Qt, даже Unity, UE4, даже мармелад, маргарин), чтоб сосредоточиться на приложении и не страдать фигней, либо... сначала напиши свой минимальный враппер для мобилок, и под все (если даже несколько таргетов, даже десктоп, даже айос с митольными извращениями) пиши на opengl es/vulkan или сразу тот же ANGLE (игнорируя митольные извращения, если вдруг), враппер скорее всего получится и получится наименее жирным, но свое придется переколбасивать время от времени, т.к. они все время будут что-то ломать по совместимости :)

Но я пока не нашел нигде объяснений, как эту Skia запустить через Vulkan.

ANGLE translates OpenGL ES 2/3 calls to DirectX 9, 11, OpenGL or Vulkan API calls — тебе ее потому и предлагают, что вроде как тебе об этом думать не надо ;)) она же ANGLE использует.

slackwarrior ★★★★★ ()
Для того чтобы оставить комментарий войдите или зарегистрируйтесь.