Как Android отрисовывает картинку

Как Android отрисовывает картинку

Drawn out: how Android renders (Google I/O ’18) — интересное видео с рассказом о системе рендеринга Android. Основная цель — донести до зрителя идею, что малейшие строчки их кода и малейшие изменения интерфейса приводят в движение огромные механизмы и это следует иметь в виду. Простые примеры:

  • простейшее окошко со списком состоит из более чем десятка лейаутов;
  • простая операция смены цвета элемента приводит к его полной инвалидации, то есть пересчету состояния и размеров элемента, а кроме того, изменению информации обо всех предках этого элемента;
  • затем эта информация должна быть синхронизирована с потоком отрисовки, работающим с GPU, плюс ему должны быть отданы битмапы;
  • затем список необходимых для отрисовки операций перестраивается с целью их оптимизации на GPU (на видео есть превосходный пример на тему отрисовки Gmail в разных вариантах);
  • с помощью GL-команд выполняется отрисовка нужного изображения, которое затем возвращается обратно в тред отрисовки;
  • затем в дело вступает SurfaceFlinger, который собирает все части интерфейса Android в единое целое.

И это всего лишь то, что происходит при нажатии на элемент списка. В видео также есть рассказ о происходящем во время промотки этого списка. Рекомендую посмотреть.

Понравилась статья? Поделиться с друзьями:
Добавить комментарий