Я получил смешанные ответы от разных веб-сайтов и людей по этому вопросу, и я хотел опубликовать его, чтобы вы все ответили раз и навсегда.
Вопрос в том, имеет ли принудительное закрытие приложений (то есть двойной щелчок по кнопке «Домой», а затем смахивание вверх по ним) какую-либо пользу для батареи или общей производительности iPhone или любого другого устройства iOS?
Вокруг этой темы было много споров и дискуссий. Я считаю, что это было выгодно для iOS еще во времена v3 и v4, но сейчас это не так.
Крейг Федериги даже недавно заявил, что это не обязательно и не увеличивает срок службы батареи. Apple имеет встроенную систему управления памятью, позволяющую вовремя приостановить и/или закрыть приложение, когда это необходимо. Единственный раз, когда вы должны принудительно закрыть приложение, — это если оно перестало отвечать на запросы.
В одном случае принудительный выход может иметь преимущество для iOS, которое перевешивает затраты на дополнительную обработку, необходимую для очистки процесса, его перезапуска и очистки любых файлов, которые кэшируются/открыты.
Недостаток этого заключается в том, что приложения не работают в фоновом режиме, поэтому, как только вы переключаетесь на новое приложение или трамплин / список значков / экран блокировки - iOS уже остановила / приостановила / сбросила всю активность файловой системы для приложения.
Он сигнализирует зависшему приложению, что ему необходимо полностью повторно инициализировать себя с нуля, игнорируя любое сохраненное состояние или кешированные результаты. Он сигнализирует Apple в виде отчета о сбое (и, возможно, разработчику), какие-то навигационные крошки, где именно в коде было приложение, когда оно было «убито» пользователем.
Думайте об этом как об операции — вы наносите явный вред в краткосрочной перспективе — если вы не уверены, что операция необходима, не принимайте удар по производительности и не бросайте принудительно.
В последнее время эта тема снова актуальна. Я твердо верю, что принудительно закрывать приложения на устройствах iOS бесполезно. Полезно перезапускать приложения только в случае их сбоя. Здесь больше информации.
9to5Mac:
В некоторых кругах давно существует мнение, что использование функции многозадачности iOS для принудительного закрытия приложений может помочь сэкономить заряд батареи iPhone или повысить скорость работы программного обеспечения, когда смартфон становится медленным.
Ранее на этой неделе пользователь iPhone решил отправить электронное письмо генеральному директору Apple Тиму Куку, чтобы решить проблему раз и навсегда, и вместо этого получил ответ от Крейга Федериги, старшего вице-президента Apple по разработке программного обеспечения (через 9to5Mac).
Вот, из официального документа поддержки о принудительном закрытии приложений, собственный совет Apple о том, когда использовать эту функцию:
Когда вы дважды нажимаете кнопку «Домой», появляются недавно использованные приложения. Приложения не открыты, но находятся в режиме ожидания, чтобы облегчить вам навигацию и многозадачность. Вы должны принудительно закрыть приложение только тогда, когда оно не отвечает.
MacDailyNews цитирует электронное письмо Стива Джобса от 2010 года:
Просто используйте [многозадачность iOS] так, как задумано, и будет вам счастье. Нет необходимости когда-либо выходить из приложений.
На случай, если вы не верите старшему вице-президенту Apple по программному обеспечению, официальной документации Apple по поддержке или Стиву Джобсу, вот несколько других статей, указывающих на то, как эта привычка на самом деле пагубно влияет на срок службы батареи iPhone:
Теоретически да. Приложения, работающие в фоновом режиме, действительно потребляют память (их потоки все еще существуют, и поэтому вы можете увидеть их в списке, дважды щелкнув кнопку «Домой»), и, следовательно, они потребляют батарею.
Но практически, не совсем. iOS неплохо справляется с управлением памятью, а приложения, работающие в фоновом режиме, потребляют лишь небольшой объем памяти. И если другим приложениям, работающим на переднем плане (активно работающим и с которыми взаимодействуют пользователи), требуется больше памяти, система iOS может закрыть фоновые приложения и очистить память. Причина, по которой иногда принудительное закрытие приложения экономит память/работу батареи, заключается в том, что некоторые приложения могут запрашивать выполнение длительных задач, даже работающих в фоновом режиме, с целью, например, фоновой выборки, периодической синхронизации данных, и т. д. (обратите внимание, что не каждое приложение делает это). Но вы можете отключить их, настроив фоновое обновление приложения в меню «Настройки» -> «Основные».
Таким образом, для приложения, которое мало что делает в фоновом режиме, принудительное закрытие не принесет заметных преимуществ.
Suspended
вскоре после перехода в фоновый режим, и «во время приостановки приложение остается в памяти, но не выполняет никакого кода». Процесс приложения все еще существует, если iOS не прерывает его. Если у вас есть XCode (инструмент разработчика для приложений iOS), вы можете использовать Debug->Attach to Process и увидеть список процессов на вашем телефоне, даже если ничего не запущено на переднем плане.applicationDidEnterBackground:
возврата метода делегата приложения система делает снимок окон приложения . Точно так же, когда приложение просыпается для выполнения фоновых задач, система может сделать новый снимок, чтобы отразить любые соответствующие изменения. , Например, когда приложение пробуждается для обработки загруженных элементов, система делает новый снимок , чтобы отразить любые изменения, вызванные включением элементов.Система использует эти снимки снимка в многозадачном пользовательском интерфейсе, чтобы показать состояние вашего приложение." Это то, что я имел в виду.Я обнаружил, что закрытие приложения Facebook, в частности, может сэкономить заряд батареи. Проверив его использование в разделе батареи (Настройки> Батарея> Время), я не могу не убедиться, что он не работает хорошо.
Роберт Картайно