iPhone 배터리가 앱을 닫지 않는 것이 더 좋은 이유는 무엇입니까? . 그러나

배터리를 절약하기 위해 iPhone에서 앱을 닫는 것은 좋지 않습니다. 앱을 강제 종료하면 iOS 기기에 어떤 이점이 있습니까? 와 같은 질문과 답변을 읽었습니다 . 그러나 그것은 여전히 ​​나와 함께 젤하지 않습니다. 때때로 나는 그렇게 실행 (50) 애플 리케이션을 통해 발견 되지 그들을 이해되지 않는다 폐쇄.

어쩌면 나는 약간의 오래된 chook이고 오래된 개에게 새로운 트릭을 가르 칠 수는 없지만 누군가가 이러한 모든 응용 프로그램을 계속 실행하는 것이 더 좋은지 설명 할 수 있습니까? 그리고“설명”이라고 말할 때 저는 평신도의 의미로 이해할 수 있습니다.



답변

당신은 혼자가 아닙니다. 사람들은 방금 데스크톱 컴퓨터 습관에 익숙해 져 있으며 이러한 습관을 iPhone과 iPad로 가져가는 것이 이해할 만합니다.

그러나 유추를 사용하여 이것을 설명하고 설명하겠습니다.

날씨가 더운 날이고 정원 밖에 있다고 상상해보십시오. 목이 마르면 부엌으로 들어가 큰 유리를 잡고 얼음을 넣고 물로 채 웁니다. 그런 다음 반을 마시고 외부로 돌아 가기 전에 싱크대에서 나머지를 비 웁니다. 얼마 지나지 않아 다시 목이 말라서 부엌으로 돌아와 같은 유리를 잡고 얼음을 넣고 물로 채 웁니다. 다시 당신은 그것의 절반 만 마시고 나머지는 싱크대에 비 웁니다!

위의 작업 흐름 은 실제로 의미가 없습니다. 왜 유리를 밖에서 가져 가지 않습니까? 물을 비워서 물을 낭비 할뿐만 아니라 물을 다시 얻는 데 더 많은 시간과 에너지를 소비하고 있습니다.

마찬가지로 앱을 종료하면 실제로 배터리를 사용하는 과정에서 (예 : RAM에서 삭제 등) 배터리를 다시 사용하고 나중에 다시 시작하여 RAM에 다시로드해야합니다.

따라서 대부분의 시간 동안 앱을 열어 두는 것이 가장 좋습니다. 비록 열려 있지만 실제로는 배터리 전원을 사용하지 않는 일종의 일시 중단 모드에 있습니다. 예, 앱은 여전히 ​​RAM에로드되고 공간을 차지 하지만 실제로는 아무것도 하지 않습니다 . 단지 휴면 상태입니다. 또한이 상태에서는 배터리 전원을 사용하지 않기 때문에 배터리 절약의 관점에서 배터리를 종료 할 때 이점이 없습니다. 특히 앱인 경우 하루 종일 계속해서 사용할 것입니다.

RAM을 확보하기 위해 필요한 경우 / 언제나 iOS를 사용 하면 앱을 강제 종료 할 수 있다는 장점도 없습니다 . 따라서 50 개의 앱이 열려 있고 열려있는 경우 iOS는 메모리를 확보하기 위해 앱을 닫아야 할 정도로 밀리지 않았습니다.

이제 무엇이든, 규칙에는 예외가 있습니다 (예 : 백그라운드 작업을 수행해야하는 앱). 예를 들어 휴대 전화로 다른 작업을 수행하는 동안 음악을 재생하거나 백그라운드에서 콘텐츠를 다운로드하거나 하루에 몇 걸음 걸음을 세는지 등이 있습니다. 그러나 iOS는 백그라운드 앱 / 태스크 관리를위한 효율적인 프로세스 및 종료를 선택하면 기본적으로 운영 체제가 제대로 작동한다고 신뢰하지 않는 것입니다.

따라서 필요할 때 (예 : 얼어 붙어 등) 앱을 종료하고 배터리 전원을 절약하기 위해 사용하지 마십시오. 실제로 그렇게하면 하루 종일 그 반대의 배터리 전력을 사용하게됩니다!

요약

  • 앱이 제대로 작동하지 않는 경우에만 앱을 종료해야합니다 (예 : 앱이 중지되었거나 제대로 표시되지 않는 등).
  • App Switcher에 나열된 앱이 반드시 실행되는 것은 아닙니다 . 실제로 대부분 실행되지않습니다 .
  • App Switcher의 대부분의 앱은 일시 중지 상태입니다. 즉, 화면에 표시되거나, 코드를 실행하거나, CPU 또는 GPU를 사용하거나, 배터리를 사용하지 않습니다. 그러나, 그들은 있습니다 아직 메모리에 상주 할 때까지 그들은 메모리를 확보하기 위해 시스템에 의해 (필요한 경우) 제거됩니다 :

    일시 중지됨 -앱이 백그라운드에 있지만 코드를 실행하지 않습니다. 시스템은 앱을 자동으로이 상태로 옮기고이를 알리기 전에 알립니다. 일시 중단 된 동안 앱은 메모리에 남아 있지만 코드를 실행하지는 않습니다. 메모리 부족 상태가 발생하면 시스템은 일시 중단 된 앱을 예고없이 제거하여 포 그라운드 앱을위한 더 많은 공간을 확보 할 수 있습니다.

    출처 : 이 답변의 끝에있는 첫 번째 참조 링크 내의 표 2-3을 참조하십시오 .

  • 실제로 특정 시점에서 당신의 아이폰에서 실행되는 응용 프로그램 만이과에서 일하는 모든 사람들 (화면에 표시 한 예) 활성 응용 프로그램입니다 배경 . ( 참고 : 몇 가지가 있습니다 일시적으로 여전히 그들이 활성 동안 이미 시작 코드를 실행 완료하는 데 시간이 필요 응용 프로그램의 경우이 예외 – 일반적으로이 초 순서 만하지만 이론적으로 분 이상으로 확장 할 수는.) .

  • 백그라운드에서 실행되는 앱의 경우 설정> 일반> 백그라운드 앱 새로 고침으로 이동하여 열려있는 앱을 제어 할 수 있습니다. ( 참고 : 여기에 나열된 앱이 있다고해서 백그라운드에서 실행된다는 의미는 아니지만 여기에서 사용 중지하면 확실히 그렇지 않습니다!)
  • iPhone이 잠겨 있으면 장치를 잠글 때 활성화 된 (즉, 화면에 표시되는) 응용 프로그램이 비활성화됩니다 . 그러나 iPhone을 잠그지 않고 코드 실행이 끝나거나 백그라운드에서 실행 중 (예 : 음악 재생 등)이 아니면 CPU, GPU 또는 배터리를 사용하지 않는 것입니다.

참고 문헌

  1. 앱의 다양한 상태에 대한 자세한 내용 은 iOS 용 Apple의 앱 프로그래밍 안내서 : 앱의 실행 상태를 참조하십시오 .
  2. 백그라운드에서 실행되는 앱에 대한 자세한 내용은 Apple의 iOS 용 앱 프로그래밍 안내서 : 백그라운드 실행을 참조하십시오 .

답변

제공된 답변은 정확합니다 .iOS 개발자의 관점에서 명확히하고 싶습니다.

iOS는 가능한 많은 것을 관리하도록 설계되었으므로 개발자 (및 개발자)는 걱정할 필요가 없습니다. 최종 결과는 Apple의 응용 프로그램을 포함하여 응용 프로그램에서 다소 일관된 접근 방식입니다.

즉, 전제는 다음과 같습니다.

  • iOS는 우리보다 메모리에 대해 더 많이 알고 있습니다. 그것은 그것이 얼마만큼 필요한지, 어느 정도 필요한지 알고 있습니다.
  • iOS는 메모리를 완전히 제어합니다. 누가 무엇을 사용하는지에 대한 최종 단어가 있습니다.
  • iOS에 메모리가 필요한 경우 메모리를 찾게되며, 이는 대개 일정 시간 동안 유휴 상태였던 다른 프로세스를 종료하여 수행됩니다. 그들에 대해 걱정하십시오).
  • 프로세서 (CPU)가하는 모든 일에는 에너지가 필요합니다. 물론 모든 것. 컴퓨터는 아주 작은 공간에서 컴퓨터를 움직일 수있는 아주 작은 전자 용기라는 것을 잊지 마십시오.
  • 앱이 종료되면 수행해야 할 작업을 정의하는 합의 된 프로토콜 (계약)이 있습니다. iOS는 이러한 프로토콜을 시행하고 전달합니다. 그러나 작업은 완료되지 않아야하며 무료가 아니며 항상 저렴하지는 않습니다 (실제로 앱의 내용에 달려 있음).

모든 것을 말했듯이, 대부분의 사용자는 배터리 수명을 늘리기 위해 대부분의 사용자가 앱을 닫은 것으로 가정합니다.

진실은 iOS에서는 거의 그렇지 않다는 것입니다. 집을 누르면 앱이 일시 중지되고 더 이상 다른 앱에 필요한 리소스를 사용하지 않습니다. 새로운 앱 (또는 iOS)이 해당 메모리를 필요로하는 경우, 필요한 경우 에만 자체적으로 처리 합니다.

앱을 계속해서 닫으면 iOS가 앱을 실제로 언로드하고 상태를 저장하는 등의 많은 비용이 드는 작업을 수행하고 앱을 다시 열 때 모든 문제를 되돌려 야하는 추가 문제 앱의 복잡성에 따라 저장소에서 휴대 전화의 메인 메모리 등으로 많은 것들을 읽어야합니다. 앱을 단순히 “일시 중지”상태로 유지하면이 모든 추가 작업을 피할 수있었습니다.

그러나

경우에 따라 (드물지만 드물지는 않지만) 오작동하는 앱을 종료하려고합니다. 배경 오디오 또는 위치와 같은 비동기 서비스를 처리하는 앱 (앱이 위치를 요청하고 iOS가 필요한 경우 GPS를 실행하여 위치를 묻는 위치) , 비디오 스트리밍 등

Lyft, United Airlines 및 Twitter와 같은 수많은 앱이 네트워크 상태가 좋지 않아 깨진 상태 (또는 단순히 제대로 작동하지 않음)로 끝났습니다 (iOS가 실제로 나빠졌습니다) 지난 3-4 릴리스의 일부 불량 네트워크에서 복구) 또는 네트워크가 제대로 응답하지 않습니다.

시간이 지남에 따라 대부분의 문제는 사라지고 앱이 다시 작동하기 시작합니다. 당신이 정말로 작동하는 응용 프로그램을 필요로하는 경우하지만 지금 , 당신은 가서 그것을 죽이고 처음부터 다시 시작해야하는 가격을 지불해야합니다. 그렇게함으로써 더 많은 배터리를 사용했지만 필요했습니다.

그리고 이것이 혼란 스러우면, 나는 당신에게 자동차 비유를 줄 수 있습니다. 그것이 우리가 항상하는 경향이 있기 때문입니다.

차 비유

저는 자동차 기술이 발전했으며 이것이 더 이상 좋은 예가 아니라는 것을 알고 있습니다 .

유휴 상태보다 더 많은 연료를 사용하는 자동차 엔진을 발사했습니다. 자동차에 인젝터 대신 기화기가 있었을 때, 이것은 훨씬 더 나빴습니다. 그렇기 때문에 빨간불에 멈출 때 엔진을 끄면 이론적으로 1 분 동안 공회전하는 것보다 더 많은 연료를 사용할 수 있습니다. 최신 자동차는 훨씬 효율적인 메커니즘을 가지고 있으며 엔진을 멈출 수 있지만 반 시동 상태를 유지합니다 (여기서 자동차에 들어 가지 마십시오).

앱을 닫는 것은 모든 정지 등에서 차를 끄는 사람과 같습니다. 일반적으로 몇 초 후에 다시 필요할 때까지 유휴 상태로 두는 것과 반대로.

유추 자동차는 여전히 연료를 사용하는 반면 정지 된 앱은 그렇지 않습니다. 그러나 휴대 전화의 눈, 그들은되는 하지 (분명히만큼 그들은 활성 어떤 종류의 백그라운드 처리를하지 않는 한) 어떤 메모리 / 관련 배터리를 사용.

기본적으로 앱을 종료 할 때마다 엔진이 꺼지고 엔진을 공전하는 iOS “스마트”메커니즘이이를 처리하지 못하게되므로 표시등이 녹색으로 바뀌면 가속기 및 100 % 정지했을 때보 다 엔진이 더 빨리 작동합니다. 정지 상태에서 엔진을 시동하고 연료보다 더 많은 전력을 사용하기 때문에 시동기를 돌려 엔진을 크 랭킹하고 연료를 분사하고 스파크를 생성 할 수 있어야합니다. 앱은 엔진과 같습니다. 🙂


답변

  1. 앱을 완전히 강제 종료 한 다음 나중에 다시 열어야하는 경우 새 앱 인스턴스 시작과 관련된 오버 헤드는 한 앱에서 다른 앱으로 전환하는 것보다 CPU와 에너지를 많이 사용합니다.
  2. 실제로 백그라운드에서 실행되도록 빌드되지 않은 한 앱이 메모리에 저장되어있는 경우 일반적으로 일시 중지되거나 종료되고 CPU주기를 소비하지 않습니다 (보통). 꽤 간단한 앱이라면 메모리를 사용하여 거기에 앉아있을 것입니다. 이러한 경우 앱 상태는 다른 위치 (Android의 경우 장치 저장소)에 유지되므로 나중에 앱 상태를 복원 할 수 있습니다. 휴대 전화의 Viber 앱에서 작성한 다소 길지 않은 메시지는 배터리가 고갈되어 전화가 꺼진 상태에서 살아 남았습니다. 전화를 다시 시작한 후 Viber는 전화를 기다리는 메시지를 발견했습니다. 할렐루야
  3. 메모리 칩에 따라 0이 포함되는지 1이 포함되는지 여부는 전력 소비에 큰 영향을 미치지 않습니다. 따라서 메모리에 물건을 보관하지 않아도 배터리를 크게 절약 할 수는 없습니다.
  4. 앱이 완전 수면 상태에있는 경우 (사람들,이를 확인하십시오), 앱 전환기에 앱에 대한 참조 만 진행하기 전에 마지막으로 본 화면의 스냅 샷으로 표시됩니다. 언젠가 iPad의 모든 앱을 닫기로 결정했기 때문에이 말을하고 있는데, 닫아야하는 앱의 양에 놀랐습니다. 60 개가 넘는 앱이었습니다. 이것들은 모두 iPad의 메모리에 보관할 수 없습니다. 몇 달 전에 사용 된 일부 앱이 있습니다.

자동차와 유사하게, 낮 동안 너무 많은 정지를해야하고 엔진을 계속 정지하고 시동해야하는 경우 배터리가 완전히 고갈 될 때가 올 것입니다. 이것은 정지 사이에서 운전하는 동안 충전 시간이 엔진을 시동 할 때마다 배터리에서 배출되는 엄청난 양의 에너지를 복원 할만큼 길지 않은 경우에 발생할 수 있습니다. 게다가, 그것은 시동기 및 전체 가스 소비에 좋지 않습니다. 그렇기 때문에 많은 배달 트럭 운전자가 짧은 정차 중 엔진 공회전을 유지합니다.

이 비유는 메모리 절약 신화와 비슷한 IMO입니다.


답변

토론을 위해 다른 의견을 던졌습니다. 이 개념에는 어느 정도 진실이 있지만, 특정 수의 앱을 열면 앱 일시 중지 상태에서 수익이 감소하는 것을 보게 될 것입니다.

더 많은 앱을 열수록 더 많은 램이 사라질 것입니다. 일반적으로 메모리의 각 앱은 앱 자체가 현재 사용중인 메모리, 앱이 보유하고 싶은 메모리, 운영 체제에서 실제로 앱이 사용하도록 허용 한 메모리로 나뉘어 앱의 최종 메모리 양을 제공합니다. 사용할 수 있습니다. 앱이 사용하려는 메모리로 메모리의 별도 부분을 유지하는 이유는 앱이 힙을 늘려야 할 수도 있기 때문에 가비지 수집기에게는 좋지 않기 때문에 박쥐에서 바로 그렇게하고 싶지는 않기 때문입니다. 큰 힙 (큰 힙 = 긴 가비지 수집)을 가지므로 앱은 현재 사용되지 않는 메모리 부분을 따로 보관하지만 필요한 경우 앱에서 독점적으로 사용할 수 있습니다.

OS가 내 응용 프로그램을 최대 700MB까지 허용하고 응용 프로그램 세트는 자체 메모리를 위해 300MB를 남겨두고 내 응용 프로그램이 원하는 경우 400mb를 남겨두고 다른 응용 프로그램을 열고 메모리가 필요하다고 가정 해보십시오. OS는 다른 모든 응용 프로그램을보고 다른 응용 프로그램에서 메모리를 가져 와서 새로운 응용 프로그램에 사용할 수 있는지 결정합니다.이 경우 내 응용 프로그램에서 허용 한 메모리에서 150MB를 가져 와서 새로운 응용 프로그램에 제공 할 수 있습니다 새로운 앱 메모리를 사용할 수 있도록 메모리를 교체해야합니다 (비즈니스에서 자금을 재 할당한다고 생각). 더 많은 앱을 열수록 운영 체제는 실제로 결정하기 위해 더 많은 작업을 수행해야합니다. 새 앱 메모리를 제공하기 위해 사이펀을 제거 할 수있는 메모리

이런 의미에서, 열려 있고 일시 중단 된 모든 앱은이 프로세스에 복잡성을 더해 CPU를 더 많이 사용하게되며 다른 앱을 닫지 않아 절약 된 배터리 전력보다 미래의 앱을 여는 데 더 많은 배터리 전력이 필요할 수 있습니다.

이제 앱을 실제로 죽이지 않는 한 처리 능력을 소모하는 백그라운드 서비스 (예 : 타이머에 대해 알리도록 설정된 알림 등)가있을 수 있다는 점을 고려하지 마십시오. 앱은 실제 백그라운드 서비스를 사용하지 않으며 실제로는 firebase와 같은 서비스의 푸시 알림을 사용하므로 언제든지 앱을 열 필요가 없습니다.

고려해야 할 또 다른 사항은 지속적으로 여는 앱이 많을수록 OS가 통과하고 메모리를 정리하여보다 깨끗하고 효율적으로 배치 할 때까지 메모리가 처음에 더 조각화됩니다.이 자체도 처리 능력을 높이고 앱이 차지하는 메모리가 많을수록이 프로세스는 장치에 더 집중됩니다.

말하자면, 너무 많은 앱을 열지 않는 한 앱을 열어 두는 것이 대부분 더 효율적이지만, 숫자가 존재하는 경우이 임계 값에 도달하기 위해 얼마나 많은 앱을 열어야하는지 잘 모르겠습니다.

출처 :

Mono 용 SGen 가비지 수집기 :
http://www.mono-project.com/docs/advanced/garbage-collector/sgen/

iOS 및 Android Xamarin 앱용 메모리 프로파일 러 개요 : 앱에서 메모리를 관리하는 방법 (작업 세트, 개인 바이트, 메모리 할당 등)을 보여줍니다.
https://blog.xamarin.com/say-hello-to -xamarin-profiler /


답변

클린 컷 버전 :
OS가 나중에 사용자의 작업에 대한 더 많은 정보를 수집하기 위해 사용자가 앱을 계속 켜두거나 “일시 중지 된”상태로 유지하도록 설계 되었기 때문에 더 좋습니다. [*] 필요한 경우.

더 긴 버전 :
“일시 중단 된”앱은 메모리에 상태가 저장되므로 일단 백업을 시작하면 모든 항목을로드하는 프로세스가 프로세서에 대한 시간이 덜 걸리고 저장 장치를 거의 사용하지 않습니다. 이를 통해 앱이 백그라운드에서 다른 작업을 수행하고 있는지 여부를 알 수 없으며 많은 경우에 사용자가 데이터를 수집합니다.


[*] 사용자가 수집 한 데이터를 자세히 설명하기 위해 메모리에 저장된 앱은 “일시 중지”되거나 백그라운드에서 활성화 될 수 있습니다. 장치의 소유자 인 귀하는 해당 앱이 실제로 수행하는 작업을 알지 못합니다 (CPU 사용을 적극적으로 스캔하기위한 지식 및 기타 앱이없는 경우). 보안 측면에서 향후 10 분 동안 사용하지 않을 앱은 모두 종료하는 것이 좋습니다.

추신 :이 연습은 안드로이드 장치뿐만 아니라 btw에서 수행됩니다 …


답변