제공된 답변은 정확합니다 .iOS 개발자의 관점에서 명확히하고 싶습니다.
iOS는 가능한 많은 것을 관리하도록 설계되었으므로 개발자 (및 개발자)는 걱정할 필요가 없습니다. 최종 결과는 Apple의 응용 프로그램을 포함하여 응용 프로그램에서 다소 일관된 접근 방식입니다.
즉, 전제는 다음과 같습니다.
- iOS는 우리보다 메모리에 대해 더 많이 알고 있습니다. 그것은 그것이 얼마만큼 필요한지, 어느 정도 필요한지 알고 있습니다.
- iOS는 메모리를 완전히 제어합니다. 누가 무엇을 사용하는지에 대한 최종 단어가 있습니다.
- iOS에 메모리가 필요한 경우 메모리를 찾게되며, 이는 대개 일정 시간 동안 유휴 상태였던 다른 프로세스를 종료하여 수행됩니다. 그들에 대해 걱정하십시오).
- 프로세서 (CPU)가하는 모든 일에는 에너지가 필요합니다. 물론 모든 것. 컴퓨터는 아주 작은 공간에서 컴퓨터를 움직일 수있는 아주 작은 전자 용기라는 것을 잊지 마십시오.
- 앱이 종료되면 수행해야 할 작업을 정의하는 합의 된 프로토콜 (계약)이 있습니다. iOS는 이러한 프로토콜을 시행하고 전달합니다. 그러나 작업은 완료되지 않아야하며 무료가 아니며 항상 저렴하지는 않습니다 (실제로 앱의 내용에 달려 있음).
모든 것을 말했듯이, 대부분의 사용자는 배터리 수명을 늘리기 위해 대부분의 사용자가 앱을 닫은 것으로 가정합니다.
진실은 iOS에서는 거의 그렇지 않다는 것입니다. 집을 누르면 앱이 일시 중지되고 더 이상 다른 앱에 필요한 리소스를 사용하지 않습니다. 새로운 앱 (또는 iOS)이 해당 메모리를 필요로하는 경우, 필요한 경우 에만 자체적으로 처리 합니다.
앱을 계속해서 닫으면 iOS가 앱을 실제로 언로드하고 상태를 저장하는 등의 많은 비용이 드는 작업을 수행하고 앱을 다시 열 때 모든 문제를 되돌려 야하는 추가 문제 앱의 복잡성에 따라 저장소에서 휴대 전화의 메인 메모리 등으로 많은 것들을 읽어야합니다. 앱을 단순히 "일시 중지"상태로 유지하면이 모든 추가 작업을 피할 수있었습니다.
그러나 …
경우에 따라 (드물지만 드물지는 않지만) 오작동하는 앱을 종료하려고합니다. 배경 오디오 또는 위치와 같은 비동기 서비스를 처리하는 앱 (앱이 위치를 요청하고 iOS가 필요한 경우 GPS를 실행하여 위치를 묻는 위치) , 비디오 스트리밍 등
Lyft, United Airlines 및 Twitter와 같은 수많은 앱이 네트워크 상태가 좋지 않아 깨진 상태 (또는 단순히 제대로 작동하지 않음)로 끝났습니다 (iOS가 실제로 나빠졌습니다) 지난 3-4 릴리스의 일부 불량 네트워크에서 복구) 또는 네트워크가 제대로 응답하지 않습니다.
시간이 지남에 따라 대부분의 문제는 사라지고 앱이 다시 작동하기 시작합니다. 당신이 정말로 작동하는 응용 프로그램을 필요로하는 경우하지만 지금 , 당신은 가서 그것을 죽이고 처음부터 다시 시작해야하는 가격을 지불해야합니다. 그렇게함으로써 더 많은 배터리를 사용했지만 필요했습니다.
그리고 이것이 혼란 스러우면, 나는 당신에게 자동차 비유를 줄 수 있습니다. 그것이 우리가 항상하는 경향이 있기 때문입니다.
차 비유
저는 자동차 기술이 발전했으며 이것이 더 이상 좋은 예가 아니라는 것을 알고 있습니다 .
유휴 상태보다 더 많은 연료를 사용하는 자동차 엔진을 발사했습니다. 자동차에 인젝터 대신 기화기가 있었을 때, 이것은 훨씬 더 나빴습니다. 그렇기 때문에 빨간불에 멈출 때 엔진을 끄면 이론적으로 1 분 동안 공회전하는 것보다 더 많은 연료를 사용할 수 있습니다. 최신 자동차는 훨씬 효율적인 메커니즘을 가지고 있으며 엔진을 멈출 수 있지만 반 시동 상태를 유지합니다 (여기서 자동차에 들어 가지 마십시오).
앱을 닫는 것은 모든 정지 등에서 차를 끄는 사람과 같습니다. 일반적으로 몇 초 후에 다시 필요할 때까지 유휴 상태로 두는 것과 반대로.
유추 자동차는 여전히 연료를 사용하는 반면 정지 된 앱은 그렇지 않습니다. 그러나 휴대 전화의 눈, 그들은되는 하지 (분명히만큼 그들은 활성 어떤 종류의 백그라운드 처리를하지 않는 한) 어떤 메모리 / 관련 배터리를 사용.
기본적으로 앱을 종료 할 때마다 엔진이 꺼지고 엔진을 공전하는 iOS "스마트"메커니즘이이를 처리하지 못하게되므로 표시등이 녹색으로 바뀌면 가속기 및 100 % 정지했을 때보 다 엔진이 더 빨리 작동합니다. 정지 상태에서 엔진을 시동하고 연료보다 더 많은 전력을 사용하기 때문에 시동기를 돌려 엔진을 크 랭킹하고 연료를 분사하고 스파크를 생성 할 수 있어야합니다. 앱은 엔진과 같습니다. :)