android上层java编程模型,底层c++实现。是不是说android一直在跑一个jvm虚拟机呢?
是的话对不同的应用都开一个线程么?
不是的话是不是把jvm字节码最终翻译成机器码执行,而不是用jvm解释执行啦?最好能给一些相关的资料或url,谢谢!

解决方案 »

  1.   

    Android使用linux内核,但Android运行时可以让Android手机本质上或移动linux区分开来。
    Android运行时包含了核心库和Dalvik虚拟机,虽然Android开发语言使用java语言,但Dalvik并不是Java虚拟机,它是一个基于寄存器的虚拟机,被优化从而保证可以高效运行多个实例
    Android的一个关键元素就是Dalvik虚拟机Dalvik VM执行Dalvik可执行文件,优化后的格式可以保证能最小限度的占用内存
    SDK提供的工具可以把java语言编译的类转换为.dex可执行文件
      

  2.   

    楼主,我想说的是 android跑的不是JVM android跑的Dalvik,在你的应用运行的时候,adnroid会为你的每一个应用开辟一个新的Dalvik虚拟机,他转换成的是.DEX文件,android不是完全用的java,应为涉及到授权的问题,这也是为什么oracle和谷歌打官司的原因
      

  3.   

    GOOGLE官方说不是JAVA虚拟机,但我觉得从开发角度来说,100%可以当作JAVA虚拟机看待。只是牌子不同而已。原理都是一样的,都是解释执行。而且可以支持JNI。Android是多进程。也就是每个应用是在独立的进程中执行的。每个进程应该都开了虚拟机。否则,为什么程序崩溃的时候不死机呢? 哈哈