¿Es posible ejecutar un emulador de PS2 a través de DVM de Android?

Escuché algunas publicaciones aleatorias de personas en foros que afirman que la máquina virtual Dalvik de Android no puede manejar algo de la magnitud de un emulador de PS2, como este portado un poco .

¿Es esto cierto?

¿Existen limitaciones obvias para un programa masivo que se ejecuta bajo Dalvik o la carga de trabajo de DVM?

Dado que la limitación obvia es el hardware y la mayoría de los dispositivos tienen problemas importantes con esto por esa misma razón, ¿hay algún aspecto del software que pueda limitar esto, en resumen?

Respuestas (2)

No es una cuestión de que Dalvik sea incapaz de ejecutar ciertos tipos de programas, es una cuestión de rendimiento.

Cualquier sistema de tiempo de ejecución basado en código de bytes no nativo (p. ej., Dalvik, JVM, .NET CLR) incurre en una sobrecarga de rendimiento al traducir el código de bytes a una forma que la CPU pueda ejecutar. Para la mayoría de las aplicaciones, esto no es un problema, ya que la mayoría de las aplicaciones hacen relativamente poco trabajo de CPU y pasan la mayor parte de su tiempo esperando entradas. Pero un emulador suele ser un programa que hace un uso intensivo de la CPU, por lo que a menudo es mejor implementarlo usando un código nativo, que no incurre en la sobrecarga de ejecutarse en Dalvik.

Dalvik efectivamente limita el tamaño máximo de un programa, en términos de la cantidad de clases y métodos de Java que puede tener. No conozco ningún emulador escrito en Java, así que no sé si serían demasiado grandes o no, pero eso revela un punto más importante: de todos modos, no escribirías un emulador en Java.

La mayoría de los emuladores están escritos en C o C ++, a menudo con las partes cruciales en el lenguaje ensamblador de la plataforma host para una máxima eficiencia en el ciclo interno. Haría esto en Android como en cualquier otra plataforma: las aplicaciones de Android no tienen que estar escritas en Java. Si no escribe el emulador en Java, no importa lo que Dalvik pueda o no pueda hacer. Así que no hay ninguna razón por la que no puedas tener un emulador de PS2 en Android.