按理说PC机的配置要比手机的高好几倍那,可是为什么PC上跑android 模拟器速度这么慢那。 1G RAM,2G CPU的PC 跑android 都慢的象蜗牛。 可是600M CPU, 128M RAM的手机,如HTC,跑Android却非常流畅。 这是怎么回事呀,有些说不过去。  象其他平台什么的,都是PC上模拟器的效果肯定要远远好于真实手机上的,而android 却正好相反, 究竟是什么瓶颈导致的那, 个人感觉不应该是虚拟机的问题,因为同样虚拟机,为何跑在只有600M的手机上却这么快那请TX们释疑谢谢~~~~

解决方案 »

  1.   

    模拟器qeum只能模拟单核,多核的威力发挥不出来,cpu一直占用100%
      

  2.   

    那也说不过去呀~~ 手机上也只有单核,而且CPU要比PC上低很多~~
      

  3.   

    而且1G RAM,2G CPU,这个配置太烂了。
    起个eclipse和模拟器基本不能干别的了。
    我4g ram,4核cpu跑起来还比较快,和真机差不多。要做开发还是要配好机器。
      

  4.   

    其它平台一般很多都不信赖于qeum,凡是信赖于qeum的,通常都不是非常快。
      

  5.   

    那为什么一定要依赖于 qeum的那
      

  6.   

    android是模拟armv4指令集,跟windows mobile一样。 模拟器运行比真机慢。 
      

  7.   

    本身启动emulator已经是建立在启动一个jvm的基础上,此时还需要在这个jvm上,在启动一个dalvik vm,造成了系统不停地在三个系统间进行IO的切换,导致了速度的降低。而在手机上,IO是固定,不需要模拟,同时只需要启动一个系统,所以速度得到了提升。
      

  8.   

    [Quote=引用 14 楼 yyy025025025 的回复:]
    本身启动emulator已经是建立在启动一个jvm的基础上,此时还需要在这个jvm上,在启动一个dalvik vm,造成了系统不停地在三个系统间进行IO的切换,导致了速度的降低。而在手机上,IO是固定,不需要模拟,同时只需要启动一个系统,所以速度得到了提升。
    你是你的理解吧~~~
    有没有更详细的
      

  9.   

    来做简单的操作,当申明一个int型的变量的时候,在jvm中,这个int所占的大小是固定。但是实际在汇编中的这个变量所占的大小是由jvm根据不同的系统,不同的机器换算得到的。如果在手机上,申请一个int变量所需要的流程就是, execute code->dalvik->android->hardware如果在emulator上,申请一个int变量所需要的流程就是, execute code->dalvik->android->jvm->windows/linux->hardware通过对比可以看到多了两层,无形中增加了开销,导致整个execute code执行所占的时间被拉长了。
      

  10.   

    Android本身的emulator为何基于JVM那??难度emulator是用java写的?? 那为什么emulator本身不能直接用windows api编写那???
      

  11.   

    emulator 的确是 java写的
    启动时, 会弹出java command,可以知道是java写的。