우리 모두는 "멀티태스킹 = 동시에 여러 프로세스를 수행하는 능력"이라는 교훈을 알고 있습니다. 우리는 그 존재를 특별히 인식하지 못한 채 컴퓨터에서 그것을 사용합니다. 응용 프로그램 간 전환이나 한 응용 프로그램의 창 전환은 실시간으로 이루어지며 우리는 운영 체제의 이러한 기능을 당연하게 여깁니다.
다른 작업
운영 체제는 짧은 시간 간격으로 모든 응용 프로그램에 프로세서를 할당합니다. 이러한 시간은 너무 작아서 우리가 알아차릴 수 없으므로 모든 응용 프로그램이 동시에 프로세서를 사용하는 것처럼 보입니다. 우리는 그렇게 생각할 수도 있다 iOS 4의 멀티태스킹 정확히 동일하게 작동합니다. 그렇지 않습니다. 가장 큰 이유는 당연히 배터리 용량 때문이다. 모든 애플리케이션이 실제로 백그라운드에서 실행 중인 상태로 남아 있다면 아마도 몇 시간 안에 소켓을 찾아야 할 것입니다.
iOS 4와 호환되는 대부분의 애플리케이션은 "일시 중지 모드"로 전환되거나 홈 버튼을 누른 후 절전 모드로 전환됩니다. 비유하자면 노트북 덮개를 닫으면 즉시 절전 모드로 전환됩니다. 덮개를 열면 노트북이 깨어나고 모든 것이 덮개를 닫기 전과 똑같은 상태입니다. 또한 홈 버튼을 누르면 종료되는 애플리케이션도 있습니다. 그리고 이는 진정한 종료를 의미합니다. 개발자는 이러한 방법 중 어떤 방법을 사용할지 선택할 수 있습니다.
그러나 또 다른 범주의 응용 프로그램이 있습니다. iDevice에서 완전히 다른 작업을 수행하고 있더라도 실제로 백그라운드에서 실행되는 앱입니다. Skype는 지속적인 인터넷 연결이 필요하기 때문에 좋은 예입니다. 다른 예로는 배경 음악(Pandora)을 재생하는 애플리케이션이나 GPS를 지속적으로 사용해야 하는 애플리케이션이 있습니다. 예, 이러한 앱은 백그라운드에서 실행되는 동안에도 배터리를 소모합니다.
잠을 자거나 격추할까요?
홈 버튼을 누른 후 절전 모드("일시 중지 모드"로 전환)에 들어가야 하는 iOS 4와 호환되는 특정 애플리케이션은 백그라운드에서 계속 실행됩니다. Apple은 개발자에게 앱이 작업을 완료하는 데 정확히 XNUMX분을 주었습니다. GoodReader에서 파일을 다운로드한다고 가정해 보겠습니다. 갑자기 누군가가 당신에게 전화하고 싶어하면 당신은 그 중요한 전화를 받아들이기만 하면 됩니다. 통화가 XNUMX분 이상 지속되지 않으면 GoodReader 애플리케이션으로 돌아갑니다. 파일이 이미 다운로드되었거나 아직 다운로드 중일 수 있습니다. 통화가 XNUMX분 이상 걸리면 어떻게 되나요? 우리의 경우 GoodReader 애플리케이션은 활동을 중지하고 iOS에 절전 모드로 전환할 수 있음을 알려야 합니다. 그렇지 않으면 iOS 자체에 의해 무자비하게 해고될 것입니다.
이제 "모바일" 멀티태스킹과 "데스크톱" 멀티태스킹의 차이점을 알게 되었습니다. 컴퓨터에서는 유동성과 애플리케이션 전환 속도가 중요하지만 모바일 장치에서는 배터리 수명이 항상 가장 중요합니다. 멀티태스킹도 이러한 사실에 적응해야 했습니다. 따라서 이 글을 읽은 후 홈 버튼을 두 번 누르면 더 이상 "백그라운드에서 실행 중인 애플리케이션 표시줄"이 표시되지 않고 기본적으로 "최근에 사용한 애플리케이션 목록"만 표시됩니다.
저자: 다니엘 흐루스카드로이 : onemoretap.com
흠, 흥미롭네요 :) 저는 이것이 Unix에서 수행되는 방식과 항상 유사하다고 생각했습니다. 애플리케이션에는 CPU 시간이 10으로 할당되었고 프로세스는 메모리에 그대로 있으므로 모든 리소스가 할당되었습니다. 그래서 삭제하려면 홈 버튼을 두 번 누르고 즉시 애플리케이션을 중지해야 했습니다. 그러면 하단 히든 시트에 애플리케이션 아이콘이 있어도 오래 전(XNUMX분 후)에는 앱이 여전히 종료되어 있다는 뜻인가요?
맨 아래 목록에는 가장 최근에 열린 응용 프로그램만 있으며, 그 중 일부는 계속 실행될 수 있고, 일부는 일시 중단되고, 일부는 완전히 종료됩니다. 목록에서 응용 프로그램을 수동으로 제거하면 해당 응용 프로그램이 실행 중이거나 일시 중단되면 종료되는 "부작용"이 발생합니다.
애플리케이션은 추가 10분에 대해 스스로 알려야 하지만 이를 얻을 수 있다는 보장은 없습니다.
글쎄, 그래도 목록에서 애플리케이션을 닫는 것에 대한 나의 집착은 사라지지 않았습니다. (실수로 리소스를 먹어치우면 어쩌죠? :-D)
제가 이해한 바에 따르면 10분은 백그라운드에서 작동해야 하고 "스카이프, GPS 및 음악 재생" 범주에 속하지 않는 앱을 위한 것입니다. 다른 애플리케이션은 일시 중단 모드로 전환되어 다른 작업에 메모리가 필요할 때까지 메모리에 유지됩니다.
일시 중단 모드는 앱을 종료해야 하는 경우 데이터가 손실되지 않으며 일시 중단으로 전환하는 순간 모든 것이 저장된다는 장점이 있습니다.
또는 재생의 경우 bg / fg 명령과 동일합니다.
그리고 일정 시간 동안 백그라운드에서 실행되는 플레이어나 기타 응용 프로그램은 어떻습니까? 내 말은, 내가 개발자로서 "선택"하게 됩니까, 아니면 어떻게든 Apple의 승인을 받아야 합니까?
애플리케이션이 실제로 백그라운드에서 무제한으로 실행되려면 다음 작업 중 하나를 수행(등록)해야 합니다.
– 위치 서비스(GPS) 사용
– 백그라운드에서 음악 재생
– VOIP(Voice over IP)를 사용하세요.
제목(내부 살펴보기)에 따르면 이 기사에는 기술적 세부 사항과 함께 좀 더 광범위한 설명이 포함될 것으로 예상했습니다. 이것은 기사에 대한 페렉스처럼 보입니다. 페렉스라면 속편은 언제 나오나요? 환불받을 수 있나요? :-)
그리고 무엇을 더 자세히 알고 싶나요?
제목에 "under thehood"가 있는 기사에서는 자세한 기술 설명(예를 들어 저자가 애플리케이션 전환 시 오버헤드 또는 시스템 리소스에 대한 동시 액세스를 처리하는 방법 등을 분석할 수 있음), 다른 모델과의 비교를 기대할 수 있습니다. (예: 탈옥된 iPhone의 경우) 몇 가지 측정을 통해 이를 백업하는 것이 이상적입니다. 나는 제목에 "under thehood"가 포함된 기사에서 이 매우 피상적인 설명보다 훨씬 더 많은 것을 기대했습니다.
스카이프처럼 백그라운드에서 계속 실행되고 연결이 끊기지 않는 icq 클라이언트가 있나요?
애플리케이션이 일시 중지 모드로 전환되는 데는 10분이 아니라 10초가 걸립니다. 이 프로세스 중에 일부 부분은 백엔드 서비스에서 "중단"될 수도 있고 그렇지 않을 수도 있습니다. 그 중 일부는 이미 위에 나열되어 있습니다. 이것이 바로 Apple이 "스마트"라고 부르는 것입니다. "멀티태스킹.... 그러다가 시스템이 그녀를 격추시켰어
무언가를 다운로드, 업로드 또는 처리하는 경우 애플리케이션에 추가 시간이 필요할 수 있습니다. 미니멀 모드에서 무제한으로 실행되는 GPS, VoIP 또는 음악 재생과는 아무런 관련이 없습니다.