Преимущества принудительного закрытия приложений на устройствах iOS?

8

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

Вопрос заключается в том, принуждает ли принудительное закрытие приложений (то есть двойной щелчок по кнопке «домой», а затем смахивание на них) иметь какую-либо выгоду от заряда батареи или общей производительности iPhone или любого другого устройства iOS?

Munesawagi
источник
1
@ Tetsujin Если у вас есть ответ, пожалуйста, опубликуйте его ниже, спасибо. Комментарии не имеют возможности редактировать или проверять «ответ» как правильный (или нет).
Роберт Картейно

Ответы:

6

Было много споров и дискуссий по этой теме. Я считаю, что это было выгодно для iOS в дни v3 и v4, но сейчас это не так.

Крэйг Федериги даже недавно вышел, сказав, что в этом нет необходимости, и это не увеличивает время автономной работы. Apple имеет встроенную систему управления памятью, чтобы в нужное время приостанавливать и / или отключать приложение. Единственное время, когда вы должны принудительно закрыть приложение, это если оно перестало отвечать на запросы.

ФСБ
источник
4

В одном случае принудительное завершение может иметь преимущество для iOS, которое перевешивает стоимость дополнительной обработки, необходимой для очистки процесса, его перезапуска и очистки любых файлов, которые кэшируются / открываются.

Недостатком этого является то, что приложения не работают в фоновом режиме - поэтому, когда вы переключаетесь на новое приложение или трамплин / список значков / экран блокировки - iOS уже остановила / приостановила / сбросила всю активность файловой системы для приложения.

Он сообщает замороженному приложению, что ему необходимо полностью заново инициализировать себя, не обращая внимания на сохраненное состояние или кэшированные результаты. Он сигнализирует Apple в форме отчета о сбое (и, возможно, разработчику) о том, что некоторые хлебные крошки находятся именно там, где приложение было в коде, когда оно было «убито» пользователем.

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

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

bmike
источник
Не думай, что это так просто. Если приложение использует значительное количество ресурсов в фоновом режиме (например, Facebook), и вы не собираетесь переключаться на него в течение более длительного времени, усилия по перезапуску будут меньше, чем работа по поддержанию работы.
холме
@patrix Я не могу говорить за Facebook в частности, но если приложение зарегистрировано для запуска фоновых служб, iOS запускает их сразу же после принудительного выхода - так, если приложение не закодировано, чтобы не запускаться при автоматическом запуске - принудительное завершение фактически не предотвращает повторное появление фоновых потоков / задач - оно просто прерывает их, очищает и затем они запускаются снова.
bmike
3

В последнее время эта тема снова горячая. Я твердо верю, что принудительно выходить из приложений на устройствах iOS бесполезно. Полезно перезапускать приложения только после их сбоя. Здесь больше информации.

9to5Mac:

В некоторых кругах существует давняя вера в то, что использование многозадачной функции iOS для принудительного выхода из приложений может помочь сэкономить заряд батареи iPhone или повысить скорость работы программного обеспечения, когда смартфон работает медленно.

Ранее на этой неделе пользователь iPhone решил отправить электронное письмо генеральному директору Apple Тиму Куку, чтобы раз и навсегда уложить проблему, и вместо этого получил ответ от Крейга Федериги, старшего вице-президента Apple по разработке программного обеспечения (через 9to5Mac).

Диалог по электронной почте

 

Здесь, из официального документа поддержки по принудительному закрытию приложений, содержится собственный совет Apple о том, когда использовать эту функцию:

Если дважды щелкнуть кнопку «Домой», отобразятся недавно использованные приложения. Приложения не открыты, но находятся в режиме ожидания, чтобы помочь вам ориентироваться и выполнять многозадачные задачи. Вы должны принудительно закрыть приложение, только когда оно не отвечает.

 

MacDailyNews цитирует электронное письмо 2010 года от Стива Джобса:

Просто используйте [многозадачность iOS], как задумано, и вы будете счастливы. Нет необходимости выходить из приложений.

 

На всякий случай, если вы не верите старшему вице-президенту Apple по программному обеспечению, собственной официальной документации по поддержке Apple или Стиву Джобсу, вот несколько других статей, в которых рассказывается о том, как эта привычка наносит вред работе батареи iPhone:

l1ghthouse
источник
0

Теоретически да. Приложения, работающие в фоновом режиме, потребляют память (их потоки все еще существуют, и поэтому вы можете увидеть их в списке, если дважды щелкнуть кнопку «Домой»), и, следовательно, они потребляют батарею.

Но практически, не совсем. iOS довольно хорошо справляется с управлением памятью, а приложения, работающие в фоновом режиме, потребляют лишь небольшое количество памяти. И если другим приложениям, работающим на переднем плане (активно работающим и пользователи взаимодействуют с ними), требуется больше памяти, система iOS может завершить фоновые приложения и очистить память. Причина, по которой иногда принудительное закрытие приложения, по-видимому, экономит память / время автономной работы, заключается в том, что некоторые приложения могут запрашивать выполнение долго выполняющихся задач, даже работающих в фоновом режиме, например, для фоновой выборки, периодической синхронизации данных, и т. д. (обратите внимание, что не каждое приложение делает это). Но вы можете отключить их, настроив фоновое обновление приложения в Настройки -> Общие.

Итак, подведем итог: для приложения, которое мало работает в фоновом режиме, принудительное закрытие не даст заметных преимуществ.

Stephenye
источник
3
«Приложения, работающие в фоновом режиме, потребляют память (их потоки все еще существуют, и поэтому вы можете увидеть их в списке, если дважды щелкнуть кнопку« Домой »), и, следовательно, они потребляют батарею». Это не технически правильно. Когда вы дважды щелкаете кнопку «Домой», вы видите снимок (в памяти) приложения, когда оно было закрыто. То, что вы видите это, не означает, что потоки все еще существуют. iOS останавливает работу приложения и удаляет его из памяти, если только ему не разрешено работать в фоновом режиме, и он активно выполняет обработку.
ФСБ
@fbara Я не согласен. Согласно документу Apple для разработчиков , приложения переходят в состояние, называемое Suspendedвскоре после перехода в фоновый режим, и «пока приложение приостановлено, приложение остается в памяти, но не выполняет никакого кода». Процесс приложения все еще там, если не будет остановлен iOS. Если у вас есть XCode (инструмент разработчика для приложений iOS), вы можете использовать Debug-> Attach to Process и просматривать список процессов на вашем телефоне, даже если на переднем плане ничего не работает
Stephenye
В этом же документе также говорится: «Вскоре после applicationDidEnterBackground:возвращения метода делегата приложения система делает снимок окон приложения . Аналогичным образом, когда приложение активируется для выполнения фоновых задач, система может сделать новый снимок, чтобы отразить любые соответствующие изменения. Например, когда приложение просыпается для обработки загруженных элементов, система делает новый снимок, который может отражать любые изменения, вызванные включением элементов. Система использует эти снимки в пользовательском интерфейсе многозадачности, чтобы показать состояние вашего приложение." Это то, что я имел в виду.
ФСБ
@fbara Это правда: снимки используются многозадачным пользовательским интерфейсом, особенно для того, чтобы не отображать конфиденциальные данные при вводе фона (например, в некоторых банковских приложениях). Но я думаю, что процесс все еще существует. Но давайте не будем особо фокусироваться на технических деталях, тем не менее, он все еще потребляет некоторую память (снимки все еще потребляют память правильно).
Стефани
-1

Я обнаружил, что прекращение работы приложения Facebook, в частности, может сэкономить заряд батареи. После проверки его использования в разделе батареи (Настройки> Батарея> Время), я не могу не быть уверенным, что он не играет хорошо.

боб
источник
Это потому, что он регистрируется как клиент VoIP, и закрытие приложения не изменит это.
Эндрю Ларссон