Некто Дмитрий Рабецкий (надеюсь, не переврал фамилию) написал классную статью про рендеринг 2D графики и Hardware Acceleration. Тут важно понимать, что речь идёт не про рисование каких-то простых кастомных вьюшек, а про несколько более сложные конструкции.
#view #rendering #graphics
https://medium.com/rosberryapps/make-your-custom-view-60fps-in-android-4587bbffa557
#view #rendering #graphics
https://medium.com/rosberryapps/make-your-custom-view-60fps-in-android-4587bbffa557
Medium
Make Your Custom View 60fps in Android
How often did you have to work with 2D graphics creating your own custom View? I’m sure in a majority of projects 2D drawing comes down to…
Выступление Chet Haase и Romain Guy. Тут ты должен был стать заинтригован.
В докладе описывается весь Android Rendering Pipeline, но поскольку вместить это в 40 минут не получится, доклад выглядит как быстрое набрасывание названий разных классов и модулей. Тем не менее, вдумчиво его посмотреть я бы скорее советовал.
Наброшу несколько названий из доклада, чтобы ты понимал, о чём речь: Choreographer, VSync, UI Thread, RenderThread, SurfaceFlinger, BufferQueue, Hardware Composer (HWC).
Теперь несколько интересных фактов из сессии:
1. Начиная с Android Oreo можно использовать
2. Кусочек хинта (почему так - см. видео) - чем меньше
3. Метод
4. “RecyclerView is now able to do prefetching of items ahead of time”
5. Graphika app on Github - пачка примеров с использованием SurfaceFlinger, Surface, SurfaceView, media encoder, virtual displays.
6.
Подробности обо всём этом найдёшь по ссылке.
#rendering #window #surface #gpu
https://youtu.be/zdQRIYOST64
В докладе описывается весь Android Rendering Pipeline, но поскольку вместить это в 40 минут не получится, доклад выглядит как быстрое набрасывание названий разных классов и модулей. Тем не менее, вдумчиво его посмотреть я бы скорее советовал.
Наброшу несколько названий из доклада, чтобы ты понимал, о чём речь: Choreographer, VSync, UI Thread, RenderThread, SurfaceFlinger, BufferQueue, Hardware Composer (HWC).
Теперь несколько интересных фактов из сессии:
1. Начиная с Android Oreo можно использовать
Bitmap.Config.HARDWARE, чтобы аллоцировать Bitmap напрямую на GPU и не тратить время на копирование. Недостаток: если серьёзно разойтись, можно получить пачку совершенно невнятных крашей из глубин фреймворка2. Кусочек хинта (почему так - см. видео) - чем меньше
Window объектов на экране, тем лучше3. Метод
invalidate(left, top, right, bottom) можно больше не дрочить - система уже умеет неплохо оптимизировать этот момент, а багов от его использования уйма4. “RecyclerView is now able to do prefetching of items ahead of time”
5. Graphika app on Github - пачка примеров с использованием SurfaceFlinger, Surface, SurfaceView, media encoder, virtual displays.
6.
adb shell dumpsys SurfaceFlinger лучше выполнять, когда что-то анимируется/меняется на экране, иначе можно получить не совсем точные данные из-за дополнительных оптимизацийПодробности обо всём этом найдёшь по ссылке.
#rendering #window #surface #gpu
https://youtu.be/zdQRIYOST64
YouTube
Drawn out: How Android renders (Google I/O '18)
Come learn how Android turns your app's UI into pixels on the screen. Understanding how things work under the hood can help you figure out how to get the best performance for your applications.
Rate this session by signing-in on the I/O website here → h…
Rate this session by signing-in on the I/O website here → h…
Интересный слух прилетел с xda-developers. Кажется, что в Android Q backend Skia переведут на Vulkan.
#androidq #skia #rendering #vulkan
https://www.xda-developers.com/google-android-q-vulkan-graphics-render-ui/
#androidq #skia #rendering #vulkan
https://www.xda-developers.com/google-android-q-vulkan-graphics-render-ui/
XDA
Android Q+ may use the Vulkan Graphics API to render the UI
Skia, Google's open source graphics engine, has a Vulkan Graphics API backend. This backend may be utilized to render the UI in Android Q or later.
В статье (прислал @lounvh) рассказывают про некоторые подходы к улучшению производительности
#recycler #rendering #ui
RecyclerView. Один из подходов - это эдакий scheduler для операций на UI-потоке. На реализацию я бы смотрел с недоверием, но сама идея классная.#recycler #rendering #ui
Medium
Smooth RecyclerView Scrolling in Android
Tips for using complex views without skipping frames
Хорошее видео "по верхам", чтобы оценить только малую часть сложности рендеринга в современных играх.
#talk #gamedev #rendering
#talk #gamedev #rendering
👍3
Чел нырнул в безумную сложность рисования текста, от простой загрузки глифов из файла, до нормального рендеринга разных хитрых шрифтов.
#talk #font #rendering
#talk #font #rendering
👍3