Каковы основные различия между реализациями многозадачности приложений для Android и iPhone?


9

Каковы основные различия между реализациями многозадачности в Android и iPhone на уровне приложений?

(Давайте не будем превращать это в субъективный аргумент фаната, пожалуйста?)

Ответы:


6

Это не ответ на ваш вопрос, но стоит уточнить, что обе операционные системы полностью работают под несколькими задачами [1] (поскольку они могут выполнять несколько процессов).

Ваш вопрос явно касается многозадачности на уровне приложения («Могу ли я оставить одно приложение работающим, используя другое?»), Что является относительно новым использованием этого термина и не всегда четко определено, даже если оно имеет некоторые очевидные примеры (например, прослушивание Пандоры во время чтения электронной почты). В частности, многим приложениям не нужно работать в фоновом режиме, чтобы представить себя пользователю, как будто они никогда не прекращали работу, если они сохраняют / восстанавливают свое состояние. Приложения, которые должны выполнять периодические операции (такие как проверка почты или появление аварийных сигналов), также не должны работать непрерывно в фоновом режиме; они могут иногда вызываться ОС. Большой проблемой обычно являются приложения, которым требуется постоянный процессор в фоновом режиме, например, Pandora.

В целом, Apple работала намного усерднее, чтобы препятствовать или предотвращать непрерывно работающие фоновые приложения, тогда как Android кажется более открытым для этого. Но они сходятся, так как Apple позволяет приложениям, таким как Pandora, работать в фоновом режиме, а Android предоставляет более богатые инструменты для предотвращения ненужных фоновых задач, когда достаточно опроса или сохраненного состояния.

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


1
Хорошая точка зрения. Я отредактирую свой вопрос.

3

Насколько я могу сказать.

Многозадачность iPhone намного более ограничена. Многозадачная активность должна быть одной из следующих:

  • Фоновое аудио
  • VoIP
  • Фоновое расположение
  • Всплывающие напоминания
  • Локальные уведомления
  • Завершение задачи
  • Быстрое переключение приложений

[Спасибо Gizmodo !]

Android, с другой стороны, обеспечивает настоящую многозадачность аналогично ПК.

Прежде чем меня обвинят в том, что я фанат Android, позвольте мне кое-что объяснить. Модель многозадачности iPhone более чем достаточна для большинства ситуаций и позволяет избежать многих проблем (например, нехватки памяти), которые сопровождают систему Android.


Правда многозадачность? Я не думаю, что люди из WebOS или Symbian согласятся ...
Ivo Flipse

2

Android имеет другую концепцию многозадачности на уровне приложений, чем ПК. Существует больше разногласий между данными, как просматривать данные и как работать с данными.

Вы можете одновременно открыть только одно представление приложения, но операция с данными может выполняться в фоновом режиме. Это усложняет для разработчиков приложений ощущение, что они выглядят как рабочий стол при переключении между приложениями, выходе из приложений и запуске новых приложений. Иногда кажется невозможным убить приложение, но иногда кажется, что невозможно переключиться на одну задачу и вернуться обратно. Это зависит от того, как разработчик приложения сделал это.

Вы можете запускать как можно больше фоновых процессов одновременно, и они запланированы как настольные приложения. Ядро Linux будет выбирать, как расставлять приоритеты, какие из них получают память и ресурсы процессора. Когда телефон решит, что ему не хватает памяти, он начнет убивать, чтобы освободить память. Это делается не так, как обычно ведут себя Linux или большинство других ОС.

Данные программы всегда доступны. Пока приложение имеет разрешения на доступ к данным, оно доступно. Вам не нужен сервис, работающий в фоновом режиме, чтобы он был доступен.

У Apple есть очень специфические способы многозадачности. Они являются подмножеством способов, которые позволяет Android. Только определенные типы приложений могут работать в фоновом режиме, и они должны быть специально запрограммированы для этого.

Рабочий стол сильно отличается от обеих этих вещей. Представление, данные и логика обработки каждого приложения часто связаны друг с другом. Я бы сказал, что WebOS, Symbian и Maemo / Meego являются примерами этого на мобильных устройствах. Если приложение действительно предоставляет свои данные и фоновую обработку другим «представлениям», оно будет очень специфическим приложением.


Кстати, в Linux есть OOM Killer во всех его воплощениях, он не специфичен для Android. Тем не менее, на компьютере вы должны использовать пространство подкачки, а также физическую оперативную память, прежде чем он начнет убивать вещи.

Не совсем, см .: wiki.kldp.org/wiki.php/AndroidPortingOnRealTarget#s-3.1.5 Это одна из трудностей, связанных с тем, что Android на самом деле не является Linux, так как для работы ему нужно это пропатчить в ядро. Попробуйте запустить Dalvik на стандартном ядре, и это не позволит вам продолжить.
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.