Многозадачная операционная система может запускать несколько программ или приложений одновременно. Для этого ОС должна тщательно управлять тем, как инструкции и процессы обрабатываются в микропроцессоре и как их данные хранятся в основной памяти. На смартфонах iPhone и Android есть многозадачность, но она работает не так, как на компьютерах.
Многозадачность в смартфонах
Приложения в смартфонах, работающие в фоновом режиме, не всегда отображают многозадачность. Они могут находиться в трех состояниях: запущенном, приостановленном (спящем) или закрытом.
Когда приложение находится в запущенном состоянии, оно находится на переднем плане, и вы используете его или взаимодействуете с ним. Когда приложение запущено, оно работает более или менее так же, как приложения на компьютерах, его инструкции выполняются процессором по мере того, как оно занимает место в памяти. Если это сетевое приложение, оно может получать и отправлять данные.
Большую часть времени приложения на смартфонах находятся в приостановленном (спящем) состоянии. Это означает, что они заморожены там, где вы их оставили; приложение больше не выполняется в процессоре, а место, которое оно занимает, находится в памяти. В этом случае данные, хранящиеся в памяти телефона, временно сохраняются на вторичном накопителе (SD-карта или расширенная память телефона — аналог жесткого диска на компьютере).
Когда вы возобновляете работу приложения, оно возвращает вас к тому месту, где вы остановились, перепланируя выполнение его инструкций процессором и возвращая «спящие» данные из вторичного хранилища в основную память.
Многозадачность и время работы от батареи
Спящее приложение не потребляет процессорную мощность или память, не принимает соединение и не расходует дополнительный заряд батареи. Именно поэтому большинство приложений для смартфонов переходят в спящий режим, когда их просят работать в фоновом режиме; они экономят заряд батареи.
Однако приложения, требующие постоянного соединения, например, приложения VoIP, следует держать в запущенном состоянии, что истощает батарею. Это связано с тем, что если они будут отправлены в спящий режим, соединения будут отклонены, звонки будут отклонены, а звонящие будут уведомлены о том, что получатель недоступен.
Некоторые приложения должны работать в фоновом режиме, выполняя настоящую многозадачность, например, музыкальные приложения, приложения, связанные с местоположением, приложения, связанные с сетью, приложения push-уведомлений и особенно приложения VoIP.
Многозадачность в iPhone и iPad
Это началось в iOS с вер. Вы можете выйти из запущенного приложения и переключиться на фоновое приложение, перейдя на главный экран. Обратите внимание, что это отличается от закрытия приложения. Если вы хотите возобновить работу с каким-либо приложением в фоновом режиме, вы можете использовать App Switcher, дважды нажав на кнопку «Домой». Это переносит внимание на массив иконок приложений, используемых в данный момент, размывая при этом главное меню. Появляющиеся значки — это значки, оставленные открытыми. Затем вы можете провести пальцем по списку и выбрать один из них.
iOS также использует push-уведомления, которые принимают сигналы от серверов, чтобы пробудить приложения, работающие в фоновом режиме. Приложения, получающие push-уведомления, не могут полностью перейти в спящий режим, поскольку им необходимо оставаться в рабочем состоянии, чтобы принимать входящие сообщения. Вы можете выбрать закрытие приложений в фоновом режиме с помощью длительного нажатия.
Многозадачность в Android
В версиях Android до Ice Cream Sandwich 4.0, нажатие кнопки «Домой» переводит запущенное приложение в фоновый режим, а длительное нажатие кнопки «Домой» вызывает список недавно использованных приложений. Ice Cream Sandwich 4.0 немного изменил ситуацию.
Есть заметный список последних приложений, который создает впечатление, что вы управляете приложениями, но это не так. Не все приложения в списке последних запущены — некоторые из них находятся в режиме сна, а некоторые закрыты. Нажатие и выбор одного приложения в списке может привести к запуску приложения из запущенного состояния, пробуждению из спящего состояния или загрузке приложения заново.
Приложения, предназначенные для работы в режиме многозадачности
Некоторые приложения предназначены для работы в многозадачной среде. Примером может служить Skype для iOS, который имеет новые возможности для обработки уведомлений и остается активным в фоновом режиме, потребляя минимум энергии аккумулятора. Skype — это VoIP-приложение, которое позволяет совершать голосовые и видеозвонки и должно оставаться активным всегда для более комфортной работы пользователя. Это работает подобно мобильному телефону, который постоянно проверяет наличие сигналов от входящих звонков и текстовых сообщений.
Некоторые пользователи хотят отключить многозадачность на своих устройствах, вероятно, потому что они считают, что приложения, работающие в фоновом режиме, замедляют работу их аппаратов и расходуют заряд батареи. Это возможно, но операционные системы не предоставляют простых вариантов для этого. Для iOS может потребоваться джейлбрейк телефона.