Как работают activity

Я пришла в андроид разработку из WPF. В нём всё понятно и просто, в том числе из-за работы в ОС windows. Прилодение запускается в отдельном процессе, и между окнами разделяется общее адресное пространство, что позволяет создавать свои классы окон и передавать им ссылки на объекты. В android с активностями так не получится. А если получится, то всех пугают утечкой памяти. Поэтому каждая активность как будто изолирована и может получать только копию данных через всякие intent и bundle. В связи с этим у меня есть вопрос. Активности и другие компоненты, запускаются в отдельных процессах linux (может, дочерних) или всё-таки представляют отдельный поток одного общего процесса? Несколько я знаю, там есть специальная программа в ос bindler вроде, и только она может запускать программы андроида. Спасибо за ответ!


Ответы (1 шт):

Автор решения: Wlad

нашел лекции с учебы по этом теме

•Каждое приложение Android, установленное на устройстве, работает в собственной "песочнице" (изолированной программной среде)

•операционная система Android представляет собой многопользовательскую систему Linux, в которой каждое приложение является отдельным пользователем;

•по умолчанию система назначает каждому приложению уникальный идентификатор пользователя Linux (этот идентификатор используется только системой и неизвестен приложению); система устанавливает полномочия для всех файлов в приложении, с тем чтобы доступ к ним был разрешен только пользователю с идентифика-тором, назначенным этому приложению;

•у каждого процесса имеется собственная виртуальная машина (ВМ), так что код приложения выполняется изолированно от других приложений;

•по умолчанию каждое приложение выполняется в собственном процессе Linux. Android запускает процесс, когда требуется выполнить какой-либо компонент приложения, а затем завершает процесс, когда он больше не нужен либо когда системе требуется освободить память для других приложений.

Таким образом система Android реализует принцип предоставления минимальных прав. То есть каждое приложение по умолчанию имеет доступ только к тем компонентам, которые ему необходимы для работы, и ни к каким другим. Благодаря этому формируется исключительно безопасная среда, в которой приложение не имеет доступа к недозволенным областям системы

→ Ссылка