Модель Android процесса
Android — многопользовательская многозадачная система, которая может запускать параллельно несколько приложений, где все приложения пытаются получить процессорное время для выполнения своей работы.
Каждое приложение запускается независимо в изолированном Linux процессе, клонированном из процесса Zygote, и по умолчанию, все компоненты Android запускаются в том же процессе с тем же именем, как пакет прикладных программ точно сформулированный в Манифесте Android Приложений (Android Application Manifest, AAM).
Ядро Linux равномерно распределяет немного процессорного времени для запуска приложений называемых срезами процессорного времени. Такой времяразделительный подход означает, что даже однопроцессорное устройство может активно работать с более чем одним приложением, когда по факту, каждое приложение очень быстро нагружает ЦП.
Ранги процессов
Операционная система Android пытается держать приложения запущенными, как можно дольше, но когда свободной памяти недостаточно, она попытается освободить ресурсы в системе, уничтожая процессы с малой значимостью.
И тогда ранги процессов проявляют себя; процессы Android занимают места в следующих пяти категориях, от процессов с высоким до процессов с низким приоритетом:
Когда система достигает точки, когда необходимо высвободить ресурсы, процессы доступные для уничтожения сортируются, беря во внимание ранг процесса, последние использованные ресурсы, и запущенные компоненты.
Процесс песочницы
Приложения всегда стартуют под уникальным Linux пользовательским индентификатором (user ID, UID), назначенным приложению во время инсталяции, так процесс запускается в изолированной среде (П.П. в той самой "песочнице"), что по умолчанию, изолирует ваши данные и выполненный код из других приложений.
В некоторых случаях, пользователю явно может понадобиться поделиться UID с другими приложениями для получения их данных:
Предыдущая таблица является результатом выполнения команды adb shell ps на компьютере с Android SDK Table, и представляет собой список запущенных процессов Android.
В первой колонне показан идентификатор пользователя (UID) назначенный во время установки, вторая колонна — ID процесса (PID), в третьей колонне показан родительский процесс ID (parent process ID, PPID), что для этих приложений есть свой Zygote, и в последней колонне показан прикладной пакет.
Из этого списка, мы можем быть уверены, что WhatsApp запущен под пользовательским ID u0_a221 с ID процесса 5993 и родительский процесс — Zygote с PID 319.
http://tl.rulate.ru/book/12504/321267
Готово:
Использование: