대부분의 구3gs유져분들이나 오랬동안 아이폰을 사용하신 분들은 아실만한 내용이지만 최근 댓글에 아이폰의 멀티태스킹에 대한 오해가 많은 듯 하여 신입 아이폰4유져들을 위해 아이폰의 멀티태스킹에 대하여 간단히 설명을 해드리리려 합니다. 아이패드로 밖에서 적는 것인지라 오타가 좀 많을 듯 하니 양해 바랍니다.
헉시 잘못된 정보가 있다면 댓글에 적어주시면 수정 허겠습니다.
아이폰은 ios4에서부터 부분적안 멀티태스킹을 지원하기 시작했습니다.
기본적으로 모바일 기기에서 멀티태스킹에 대한 정의부터 하겠습니다. 용어등은 제가 임의로 선정하였습니다.
1. 온전한 백그라운드 멀티태스킹 : pc와 같은 온전한 멀티태스킹. 모든 열려있는 창들이 포어그라운드이든, 백그라운드이건 동일한 수준으로 cpu와 랩을 잡아먹고 활동하고 있습니다. 포어그라운드(화면애 보이는) 앱의 퍼포먼스애 굉장히 큰 영향을 미칩니다.
2. 기능 제한적인 백그라운드 멀티태스킹 : 어플리케이션이 백그라운드로 들어가면, 백그라운드 작업이 필요한 부분의 기능만이 동작하게 됩니다. 예를 들어 음악 어플리케이션의 경우, 백그라운드로 들어가게 되면, 화면에 표시하는 부분, 터치센서 등 상당히 많은 기능들이 필요 없게 됩니다. 이 부분의 기능이 아닌, 순스하게 음악 재생과 컨트롤에 대한 부분의 기능들만이 백그라운드엣 실행되게 됩니다. 포어그라운드 앱의 퍼포먼스에 큰 영향을 주지만, 1의 경우보다는 상대적으로 매우 적은 영향을 줍니다.
3. 백그라운드 대기 (프리즈) : 앱의 상태가 랩 또는 하드에 저장된 상태로 종료됩니다. 일반적으로 램에 여유가 있는 경우 램에 그 정보가 저장되며, 램이 부족해지면 해당 랩에 저장되어 있는 상태를 지우거나 하드로 옮겨지기도 합니다. 아이폰의 경우 램에서 지워지기만 하는 듯 합니다. 이러한 램의 용량 반환때 일어나는 잠깐의 버벅임을 제외하면 포어그라운드 앱에 대한 영향이 거의 없습니다.
아이패드에서 지원하는 앱들의 멀티탸스킹은 대부분이 3이며, 부분적으로 일부 앱 들이 2형태의 멀티태스킹을 지원하고 있습니다. 2번형태의 멀티태스킹을 지원하는 대표적인 앱 들은 스카이프, 음악재생앱, 백그라운드애서 돌아가는 일부 내비게이션 앱 들입니다. 일반 pc와 같은 1번형태의 멀티태스킹은 없다고 생각하시면 편합니다.
이러한 앱들은 각자, 애플에서 새롭게 지원하는 백그라운드 음악재생, 전화통화, gps 관련 api를 사용하여 뱍그라운드애서 일부 기능을 수행합니다.
한가지 더 재미있는 상식을 알려드리면, 아이폰의 기본적인 매모리 정책은 포어그라운드 최우선입니다.
즉, 백그라운드 어플로 인해 현재 실행중인 포어그라운드 어플리캐이션의 메모리가 부족하면 백그라운드 앱을 하나씩 죽입니다. 이때 킬 순서는 백그라운드 일반 앱, 음악-메일전송 등의 기본앱 순서입니다. 푸시나, 믄자, 전하 관련 앱은 포어그라운드 앱 보다 우선합니다. 만약 포어그라운드 앱이 마구 커져서 이러한 최우선 앱의 메모리를 위협한다면 포어그라운드 앱이 강제 종료됩니다.
그렇다면 홈 버튼을 더블 탭 했을 때 나타나는 수많은 어플들은 과연 어떤 상태일까요?
대부분의 앱 들은 3의 상태, 즉 랩에 그 정보만 남아 있거나, 그마저도 사라진 상태에서, 단축아이콘 상태로만 남은 껍대기 입니다. 멀티태스킹창에 보이는 이유는 최근에 실행했었던 어플들간의 빠른 전환을 위해 있는 것 뿐이죠.윈도우에서 시작 메뉴에서 나타나는 최근실행 프로그램 아이콘의 역할과 비슷합니다. 물론 그 사이에 진짜 백그라운드에서 실행되는 앱이 았을수도 있지만요.
따라서 아이폰이 버벅거린다고 더블탭 한 상태에서 나타나는 아이콘을 다 지우는건 무의미한 행통입니다. 백그라운드에서 돌아간 ㄴ 스카이프와 같은 앱들만 몇개 종료하시면 되는 것이죠.
그렇다면 백그라운드에서 2번형태로 돌아가는 앱을 어떻개 선별할까요? 아쉽게도 아이폰에는 그걸 명확하게 알려주는 작업표시줄이 없습니다. 간접적으로 몇가지 기호를 통해 알 수 있을 뿐이죠. 아래의 증상(?)이 뱍그라운드 앱 판별 법 입니다.
1. 사용자가 음악을 틀어 놨다면 해당 음악 프로그램은 백그라운드에서 돌고 있습니다. (벅스 등의 음악 프로그램)
2. 포어그라운드 앱이 위치정보를 쓰지 않는데 gps기호가 우측 상단에 나타난다면, 백그라운드에 해당 기능을 쓰는 어플이?돌고 있는 것이다. (런키퍼 등)
3. 전화를 받을 수 있는 어플(스카이프 등)이 활성화 되어 있다면... 단, 푸시 알림을 쓰는 어플은 뱍그라운드 실행이 피요 없음.
경우에 따라서 위 증상이 없는 경우도 있습니다. 참고만 하새요 ㅎㅎ
-------
시간 관계상 댓글 올라오는 걸 봐서 추가적안 설명 드릴게요. 여친님 만나야해서 이만 ㅎㅎ
헉시 잘못된 정보가 있다면 댓글에 적어주시면 수정 허겠습니다.
아이폰은 ios4에서부터 부분적안 멀티태스킹을 지원하기 시작했습니다.
기본적으로 모바일 기기에서 멀티태스킹에 대한 정의부터 하겠습니다. 용어등은 제가 임의로 선정하였습니다.
1. 온전한 백그라운드 멀티태스킹 : pc와 같은 온전한 멀티태스킹. 모든 열려있는 창들이 포어그라운드이든, 백그라운드이건 동일한 수준으로 cpu와 랩을 잡아먹고 활동하고 있습니다. 포어그라운드(화면애 보이는) 앱의 퍼포먼스애 굉장히 큰 영향을 미칩니다.
2. 기능 제한적인 백그라운드 멀티태스킹 : 어플리케이션이 백그라운드로 들어가면, 백그라운드 작업이 필요한 부분의 기능만이 동작하게 됩니다. 예를 들어 음악 어플리케이션의 경우, 백그라운드로 들어가게 되면, 화면에 표시하는 부분, 터치센서 등 상당히 많은 기능들이 필요 없게 됩니다. 이 부분의 기능이 아닌, 순스하게 음악 재생과 컨트롤에 대한 부분의 기능들만이 백그라운드엣 실행되게 됩니다. 포어그라운드 앱의 퍼포먼스에 큰 영향을 주지만, 1의 경우보다는 상대적으로 매우 적은 영향을 줍니다.
3. 백그라운드 대기 (프리즈) : 앱의 상태가 랩 또는 하드에 저장된 상태로 종료됩니다. 일반적으로 램에 여유가 있는 경우 램에 그 정보가 저장되며, 램이 부족해지면 해당 랩에 저장되어 있는 상태를 지우거나 하드로 옮겨지기도 합니다. 아이폰의 경우 램에서 지워지기만 하는 듯 합니다. 이러한 램의 용량 반환때 일어나는 잠깐의 버벅임을 제외하면 포어그라운드 앱에 대한 영향이 거의 없습니다.
아이패드에서 지원하는 앱들의 멀티탸스킹은 대부분이 3이며, 부분적으로 일부 앱 들이 2형태의 멀티태스킹을 지원하고 있습니다. 2번형태의 멀티태스킹을 지원하는 대표적인 앱 들은 스카이프, 음악재생앱, 백그라운드애서 돌아가는 일부 내비게이션 앱 들입니다. 일반 pc와 같은 1번형태의 멀티태스킹은 없다고 생각하시면 편합니다.
이러한 앱들은 각자, 애플에서 새롭게 지원하는 백그라운드 음악재생, 전화통화, gps 관련 api를 사용하여 뱍그라운드애서 일부 기능을 수행합니다.
한가지 더 재미있는 상식을 알려드리면, 아이폰의 기본적인 매모리 정책은 포어그라운드 최우선입니다.
즉, 백그라운드 어플로 인해 현재 실행중인 포어그라운드 어플리캐이션의 메모리가 부족하면 백그라운드 앱을 하나씩 죽입니다. 이때 킬 순서는 백그라운드 일반 앱, 음악-메일전송 등의 기본앱 순서입니다. 푸시나, 믄자, 전하 관련 앱은 포어그라운드 앱 보다 우선합니다. 만약 포어그라운드 앱이 마구 커져서 이러한 최우선 앱의 메모리를 위협한다면 포어그라운드 앱이 강제 종료됩니다.
그렇다면 홈 버튼을 더블 탭 했을 때 나타나는 수많은 어플들은 과연 어떤 상태일까요?
대부분의 앱 들은 3의 상태, 즉 랩에 그 정보만 남아 있거나, 그마저도 사라진 상태에서, 단축아이콘 상태로만 남은 껍대기 입니다. 멀티태스킹창에 보이는 이유는 최근에 실행했었던 어플들간의 빠른 전환을 위해 있는 것 뿐이죠.윈도우에서 시작 메뉴에서 나타나는 최근실행 프로그램 아이콘의 역할과 비슷합니다. 물론 그 사이에 진짜 백그라운드에서 실행되는 앱이 았을수도 있지만요.
따라서 아이폰이 버벅거린다고 더블탭 한 상태에서 나타나는 아이콘을 다 지우는건 무의미한 행통입니다. 백그라운드에서 돌아간 ㄴ 스카이프와 같은 앱들만 몇개 종료하시면 되는 것이죠.
그렇다면 백그라운드에서 2번형태로 돌아가는 앱을 어떻개 선별할까요? 아쉽게도 아이폰에는 그걸 명확하게 알려주는 작업표시줄이 없습니다. 간접적으로 몇가지 기호를 통해 알 수 있을 뿐이죠. 아래의 증상(?)이 뱍그라운드 앱 판별 법 입니다.
1. 사용자가 음악을 틀어 놨다면 해당 음악 프로그램은 백그라운드에서 돌고 있습니다. (벅스 등의 음악 프로그램)
2. 포어그라운드 앱이 위치정보를 쓰지 않는데 gps기호가 우측 상단에 나타난다면, 백그라운드에 해당 기능을 쓰는 어플이?돌고 있는 것이다. (런키퍼 등)
3. 전화를 받을 수 있는 어플(스카이프 등)이 활성화 되어 있다면... 단, 푸시 알림을 쓰는 어플은 뱍그라운드 실행이 피요 없음.
경우에 따라서 위 증상이 없는 경우도 있습니다. 참고만 하새요 ㅎㅎ
-------
시간 관계상 댓글 올라오는 걸 봐서 추가적안 설명 드릴게요. 여친님 만나야해서 이만 ㅎㅎ
현재 iOS 4.2에서는 굳이 안 지우고 사용해도 아주 큰 문제는 잘 안보이기는 하는데, 그래도 가끔씩 속도 저하가 심하게 일어나는 경우가 아주 가끔씩 나타나더군요. 아마 메모리 단편화 때문에 발생하는 현상 같습니다.
아무래도 어플을 많이 띄우고 제때제때 메모리상에서 지우지 않으면 메모리 단편화는 발생할 수 밖에 없습니다. 메모리 조각 모음은 백그라운드 또는 사용자가 사용하지 않는 idle 상태에서 운영체제가 알아서 해주면 좋은데, iOS가 지원하는지는 잘 모르겠고... 사용자가 빠른 시간내에 어플들을 연속해서 바꿔가면서 실행할 경우에는 아무래도 메모리 단편화가 발생할 수 밖에 없겠죠.
단편화의 경우는 PC든 모바일이든, WM이든 안드로이드든 iOS든 어디에서나 생길 수 밖에 없는 문제이긴 하지만, 그래도 사용한 메모리를 제때제때 제대로 반납하면 그 손해를 많이 줄일 수는 있겠죠.