Что происходит в ОС Android, когда в фоновом режиме слишком много «спящих» приложений? - PullRequest
4 голосов
/ 10 февраля 2011

Я читал, что Android (как и большинство мобильных ОС) не «закрывает» приложения.

Когда мы нажимаем кнопку «Назад», приложение все еще находится в фоновом режиме (как состояние ожидания).).

Итак, я хотел бы знать, что он делает, когда в фоновом режиме работает слишком много приложений?

Ответы [ 7 ]

6 голосов
/ 10 февраля 2011

Из официальное руководство разработчика Android :

Система Android пытается поддерживать процесс подачи заявления до тех пор, пока возможно, но со временем это понадобится удалить старые процессы, когда память иссякает Чтобы определить, какие процессы сохранить и что убить, Android помещает каждый процесс в «иерархия важности» на основе компоненты, работающие в нем и состояние из этих компонентов. Процессы с наименьшее значение устраняется сначала те, кто со следующим самый низкий и т. д.

С точки зрения пользователя, чем больше памяти у устройства Android, тем лучше. Зачем? Приложения, которые не используются, «простаивают» и занимают часть оперативной памяти устройства.

Каждый раз, когда вы запускаете приложение с нуля, то есть приложение, которое не находится в режиме ожидания, ЦП Android будет использовать ресурсы для его оживления и сохранения в памяти.

Когда приложение переходит в режим ожидания, а затем снова в активный режим, оно не будет израсходовать столько ресурсов процессора. Использование ЦП является основным источником заряда батареи, если не принимать во внимание GPS, WI-FI и Bluetooth.

Итак, что это все значит? Вы хотите, чтобы приложения, которые вы часто используете, находились в памяти, чтобы процессор не использовался так часто. Android будет поддерживать их в зависимости от приоритета.

По этой причине убийцы задач являются плохой идеей, и именно поэтому они больше не будут работать в Android 2.2, Froyo.

1 голос
/ 10 февраля 2011

Ох, как обычно, Android просто идет на убийство

    Line 8544: 01-24 18:41:30.610 I/am_kill ( 2474): [5601,com.google.android.youtube,12,too many background]
    Line 8655: 01-24 18:42:15.637 I/am_kill ( 2474): [5995,com.sec.android.app.camera:CropImage,12,too many background]
    Line 8714: 01-24 18:42:26.505 I/am_kill ( 2474): [5961,com.sec.android.app.camera,12,too many background]
0 голосов
/ 10 февраля 2011

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

Здесь - это ссылка на хорошее объяснение проблемы, которая лежит в основе проблемы «Нужен ли мне убийца задач», о которой спорят многие пользователи Android.

0 голосов
/ 10 февраля 2011

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

На странице "Основы приложений" в руководстве разработчика:

Если действие приостановлено или остановлено, система может сбросить его из памяти либо попросив его закончить его метод finish (), или просто убивая его процесс. Когда он является отображается снова для пользователя, он должен быть полностью перезапущен и восстановлен в прежнее состояние

http://developer.android.com/guide/topics/fundamentals.html#lcycles

0 голосов
/ 10 февраля 2011

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

Вы можете написать приложения Android для запуска в качестве службы, но они не будут закрытыи будет продолжать работать в фоновом режиме.

Прочитайте эти темы для получения более подробной информации:

http://developer.android.com/guide/topics/fundamentals.html

http://developer.android.com/reference/android/app/Activity.html

0 голосов
/ 10 февраля 2011

Определите «слишком много». : -)

Свободные приложения не используют ресурсы (если специально не запрограммированы для этого).

Если в памяти телефона недостаточно памяти, приложения с самым низким приоритетом уничтожаются, а память восстанавливается.

Убийцы задач на Android по своей сути не нужны.

Подробнее об этом читайте здесь: Почему вы не должны использовать Task Killer с Android

0 голосов
/ 10 февраля 2011

Деятельность убивается.Это не должно быть проблемой, потому что разработчик прочитал это руководство и закодировал его:)

http://developer.android.com/guide/topics/fundamentals.html#lcycles

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...