## Как запускается программа на Android
### 1. Создание процесса Linux
Когда приложение на Android запускается, система Android создает для него новый процесс Linux. Каждый процесс имеет свой собственный виртуальный адрес, память и набор открытых файлов.
### 2. Загрузка и запуск виртуальной машины Java (JVM)
В процессе Linux загружается виртуальная машина Java (JVM), которая отвечает за выполнение кода Java приложения. JVM предоставляет среду выполнения для приложения, управляя кодом Java и обрабатывая исключения.
### 3. Создание экземпляра основного класса активности (Activity)
После запуска JVM создается экземпляр основного класса активности (Activity) приложения. Класс Activity представляет собой основное пользовательское окно приложения и предоставляет функции, такие как управление жизненным циклом окна, обработка событий пользовательского интерфейса и взаимодействие с другими компонентами приложения.
### 4. Вызов метода onCreate()
Метод onCreate() класса Activity вызывается системой Android при создании окна активности. Этот метод используется для инициализации окна активности, включая надувание ее макета (т. е. загрузку и отображение графического пользовательского интерфейса) и настройку ее поведения.
### 5. Выполнение основного цикла обработки сообщений (Event Loop)
После того, как метод onCreate() завершится, окно Activity начинает основной цикл обработки сообщений. Цикл обработки сообщений постоянно проверяет наличие сообщений, отправленных системе Android или приложению, и вызывает соответствующие обработчики для их обработки. Эта обработка может включать в себя обновления пользовательского интерфейса, обработку событий пользовательского ввода или вызовы другого кода в приложении.
## Компоненты жизненного цикла активности
Android предоставляет набор методов жизненного цикла активности, которые вызываются в разное время во время жизненного цикла активности. Эти методы позволяют приложению отвечать на изменения состояния активности, такие как ее создание, запуск, остановка и уничтожение.
### Жизненный цикл активности
onCreate(): Вызывается при создании окна активности.
onStart(): Вызывается при запуске окна активности и его отображении пользователю.
onResume(): Вызывается при возобновлении окна активности, когда оно становится видимым для пользователя.
onPause(): Вызывается при приостановке окна активности, когда оно перестает быть видимым для пользователя.
onStop(): Вызывается при остановке окна активности, когда оно уже не видно пользователю.
onDestroy(): Вызывается при уничтожении окна активности.
## Обработка событий и взаимодействие с пользователем
Android предоставляет механизм для обработки событий пользовательского интерфейса, таких как нажатия кнопок, касания и нажатия клавиш. Эти события отправляются в окно активности, и приложение может переопределить методы обработки событий для обработки этих взаимодействий.
Для взаимодействия с пользователем Android предоставляет набор виджетов пользовательского интерфейса, которые приложение может использовать для отображения графического пользовательского интерфейса, получения ввода от пользователя и реагирования на действия пользователя.
## Заключение
Запуск приложения на Android включает в себя создание процесса Linux, загрузку JVM, создание экземпляра основного класса Activity, выполнение метода onCreate() и обработку событий в основном цикле обработки сообщений. Android также предоставляет набор методов жизненного цикла активности, которые позволяют приложению отвечать на изменения состояния активности и обрабатывать события пользовательского интерфейса для взаимодействия с пользователем.