2013-03-26 3 views
5

Просто интересно. Является ли Apple великолепной работой с имитатором iPhone?Почему Android-эмулятор намного медленнее, чем iPhone-симулятор?

Когда сравнивается, эмулятор Android работает на i7 и симуляторе iPhone на i3. Симулятор iPhone быстрее, чем настоящий iPhone.

Неужели я не смог правильно настроить ситуацию?

+2

 Скалы !!!!!!! –

+1

Да, это правда, «эмулятор» (FYI) медленнее, чем симулятор. – MKJParekh

ответ

16

Это вопрос архитектурных решений:

  • IOS симулятор работает машинный код, непосредственно на CPU - проект должен перекомпилировать для архитектуры x86 для использования с симулятором. Сам имитатор просто эмулирует все API iOS.

  • Android-эмулятор, с другой стороны, использует QEMU для запуска ARM (или x86, но ARM более популярен). Виртуальная машина CPU со всем стеком программного обеспечения поверх нее - ядро ​​Linux, изображение системы Android и т. Д. Думайте об этом как эмулируемое оборудование.

Это своего рода компромисс - путь IOS делает это гораздо быстрее, но это труднее сделать это 100% совместимость с целевой системой. Для Apple это было, пожалуй, немного проще, так как у iOS и Mac OS много общего.

Для Android очень важно эмулировать весь стек - проще построить кросс-платформенный SDK, проще протестировать некоторые компоненты системного уровня с ним и т. Д. Это просто другая экосистема с разными целями. Не забывайте, что эмулятор Android можно использовать, например.для тестирования собственных библиотек ARM, скомпилированных с Android NDK.

Сегодня производительность эмулятора Android более-менее приемлема, но это было просто катастрофой в ранние дни Android. Тем не менее, лично я считаю, что быстрый, собственный API-интерфейс уровня API для Android станет отличным дополнением к SDK, что позволит быстрее протестировать менее требовательные проекты.

Интересное чтение: http://logic-explained.blogspot.com/2011/09/why-is-there-no-x86-native-emulator-for.html

+2

Этот ответ несколько старый, но все же хорошая информация об эмуляторе ARM. Есть новые эмуляторы, использующие Intel HAX. Если у вас есть процессор Intel с настройкой виртуализации, вы получите гораздо более высокую производительность. Графическая часть все равно будет медленной, но вы можете отказаться от разрешения, чтобы компенсировать это. У меня был успех с Android x86 на виртуальной машине (ctrl-F1, введите netcfg на виртуальную машину. Ctrl-F7, чтобы вернуться к графическому интерфейсу. В dev-машине adb connect

+0

Смотрите это: http://jakewharton.com/android-needs-a-simulator/ – bryant1410

2

iphone, iphone симулятор, яблоко ноутбука, Xcode являются яблочными продуктами

но андроид
окна-Microsoft андроид -Google затмения -eclipse поставщика

этих инструментов разных поставщиков, почему андроид симулятор медленно ,

я просто шучу :)

1

Прежде всего Android не имеет Simulator он имеет Emulator. Во-вторых, я считаю, что скорость эмулятора зависит от конфигурации вашего компьютера. Лучше настроить, тем лучше он будет работать, если вы правильно создали AVD и дали ему достаточно памяти.

0

У Android SDK есть эмулятор, в то время как у ios SDK есть симулятор.

Симулятор ведет себя аналогично чему-то еще, но реализован совершенно по-другому. Он обеспечивает базовое поведение системы, но может не обязательно соответствовать всем правилам моделируемой системы. Это дает вам представление о том, как что-то работает. Он использует настольные ресурсы, такие как процессор, ram и т. Д.,

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

Таким образом, симулятор будет определенно быстро по сравнению с эмулятором.

2

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

0

Симулятор Android на самом деле является эмулятором, предназначенным для имитации мобильного устройства под управлением Android, что означает, что он эмулирует аппаратное обеспечение под управлением ОС Android, чтобы максимально приблизить его к 100%. JVM преобразует байт-код Java в инструкции ARM, которые декодируются эмулятором.

iOS симулятор работает на более высоком уровне, имитируя операционную систему и ее библиотеки, переводя вызовы ОС в реализации OS X и имитируя события в другом направлении, такие как вращение устройства или условия низкой памяти. Когда вы запускаете приложение на iOS-симуляторе, приложение компилируется в x86, который запускается изначально на вашем Mac. В отличие от Android-эмулятора, ваше приложение iOS не будет исчерпано в памяти на симуляторе, потому что оно не ограничено ограничениями на какие-либо устройства iOS.

1

Да, это правда, emulator (FYI) медленнее, чем симулятор.

Является ли яблоко отличной работой с симулятором iPhone?

Ни один другой разработчик не может ответить на это, поскольку iOS не является открытым исходным кодом.

Неужели я не смог правильно настроить ситуацию?

Нет, вы правы во всем.

1

Это просто:

Android эмулирует реальное устройство, так что реальные и действительно архитектурных сооружений близко behaivour и расположение.

В других играх яблочный симулятор не является эмулятором, поэтому вы не можете ожидать реального поведения, но он имеет тесную компоновку, которая в основном решает для IOS, поскольку вам нужно всего лишь 1 устройство для проверки поведения приложения.

Смежные вопросы