В чем разница между открытием Activity и фрагмента на уровне системы

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

Ответ

Открытие Activity создает новый экземпляр в стеке задач (back stack), управляемом системой. Каждая Activity имеет свой жизненный цикл и контекст. Система выделяет отдельное окно и может уничтожить Activity при нехватке памяти.

Фрагмент же существует внутри Activity и зависит от ее жизненного цикла. Он не имеет собственного стека (но может быть добавлен в back stack FragmentManager). Фрагменты легче по весу и предназначены для модульности внутри одного экрана.

Пример открытия:

// Activity
startActivity(Intent(this, SecondActivity::class.java))

// Fragment
supportFragmentManager.beginTransaction()
    .replace(R.id.container, MyFragment())
    .addToBackStack(null)
    .commit()