Android平台体系结构中的虚拟机与JAVA中的虚拟机有什么不同
发布网友
发布时间:2022-04-28 21:32
我来回答
共2个回答
热心网友
时间:2023-09-16 17:23
Dalvik 和标准Java 虚拟机(JVM)首要差别
Dalvik 基于寄存器,而 JVM 基于栈。基于寄存器的虚拟机对于更大的程序来说,在它们编译的时候,花费的时间更短。
Dalvik 和Java 运行环境的区别
1:Dalvik主要是完成对象生命周期管理,堆栈管理,线程管理,安全和异常管理,以及垃圾回收等等重要功能。
2:Dalvik负责进程隔离和线程管理,每一个Android应用在底层都会对应一个独立的Dalvik虚拟机实例,其代码在虚拟机的解释下得以执行。
3:不同于Java虚拟机运行java字节码,Dalvik虚拟机运行的是其专有的文件格式Dex
4:dex文件格式可以减少整体文件尺寸,提高I/o操作的类查找速度。
5:odex是为了在运行过程中进一步提高性能,对dex文件的进一步优化。
6:所有的Android应用的线程都对应一个Linux线程,虚拟机因而可以更多的依赖操作系统的线程调度和管理机制
7:有一个特殊的虚拟机进程Zygote,他是虚拟机实例的孵化器。它在系统启动的时候就会产生,它会完成虚拟机的初始化,库的加载,预制类库和初始化的操作。如果系统需要一个新的虚拟机实例,它会迅速复制自身,以最快的数据提供给系统。对于一些只读的系统库,所有虚拟机实例都和Zygote共享一块内存区域。
8:Dalvik是由Dan Bornstein编写的,名字来源于他的祖先曾经居住过名叫Dalvík的小渔村,村子位于冰岛。
热心网友
时间:2023-09-16 17:24
华夏博大3G学院,都反映挺好的,那里的老师有这方面的开发经验。
具备着线上的真实应用,就业了之后再付 款。
Android平台体系结构中的虚拟机与JAVA中的虚拟机有什么不同
1:Dalvik主要是完成对象生命周期管理,堆栈管理,线程管理,安全和异常管理,以及垃圾回收等等重要功能。2:Dalvik负责进程隔离和线程管理,每一个Android应用在底层都会对应一个独立的Dalvik虚拟机实例,其代码在虚拟机的解释下得以执行。3:不同于Java虚拟机运行java字节码,Dalvik虚拟机运行的是其专有的文...
安卓虚拟机和java虚拟机有什么不同
安卓虚拟机即dalvik和java虚拟机的区别如下:1.java虚拟机基于栈。 基于栈的机器必须使用指令来载入和操作栈上数据,所需指令更多更多 。而dalvik虚拟机是基于寄存器的:java虚拟机运行的是java字节码。(java类会被编译成一个或多个字节码.class文件,打包到.jar文件中,java虚拟机从相应的.class文件和...
安卓是运行在虚拟机之上么?那么虚拟机与底层linux kernel有什么联系呢...
虚拟机与JAVA虚拟机的概念是一样的,安卓虚拟机就是JAVA虚拟机的改良版,安卓买了JAVA的授权 安卓的系统级是二进制的,运行在linux内核之上,安卓虚拟机在内核中有大量代码,与内核合二为一,充分发挥了linux内核和arm硬件JAVA加速的功能, 所以安卓虚拟机的运行效率很高,安卓的应用软件基本上是运行在虚...
Android类加载器以及与Java类加载器区别
不同的是,Android虚拟机运行的是dex字节码,Java虚拟机运行的class字节码。(dex字节码:是对class文件优化的产物,不同class文件重复的东西只需保留一份。)类加载器不同以及类加载器的类体系结构不同 Android类加载器和Java的类加载器的类体系结构不一样:Android的BootClassLoader和Java的BootStrapClass...
什么是android系统,android的发展以及android的平台架构和特性
一、Android的平台特性 Android平台有如下特性:1. 应用程序框架支持组件的重用与替换。这样我们可以把系统中不喜欢的应用程序删除,安装我们喜欢的应用程序。2. Dalvik虚拟机专门为移动设备进行了优化。Android应用程序将由Java编写、编译的类文件通过DX工具转换成一种后缀名为.dex的文件来执行。Dalvik虚拟机...
Android开发和JAVA开发有什么区别
Android 是在java基础之上的一门语言 Android是用来开发手机APP的 学Android 需要先学java基础语法。下边是网上找的,回答比较全面些。Android和Java的区别:简单地说,一种是操作系统,一种是开发语言。具体来说,Android是一种基于Linux的开放源码操作系统,主要用于便携设备(智能手机,平板电脑)。Java是...
网络安全的虚拟机和java虚拟机是否同一概念,有何异同
Java虚拟机有自己完善的硬体架构,如处理器、堆栈、寄存器等,还具有相应的指令系统。JVM屏蔽了与具体操作系统平台相关的信息,使得Java程序只需生成在Java虚拟机上运行的目标代码(字节码),就可以在多种平台上不加修改地运行。网络安全的有很多种,专用于网络安全的功能,和java的风马牛不相及 ...
我从冯·诺依曼计算机体系,追溯到了JVM,一切原来如此!
Machine也就是Java虚拟机,抛开Java虚拟机前缀Java,虚拟机其实就是在“虚拟(抽象)计算机”,也就是在操作系统之上再次虚拟出一台计算机,来屏蔽不同硬件和操作系统之间的差异(如果说操作系统是用户与物理资源之间的桥梁,那么JVM就是不同硬件和操作系统上的桥梁),JVM目的就是具备通用性,也就是我们常说的Java可以跨平台...
Dalvik 虚拟机和 Sun JVM 在架构和执行方面有什么本质区别
不同的应用在不同的进程空间里运行,当一个虚拟机关闭或意外中止时不会对其它虚拟机造成影响,可以最大程度的保护应用的安全和独立运行。 Zygote是虚拟机实例的孵化器。AndroidRuntime.cpp中ZygoteInit.main()的执行会完成一个分裂,分裂出来的子进程继续初始化Java层的架构,这个分裂出来的进程就是system_server。每当...
安卓系统为什么一定要借助虚拟机来达到不同cpu的通用目的?
1. 通过使用虚拟机,安卓系统能够简化应用程序的开发过程。举例来说,无论安卓操作系统运行在x86还是arm架构之上,只要安卓的大版本保持一致,应用程序的开发体验将是相同的,这极大的减少了开发人员需要考虑的硬件差异问题。2. 针对不同硬件平台的适配,主要挑战在于驱动程序的开发。这一问题是在虚拟机层...