Почему симулятор телефона Android такой медленный?

По сравнению с аналогами iPhone и Windows Phone 7 запуск занимает целую вечность — реально ли ожидать, что со временем это улучшится?


person Alan B    schedule 17.08.2010    source источник
comment
Взгляните на этот совет: stackoverflow.com/questions/1554099/slow-android-emulator   -  person tommy chheng    schedule 05.02.2012


Ответы (2)


Я бы не поставил свои деньги, что он значительно улучшится. Это связано с тем, что Android использует эмулятор на основе QEMU (по сравнению с симулятором IPhone).

Поскольку IPhone моделируется, он может преобразовывать инструкции в собственный код процессора на хост-компьютере, что намного быстрее, чем альтернатива QEMU.

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

Теперь, улучшая скорость эмулятора Android, вы можете:

  • открыть эмулятор и не закрывать его при каждом запуске; (повторная) установка приложения в открытом эмуляторе происходит почти мгновенно

  • используйте командную строку -no-boot-anim. переключаться при запуске эмулятора; это несколько улучшит время запуска

  • используйте реальное устройство для тестирования вашего приложения с помощью

person the_void    schedule 17.08.2010
comment
Да, я довольно быстро научился не закрывать его после каждого развертывания! - person Alan B; 17.08.2010
comment
У Android есть симулятор, скрывающийся в исходниках с самых первых дней (соберите цель sim-eng), но его использование устарело, и я не думаю, что он когда-либо работал в опубликованных исходниках (что-то ломается во время выпуска, и никто не замечает ). Даже с включенными тоннами утверждений и дополнительных проверок он может перейти на главный экран за несколько секунд. Это в первую очередь полезно для запуска valgrind. - person fadden; 18.08.2010
comment
На самом деле QEMU является бинарным транслятором (то есть тем, что вы называете «симулятором»), но эмулятор Android основан на очень старом исходном коде QEMU и никогда не использовал какие-либо улучшения, внесенные в основной QEMU. - person Filip Navara; 15.09.2010
comment
Последние версии SDK теперь предоставляют возможность сохранять состояние эмулятора при выходе и перезапускать эмулятор из этого моментального снимка, что значительно улучшило ситуацию. - person Alan B; 06.05.2011

Кроме того, если вы щелкните правой кнопкой мыши процесс в eclipse и выберите «Отключить», это значительно ускорит эмулятор, но, конечно, вы не сможете отлаживать.

person swinefeaster    schedule 15.09.2010