有个疑问请教一下大家,java语言是为了跨平台而生的,不同的平台(操作系统)会有自己的JVM,只要编译器将java源码编译成class字节码,交给JVM执行引擎转换成机器码后就可以在不同的平台上运行。但是对于android而言,操作系统不是只有一种吗?为什么不直接编译成机器码呢?

解决方案 »

  1.   

    CPU不仅有arm也有x86呀
      

  2.   

     现在大部分都是arm的了吧。 再说,如果手机厂商只针对自己的手机做优化,这样的话是不是就可以针对性地在编译期生成机器码,例如华为的方舟编译器,有没有可能是这个原理
      

  3.   

    编译成机器码也得是汇编、c、c++语言,而这几个语言我就不多说了。使用java必须得遵守java协议,谷歌也不可能没事找事。方舟编译器估计只是雷声大雨点小而已,估计只能用于华为的EMUI而已。
      

  4.   

    确实是cpu指令集的原因,而且本身Android用Java开发那就要按照Java的规则来
      

  5.   

    大部分都是arm的
      估计应该是这个原因