Android SurfaceView的速度是否足以进行仿真?

Android SurfaceView的速度是否足以进行仿真?,android,Android,多年来,我一直在我的主页上维护一个彩色计算机模拟器小程序。购买了一台不可思议的机器后,我决定做一个港口。在安卓系统中运行并不需要很长时间,但我真的很惊讶它运行的如此之慢。你可以从字面上看到像素绘画。我知道还有其他成功的Android模拟器,所以我一定是做错了什么 我的方法是使用SurfaceView进行渲染。有一个单独的线程运行一个虚拟6809 CPU。每当该线程更新模拟视频内存时,它都会调用SurfaceHolder.lockCanvas(),并使用一个Rect来描述需要重新绘制的屏幕部分。然

多年来,我一直在我的主页上维护一个彩色计算机模拟器小程序。购买了一台不可思议的机器后,我决定做一个港口。在安卓系统中运行并不需要很长时间,但我真的很惊讶它运行的如此之慢。你可以从字面上看到像素绘画。我知道还有其他成功的Android模拟器,所以我一定是做错了什么


我的方法是使用SurfaceView进行渲染。有一个单独的线程运行一个虚拟6809 CPU。每当该线程更新模拟视频内存时,它都会调用SurfaceHolder.lockCanvas(),并使用一个Rect来描述需要重新绘制的屏幕部分。然后,它使用生成的画布调用gfx例程……这就是我在AWT/Swing中重新绘制()的地方。gfx例程足够聪明,可以只渲染clipRect中的内容。也许我仍然被困在AWT中,但我想不出任何方法使它以可接受的速度运行。我试图合并gfx呼叫,但也没有成功。有什么想法吗?

SurfaceView应该足够快。所有绘图例程都足够智能,如果在剪辑区域之外,则不会执行任何操作,但如果需要,可以提前剔除调用。看起来你需要分析一下你的应用程序,看看你在哪里花了太多时间。

谢谢罗曼。SurfaceView足够快了。现在,我每x个处理器周期调用一个合适的片段来绘制例程(而不是每次模拟器写入“视频内存”时调用例程)。快得多。