Подтвердить что ты не робот

Как производительность эмулятора Android сравнима с реальной производительностью устройства?

Я занимаюсь написанием игры на Android, я не уверен, что у меня есть устройство Android. Для тех из вас, кто владеет устройством, как производительность эмулятора связана с реальной производительностью устройства? Меня особенно интересуют связанные с графикой задачи.

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

Этот вопрос является duplicate, но поскольку этот пост сильно устарел, я теперь понял, что он неактуальен.

4b9b3361

Ответ 1

Вообще говоря, эмулятор намного медленнее, чем устройство в задачах CPU и GPU. Это по крайней мере по двум причинам:

  • Эмулятор запускает коды операций ARM, преобразуя их в эквивалентные инструкции x86, которые медленны
  • Устройства (обычно) имеют графические ускорители, тогда как в эмулируемой среде нет, несмотря на то, что у вас на компьютере, на котором запущен эмулятор,

Чтобы представить все в перспективе, я делаю свою работу на Android с четырехъядерным процессором Intel 2,66 ГГц с довольно приятной графической картой. Для видео, которые отлично работают на устройствах, иногда я могу их воспроизвести в эмуляторе.

Эмулятор работает быстрее, чем устройство, хотя и на "диске" ввода/вывода. Когда вы пишете "flash" на эмуляторе, вы пишете файл образа диска, который, вероятно, находится на обычном жестком диске, если вы не используете SSD. На самом деле запись на флеш-память на устройстве может быть значительно медленнее - Брэд Фицпатрик, на прошлой неделе в конференции Google я | O 2010, процитировал всплески до 200 мс, чтобы написать один байт, чтобы вспыхнуть. И комбинация Android, flash и файловой системы yaffs2, по-видимому, заставляет устройство постепенно замедляться при работе с флэш-памятью, когда вспышка заполняется. Следовательно, его рекомендация заключалась в том, чтобы делать какие-либо флэш-записи в фоновом потоке вместо основного потока приложений, где он может связывать пользовательский интерфейс и приводить к "язвительному" приложению.

(по-видимому, "janky" - это технический термин...: -)

Кстати, когда он появляется в Интернете, обязательно смотрите презентацию Brad на YouTube. Иногда это может быть немного сложно, потому что он говорил очень быстро, но он был полон полезных лакомых кусочков, связанных с производительностью.

Ответ 2

Отметьте эту приятную статью, где показано, как можно сравнить скорость процессора эмулятора со скоростью процессора устройства с использованием BogoMIPS.

Ответ 3

Преобразование кодов операций ARM в x86, как упоминалось, является основным источником задержки в эмуляторе.

По моему опыту, эмулятор очень медленный и очень нерепрезентативен тому, что можно ожидать от устройства, особенно процессора Snapdragon.

Даже очень простые приложения в эмуляторе (я говорю LinearLayout с несколькими текстовыми элементами) занимают некоторое время, чтобы загрузить и выполнить активность.

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

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



Постскриптум Не забудьте проверить свою игру на разных версиях Android и искать общие проблемы, с которыми сталкиваются игры в различных версиях Android.