1. В Android все окна рисуются во весь экран и представлены классом Activity.
2. Ты наследуешься от Activity и указываешь её в манифесте с указанием по какому событию оно будет появляться (Intent, в простом случае - строка)
3. При открытии Activity получает текущие данные из системы в виде словаря savedInstanceState. Соответственно, есть метод onSaveInstanceState.
4. Внутри активити может сама рисовать все содержимое с помощью виджетов или содержать фрагменты.
5. Фрагмент кладется на активити и может быть заменен целиком на другой и т.п.
6. Виджеты - всякие тексты, кнопки, инпуты и т.п.
7. Виджеты умеют сами куда-то сохранять свой стейт (уточнить как) без необходимости это реализовывать в onSaveInstanceState активити
8. У виджетов есть события на которые можно вешать хэндлеры
9. Так же есть понятие как Task stack - это стек активти, которые расположены поверх друг друга
10. Стеков может быть много
11. В каждый момент времени отображается одно активити, но в стеке может лежать много
12. Стек на самом деле поддерживает операции перемещения. При открытии активти оно может :
- добавлено в стек
- очистить стек и остаться одним,
- переместиться наверх стека из середины
- уточнить что ещё
13. Все это успешно переживает перезапуск приложения от нехватки памяти и юзер обычно не замечает (кроме вероятных тормозов)
1. Не всегда во весь экран, есть ещё диалоги. Окна — не только лишь Активити, есть ещё Window.
2. Интент — не строка, но в целом да.
7. Активити/Фрагмент сохраняет стейт вьюшек, у которых есть ID.
11. Есть multiwindow.
12. Можно поискать по ключевому слову launchMode, там адище :)