애플리케이션 멀티 태스킹의 Android 및 iPhone 구현의 주요 차이점은 무엇입니까?


9

응용 프로그램 수준에서 Android 및 iPhone 멀티 태스킹 구현의 주요 차이점은 무엇입니까?

(이것을 주관적인 팬보이 논쟁으로 바꾸지 않겠습니까?)

답변:


6

이것은 귀하의 질문에 대한 답변은 아니지만 두 운영 체제가 여러 프로세스를 수행 할 수있는 한도 내에서 완전히 멀티 태스킹되고 있음을 분명히 밝힐 가치가 있습니다.

귀하의 질문은 응용 프로그램 수준의 멀티 태스킹 ( "다른 응용 프로그램을 사용하는 동안 한 응용 프로그램을 실행 상태로 둘 수 있습니까?")에 관한 것입니다.이 용어는 비교적 새로운 용어로 사용되며 명백한 내용이 있더라도 항상 잘 정의되어 있지는 않습니다. 예 (예 : 이메일을 읽는 동안 Pandora 듣기) 특히, 많은 응용 프로그램은 상태를 저장 / 복원하는 한 실행을 중지 한 적이없는 것처럼 사용자에게 자신을 표시하기 위해 백그라운드에서 실행할 필요가 없습니다. 정기적 인 작업 (메일 확인 또는 팝업 팝업과 같은)을 수행해야하는 응용 프로그램은 백그라운드에서 계속 실행될 필요가 없습니다. OS에 의해 때때로 호출 될 수 있습니다. 가장 큰 문제는 일반적으로 Pandora와 같이 백그라운드에서 일정한 CPU가 필요한 응용 프로그램입니다.

일반적으로 Apple은 백그라운드 응용 프로그램을 지속적으로 실행하지 못하게하고 방지하기 위해 훨씬 더 열심히 노력했지만 Android는 더 개방적입니다. 그러나 애플은 판도라와 같은 앱이 백그라운드에서 실행되도록 허용하고, 안드로이드는 폴링이나 저장된 상태로 충분할 때 불필요한 백그라운드 작업을 방해하는 더 풍부한 도구를 제공하기 때문에 수렴하고 있습니다.

[1] http://en.wikipedia.org/wiki/Computer_multitasking


1
좋은 지적. 질문을 편집하겠습니다.

3

내가 말할 수있는 한.

iPhone 멀티 태스킹이 훨씬 제한적입니다. 멀티 태스킹 활동은 다음 중 하나 여야합니다.

  • 백그라운드 오디오
  • VoIP
  • 배경 위치
  • 푸시 알림
  • 지역 알림
  • 작업 완료
  • 빠른 앱 전환

[ 기즈모도 감사합니다 !]

반면에 Android는 PC와 유사한 방식으로 진정한 멀티 태스킹을 허용합니다.

Android fanboi라는 비난을 받기 전에 설명해 드리겠습니다. iPhone 멀티 태스킹 모델은 대부분의 상황에 충분하며 Android 시스템에 수반되는 많은 문제 (예 : 메모리 부족)를 피합니다.


진정한 멀티 태스킹? 나는 WebOS 또는 Symbian 사람들이 동의 할 것이라고 생각하지 않습니다 ...
Ivo Flipse

2

안드로이드는 PC와는 다른 애플리케이션 레벨 멀티 태스킹 개념을 가지고 있습니다. 데이터, 데이터를 보는 방법 및 데이터를 조작하는 방법 사이에 연결이 끊어졌습니다.

한 번에 하나의 앱보기 만 열 수 있지만 데이터 작업은 백그라운드에서 진행될 수 있습니다. 따라서 응용 프로그램 개발자가 응용 프로그램간에 전환하고 응용 프로그램을 종료하고 새로운 응용 프로그램을 시작할 때 데스크톱처럼 느끼게하기가 어렵습니다. 때로는 앱을 죽이는 것이 불가능하다고 느끼지만 때로는 한 작업으로 전환했다가 다시 되돌릴 수없는 것처럼 느껴집니다. 앱 개발자가 수행 한 방식에 따라 다릅니다.

한 번에 많은 백그라운드 프로세스를 수행 할 수 있으며 데스크톱 앱처럼 예약됩니다. 리눅스 커널은 어느 것이 메모리와 CPU 리소스를 얻는 지 우선 순위를 정하는 방법을 선택할 것입니다. 전화가 메모리가 부족하다고 판단하면 더 많은 메모리를 만들기 위해 물건을 죽이기 시작합니다. 이것은 Linux 또는 대부분의 다른 OS가 일반적으로 작동하는 방식과 다르게 수행됩니다.

프로그램의 데이터는 항상 사용 가능합니다. 앱에 데이터 액세스 권한이있는 한 사용할 수 있습니다. 사용하기 위해 백그라운드에서 실행되는 서비스가 필요하지 않습니다.

Apple은 멀티 태스킹 할 수있는 매우 구체적인 방법을 가지고 있습니다. 그것들은 안드로이드가 허용하는 방식의 일부입니다. 특정 유형의 앱만 백그라운드에서 실행할 수 있으며 그렇게하려면 구체적으로 프로그래밍해야합니다.

데스크탑은이 두 가지와 매우 다릅니다. 각 응용 프로그램의보기, 데이터 및 데이터 처리 논리는 종종 함께 잠겨 있습니다. WebOS, Symbian 및 Maemo / Meego가 모바일 장치에서 이에 대한 예라고 말하고 싶습니다. 응용 프로그램이 데이터 및 백그라운드 처리를 다른 "보기"에 노출시키는 경우 매우 특수한 응용 프로그램 인 경향이 있습니다.


기록상, 리눅스는 화신에 OOM Killer를 가지고 있으며 안드로이드 전용이 아닙니다. 그러나 PC에서는 물건을 죽이기 전에 스왑 공간과 실제 RAM을 사용해야합니다.

실제로는 아닙니다 : wiki.kldp.org/wiki.php/AndroidPortingOnRealTarget#s-3.1.5 안드로이드가 실제로 리눅스가 아니기 때문에 실행하기 위해 커널에 패치가 필요하다는 점에서 안드로이드의 어려운 점 중 하나입니다. 주식 커널에서 Dalvik을 실행하면 진행을 방해 할 수 있습니다.
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.