美文网首页
051Android 虚拟机基本概念无标题文章

051Android 虚拟机基本概念无标题文章

作者: 夏大王2019 | 来源:发表于2017-01-20 22:29 被阅读9次

    android引入虚拟机,我想主要是考虑如下:

    1. 提供虚拟机对跨硬件平台好,只要维持好虚拟机与上下层的接口,上层应用可以不管底层的硬件区别。x86、arm架构的android手机都可以跑。
    2. java的开发者更多,而且比原生的c++更容易掌握。

    至于为什么每个程序运行在一个独立的虚拟中,我想是考虑

    1. 一个虚拟机中放入多个程序的话,还要考虑进程调度等,增加复杂度,和影响效率且没有什么好处。
    2. android为每个程序提供一个vm,可以使每个app都运行在独立的运行环境,使稳定性提高

    Android中Dalvik和JVM的区别是什么?

    1. Dalvik基于寄存器,而JVM基于栈。基于寄存器的虚拟机运行效率更高。
    2. Dalvik负责进程隔离和线程管理,每一个Android应用在底层都会对应一个独立的Dalvik虚拟机实例,Dalvik专门针对同时高效运行多个虚拟机进行了优化,其代码在虚拟机的解释下得以执行。
    3. Dalvik并未遵守jvm规范,两者也不兼容。jvm运行的是Java字节码(.class文件),Dalvik运行的是其专有的dex(Dalvik Executable)文件。dex文件格式可以减少整体文件尺寸,提高I/o操作的类查找速度。Dalvik虚拟机有自己的 bytecode,并非使用 Java bytecode。

    相关文章

      网友评论

          本文标题:051Android 虚拟机基本概念无标题文章

          本文链接:https://www.haomeiwen.com/subject/hgjgbttx.html