Что происходит в main

«Что происходит в main» — вопрос из категории Java, который задают на 23% собеседований Android Разработчик. Ниже — развёрнутый ответ с разбором ключевых моментов.

Ответ

В Android main — это точка входа в приложение. При старте система вызывает метод main() из класса ActivityThread, который инициализирует главный поток (UI-поток) и запускает цикл сообщений (Looper.loop()). Затем создается экземпляр Application, загружаются ресурсы и запускается стартовая Activity.

Пример упрощенного main:

fun main(args: Array<String>) {
    Looper.prepareMainLooper()
    ActivityThread.attach(false)
    Looper.loop()
}

Ключевые моменты:

  • UI-поток становится HandlerThread с Looper
  • Все операции UI должны выполняться в этом потоке
  • Блокировка main потока приводит к ANR