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

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

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

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

14
задан Community 23 May 2017 в 11:45
поделиться

2 ответа

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

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

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

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

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

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

13
ответ дан 1 December 2019 в 13:58
поделиться

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

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

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

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

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



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

1
ответ дан 1 December 2019 в 13:58
поделиться
Другие вопросы по тегам:

Похожие вопросы: