Как создается процесс приложения

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

Ответ

Приложение запускается как процесс при старте компонента (Activity, Service, BroadcastReceiver). Система создает процесс, назначает уникальный PID и main thread (UI thread).

Основные этапы:

  1. Zygote fork - система клонирует заранее созданный процесс Zygote
  2. Загрузка классов приложения через ClassLoader
  3. Создание Application-объекта (вызывается onCreate())
  4. Запуск main thread (Looper.prepareMainLooper())

Пример манифеста с указанием процесса:

<activity 
    android:name=".MainActivity"
    android:process=":custom_process"/>

Нюансы:

  • По умолчанию все компоненты работают в одном процессе
  • Можно задать отдельный процесс через android:process
  • Процессы с ":" - приватные, без ":" - глобальные
  • Система может убить фоновые процессы при нехватке памяти