Разница между iPhone Simulator и Android Emulator
В чем разница между iPhone Simulator и Android-эмулятором? Я слышал, как люди говорили, что эмулятор действительно эмулирует целевое устройство, которое не соответствует действительности в случае симулятора.
Я думаю, что эмулятор Android имитирует скорость обработки целевого устройства, использование памяти, но имитатор не эмулирует устройство.
Ответы
Ответ 1
Отказ от ответственности: я всего лишь разработчик iPhone, а не разработчик Android.
Вы правы, разница между эмуляторами и симуляторами заключается в том, что эмуляторы имитируют программные и аппаратные среды, обнаруженные на реальных устройствах. С другой стороны, симуляторы имитируют программную среду; они в противном случае имеют доступ ко всем аппаратным ресурсам хост-системы, таким как дисковое пространство, память и скорость процессора.
Apple всегда разбирается в важности тестирования устройств, потому что iPhone Simulator не эмулирует процессор iPhone, дисковод, ограничения памяти и многое другое. Вы почти никогда не получаете предупреждений о памяти, если ваш Mac не пытается самостоятельно управлять ресурсами, если вы не будете имитировать (снова) предупреждения о памяти из пункта меню "Симулятор".
Фактически, если вы перейдете к Настройки > Общие > О, вы увидите, что емкость диска Simulator совпадает с файловой системой Mac, на которой он установлен:
Ответ 2
Несмотря на то, что эмулятор Android имитирует процессоры ARM и определенное оборудование, он по-прежнему не очень хорошо подходит для производительности процессора.
Будучи эмулятором, он может хорошо соответствовать потреблению памяти, он может хорошо эмулировать некоторые простые устройства, но не удается, когда устройства становятся сложными, например, мобильные графические процессоры и графические декодеры HW. И поскольку логика эмуляции работает над преобразованием каждой инструкции ARM в инструкцию X86 и выполнением ее высокопроизводительного свиста и по дизайну, а не с точностью до цикла.
С моделью программирования, являющейся Java, этот дизайн ничего не покупает разработчику приложения, так как производительность на эмуляторе не отражает производительность на устройстве (из-за скорости эмуляции и из-за отсутствия устройств HW), и чаще всего это неудобства, поскольку отладочные циклы медленны. Единственное преимущество, которое приложение выполнило для работы эмулятора, как на устройствах (без перекомпиляции).
В модели симулятора iPhone Apple поняла, что они не собираются идеально сочетать устройство, поэтому они даже не пытаются и взамен дают разработчикам быстрое время цикла и расширенную поддержку инструмента для эффективной разработки приложений.