Можно ли запустить эмулятор PS2 через DVM Android?

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

Это правда?

Существуют ли очевидные ограничения для массивной программы, работающей под управлением Dalvik, или рабочей нагрузки DVM?

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

Ответы (2)

Дело не в том, что Dalvik не может запускать определенные типы программ, а в производительности.

Любая система времени выполнения, основанная на неродном байт-коде (например, Dalvik, JVM, .NET CLR), влечет за собой некоторые накладные расходы на преобразование байт-кода в форму, которую может выполнять ЦП. Для большинства приложений это не проблема, так как большинство приложений относительно мало загружают процессор и проводят большую часть своего времени, просто ожидая ввода. Но эмулятор, как правило, является программой с интенсивным использованием ЦП, поэтому часто лучше реализовать его с помощью собственного кода, который не требует дополнительных затрат, связанных с запуском в Dalvik.

Dalvik эффективно ограничивает максимальный размер программы с точки зрения количества классов и методов Java, которые вы можете использовать. Я не знаю никаких эмуляторов, написанных на Java, поэтому я не знаю, будут ли они слишком большими или нет, но это раскрывает более важный момент: вы все равно не написали бы эмулятор на Java.

Большинство эмуляторов написаны на C или C++, часто с ключевыми частями на языке ассемблера хост-платформы для максимальной эффективности во внутреннем цикле. Вы можете сделать это на Android точно так же, как и на любой другой платформе: приложения для Android не обязательно должны быть написаны на Java. Если вы не пишете эмулятор на Java, не имеет значения, что Dalvik может, а что нет. Так что нет никаких причин, по которым у вас не может быть эмулятор PS2 на Android.