티스토리 뷰

iOS5가 나오는 마당에 쌩뚱맞게 iOS4의 멀티태스킹에 대한 정리를 하고 있네요.. ^^
iOS4 이상에서 멀티태스킹에 대해 지원한다고 하니 백그라운드 상태에서 모든게 되는 줄 잘못 이해하는 경우가 있어 정확한 내용을 한번 정리해서 올려보려고 합니다. 

iOS4 멀티태스킹의 이해

대부분의 응용 프로그램은 백그라운드에서 실행될 때 시스템 리소스를 소모하지 않으며, 다시 프로그램으로 돌아가야 프로그램이 실행되게 됩니다.
멀티태스킹을 제공하는 이유는 각 프로그램간의 이동이 쉽도록 지원하기 위해서 iOS3에 없던 기능을 추가한 것이라고 보면 됩니다.


그럼 iOS4의 멀티태스킹에서 가능한 작업은 다음과 같은 3가지뿐입니다. 

1. 위치 변경에 대한 반응
2. 오디오 재생 
3. VoIP (Voice over IP) 연결


그리고 Background로 들어갈 때 다음과 같은 조치를 취해야 한다고 명시하고 있습니다.

1. OpenGL 사용 금지
2. 네트워크 동작 금지
3. 가능한 현재 상태를 저장
4. 백그라운드에서는 큰 Object를 Release해야 함.  


쉽게 말해서 화면에서 구동되는 내용이나 특정 액션들은 백그라운드에서는 전혀 동작하지 않게 됩니다.
단순히 전화를 받거나 음악을 듣거나 위치 변경 정보 알림 정도가 가능하게 되는 것이죠.. 

이 부분에 대해서 보다 자세히 설명된 내용을 영문과 한글로 옮겨봅니다.

iOS4 멀티태스킹 중 백그라운드에서 주의할 점

1. Do not make any OpenGL ES calls from your code.
OpenGS ES를 호출하지 마라. 

2. Cancel any network-related services before being suspended.
백그라운드로 이동할 때 모든 네트워크 관련 서비스를 취소하라. 

3. Save your application state before moving to the background.
백그라운드로 이동하기 전에 응용 프로그램의 상태를 저장하라. 

4. Release any unneeded memory when moving to the background.
백그라운드로 이동할 때 불필요한 메모리를 해제하라. 

5. Avoid using shared system resources. 
시스템 리소스를 공유하지 마라. 

6. Avoid updating your windows and views.
App 화면이나 뷰를 업데이트 하지 마라. 

7. Remove sensitive information from views before moving to the background. 
백그라운드로 이동하기 전에 민감한 정보들은 뷰에서 제거하라. 

8. Do minimal work while running in the background. 
백그라운드에 실행중일 때는 최소한의 작업만을 하라. 


실제로 백그라운드에서는 실행중일 때보다 훨씬 적은 리소스 할당이 됩니다. 
그리고 오랜 시간 백그라운드에서 실행하면 OS가 프로그램을 재시작 해버리거나 종료해버리기도 합니다. 
Java의 Garbage Collection과 같이 iOS의 생명주기(life cycle)에 따라 처리하는 것 같습니다. 

또한 low memory 상태가 되면 백그라운드 어플 관련해서 메모리 공간을 제거하게 되므로 
백그라운드에서 복원 가능한 정보를 저장하라고 이야기 하고 있습니다. 
어플 제거 역시 아무런 예고 없이 바로 실행하기 때문에 백그라운드로 이동하기 전에 처리해야 한다는 것이죠.. 

안드로이드에 비해 백그라운드 기능이 iOS가 제한적인 것이 사실입니다. 
이런 특징들을 잘 고려해야 할 것 같습니다. 
 
댓글
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
«   2024/11   »
1 2
3 4 5 6 7 8 9
10 11 12 13 14 15 16
17 18 19 20 21 22 23
24 25 26 27 28 29 30
글 보관함