TGViewer
Мобильная разработка #1 Мобильная разработка #1 @developer_mobila · 3.81K subscribers
Post #1724 807
🎨 Почему простой список лагает: Скрытый враг FPS (Overdraw)

Бывало такое? Вы сверстали красивый экран, но при скролле он идет рывками, а телефон в руках начинает нагреваться. Вы смотрите в код адаптера, там всё чисто.

Проблема не в коде. Проблема в Overdraw (Перерисовке).

Это когда система вынуждена закрашивать один и тот же пиксель на экране 3-4 раза за один кадр.
Пример: У вас есть белый фон у Activity -> сверху белый фон у Fragment -> сверху белый фон у карточки товара -> сверху картинка.
GPU делает 4 лишних действия, хотя пользователь видит только картинку.

🛠 Как увидеть это своими глазами:

🤖 Android:
Это встроенная суперсила, о которой забывают.

1. Идем в Настройки разработчика (Developer Options).

2. Ищем пункт «Отладка наложения GPU» (Debug GPU overdraw).

3. Выбираем «Показывать зоны наложения».

Ваш экран станет психоделически цветным:

• 💙 Синий: 1 слой (Идеал).

• 💚 Зеленый: 2 слоя (Норма).

• 🩷 Розовый: 3 слоя (Стоит обратить внимание).

• ❤️ Красный: 4+ слоя (Плохо! Тут тормозит).

🍏 iOS: В Xcode:

1. Запустите приложение на устройстве.

2. В меню Xcode: Debug -> View Debugging -> Rendering -> Color Blended Layers.

3. Красные зоны покажут места, где смешиваются прозрачные слои (это самое дорогое для GPU).

🚀 Как лечить:

1. Удаляйте лишние фоны (background). Если у контейнера уже есть белый фон, не нужно ставить такой же белый фон вложенному TextView

2. Избегайте прозрачности (alpha). Для GPU просчитать полупрозрачность сложнее, чем просто сплошной цвет.

3. В списках (RecyclerView/LazyColumn) следите, чтобы элементы не рисовали фон там, где его перекрывает картинка.

💡 Задание: Включите этот режим на телефоне и зайдите в популярные приложения (Telegram, YouTube). Посмотрите, как качественно (или нет) они оптимизированы. А потом зайдите в своё. 😉

Знали про эту настройку или всё это время гадали, почему падает FPS? 👇

#performance #ui #fps #android #ios #optimization #middle

👉 @developer_mobila
  • 👍 3
  • 👏 1
More from @developer_mobila
  1. Sep 14, 2026Как разрабатывать приложения для iPhone на iPad Звучит как противоречие: iPad стал вполне…
  2. Aug 24, 2026🧪 Как заставить XCUITest работать с интерфейсом глубиной более 100 уровней Инженеры Циана…
  3. Jul 25, 2026🚀 Подборка полезных IT каналов в Max Системное администрирование, DevOps 📌 https://max.r…
  4. Jul 8, 2026🕵️‍♂️ «Я спрятал ключ в константу»: Как Джуны дарят доступы хакерам Вы интегрировали крут…
  5. Jun 25, 2026👾 Androguard: Швейцарский нож для реверс-инжиниринга Android Если вы занимаетесь пентесто…
  6. Jun 22, 2026Живой космос на Metal: как я переписывал фон мобильной игры и поднимал FPS с 20 до 120 В м…
Threads Profile ViewerView any public Threads profile without an account.Open ThreadLook →Writing with AI? Make it sound human.Metric37 rewrites AI drafts so they read naturally. Free AI detector, 1,500 words free.Try Metric37 →