Вообще говоря, эмулятор намного медленнее, чем устройство, выполняющее задачи CPU и GPU. Это как минимум по двум причинам:
- Эмулятор запускает коды операций ARM, преобразуя их в эквивалентные инструкции x86, что медленно
- Устройства (обычно) имеют графические ускорители, в то время как эмулируемая среда не имеет, несмотря на то, какая видеокарта у вас установлена на компьютере с эмулятором
Для сравнения: я работаю на Android на четырехъядерном процессоре Intel с частотой 2,66 ГГц и довольно неплохой видеокартой. Для видео, которые отлично работают на устройствах, я могу иногда заставить их воспроизвести в эмуляторе.
Эмулятор работает быстрее, чем устройство, при «дисковых» операциях ввода-вывода. Когда вы пишете на флэш-память в эмуляторе, вы пишете в файл образа диска, который, вероятно, находится на обычном жестком диске, при условии, что вы не используете SSD. На самом деле запись на флэш-память на устройстве может быть значительно медленнее - Брэд Фитцпатрик, на прошлой неделе на конференции Google I | O 2010, упомянул всплески до 200 мс для записи одного байта во флэш-память. Кроме того, сочетание Android, flash и файловой системы yaffs2, по-видимому, приводит к постепенному замедлению устройства при вводе / выводе флэш-памяти при заполнении флэш-памяти. Следовательно, он рекомендовал делать любые флэш-записи в фоновом потоке вместо основного потока приложения, где он может связать пользовательский интерфейс и привести к «ненужному» приложению.
(по-видимому, "джанки" это технический термин ...: -)
Кстати, когда он появится в Интернете, обязательно посмотрите презентацию Брэда на YouTube. Иногда это может быть немного сложно, потому что он говорил очень быстро, но в нем было много полезных моментов, связанных с производительностью.