Главный поток (main/UI thread) обрабатывает жизненный цикл, input и отрисовку; любая долгая работа на нём приводит к джанкам и ANR.
Разбор
- Обновлять View можно только с main thread.
- Handler(Looper.getMainLooper()) / runOnUiThread постят задачи на UI.
- Корутины: Dispatchers.Main для UI, Default/IO для фона.
- Профилируйте jank через Android Studio Profiler / Macrobenchmark.
Итог
UI thread священен: коротко реагировать, тяжесть — в фоне.