Оговорюсь сразу: некоторых деталей я глубоко не знаю поэтому что-то в моих посылках может быть неверно.
Принципиальная разница в архитектуре Android и iPhone состоит в том что
Android это фактически однозадачная система. Во всяком случае в плане UI.
Т.е. android девайс это один единственный процесс в котором крутится Dalvik (Java VM).
Приложение Android есть java .class[es] который грузится в эту самую VM и соответственно приложение попадает
в общий memory heap. Со всеми вытекающими. Выполнить GC в такой системе — сделать stop-the-world.
Существуют способы incremental GC но имхо для GUI особенно такого типа они не подходят.
iPhone OS это в общем-то полномасштабная multitasking OS. Приложение есть процесс со своей собственной таблицей страниц памяти и пр. handlers.
Т.е. фактически имеем противостояние Cooperative Multitasking и Preemptive multitasking.
Очевидно что iOS лучше масштабируется под бОльшие разрешения экрана (больше экран — бОльшие приложения — больше памяти им нужно)
Но Android OS более оптимальна для low-level devices. Хотя бы теоретически. Когда Google говорит про то что Android он не для tablets я так
понимаю имеется ввиду именно это.
Т.е. в Android имеем одно большое дерево объектов в памяти. В iOS — каждый процесс имеет свое дерево (меньшей высоты).
Соответсвенно memory management в iOS дешевле в принципе. И локален для каждого прцесса. В iOS гораздо меньше наблюдаетсе UI freeze эффектов.
Но в Android можно лучше сделать Activity stack — back button там в принципе лучше работает. Что естественно ибо Android OS это один большой Activity stack.
Windows Phone я так понимаю это в общем-то тот же Android (архитектурно) в котором вместо Dalvik работает .NET VM.
Я так понимаю что Windows Phone OS на tablets мы не увидим. Гораздо больше шансов увидеть W7 на tablets.
Хотя я бы лично развивал Windows Mobile — как OS она достаточно mature. Графику переработать только.
Еще про late binding как отдельный аспект. Понятно что OS и приложения должны как-то взаимодействовать —
т.е. нужен некий API механизм. В принципе Windows Mobile + COM как протокол предсталяется достаточно production level на настоящий момент.
Честно говоря я был несколько удивлен решением Windows Phone (как еще один Android). Мотивации оных разработчиков тайна мраком покрытая есмъ.
Для "недо-PC" наверное такой вариант (OS есть VM, приложения есть classes в общем memory heap) в принципе подходит.
Но как бы уже телефоны по вычислительной мощности являются девайсами на которых Windows XP (и вся ветка NT) начинала вполне себе комфортную работу.
Скорее всего нас ждет будущее в которм будет Chrome OS, W7 и iOS. Android и WP если будет то на low-end совсем.