Які основні відмінності між реалізацією 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 погодиться ...
Іво Фліпс

2

Android має багатошарову концепцію багатозадачності додатків, ніж ПК. Існує більше роз'єднання між даними, способом перегляду даних та способом роботи з ними.

Одночасно може бути відкрито лише одне перегляд програм, але операція з даними може йти у фоновому режимі. Це розробникам додатків важко змусити себе відчувати себе робочим столом при переключенні між додатками, виходом із програм та запуском нових програм. Іноді неможливо вбити додаток, але іноді відчуває, що неможливо переключитися на одне завдання і повернутися знову. Це залежить від того, як це зробив розробник програми.

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

Дані програми завжди доступні. Поки програма має дозволи на доступ до даних, вона доступна. Вам не потрібна послуга, що працює у фоновому режимі, щоб вона була доступною.

Apple має дуже специфічні способи здійснення багатозадачності. Вони є підмножиною способів, які дозволяє Android. У фоновому режимі можуть працювати лише певні типи програм, і для цього їх потрібно спеціально запрограмувати.

Робочий стіл сильно відрізняється від обох цих речей. Перегляд, дані та логіка обробки даних кожної програми часто фіксуються разом. Я б сказав, що WebOS, Symbian та Maemo / Meego - приклади цього на мобільних пристроях. Якщо програма все-таки викриває свої дані та обробку фону іншими "переглядами", це буде, як правило, дуже спеціальним додатком.


Для запису, Linux має вбивцю OOM у всіх своїх втіленнях, це не конкретно для 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.