Android应用程序中的DVM和Linux中进程的区别

DVM指的是dalvick的虚拟机,每一个Android应用程序都是在它自己的进程中进行的,都拥有一个独立的dalvick虚拟机的实例,而每一个DVM都是Linux中的一个进程。

Android的DVM:

Dalvick是Google设计的专门为Android平台设计的虚拟机,每一个Dalvick应用都可以作为一个独立的Linux进程。为什么要作为一个独立的应用程序呢?因为独立的进程可以防止进程崩溃的时候导致其他的进程也崩溃。

DVM虚拟机和Java运行环境的区别:

一、Dalvick主要是进行对象的生命周期的管理、堆栈的管理、线程的管理、安全异常的管理以及垃圾回收的管理。

Dalvick负责进程的管理以及线程的调度。

总结来说就是:每一个Android应用程序的底层都对应一个Dalvick虚拟机的实例,每一个实例在Linux中都对应一个进程。

二、不同于Java虚拟机运行中的字节编码,Dalvick虚拟机运行的是自己专有的文件:Dex。

Dex文件可以有效的减少文件的大小,这样就能提高程序的IO速度。还有一种odex文件,这个是为了在运行过程中进一步的提高性能,对于dex文件进行更高的一种改进的

三、所有的Android应用程序底层都对应于一个Linux的线程,因为这样可以更好的依赖于系统的进程调度以及线程管理。

四、有一个特殊的虚拟机进程Zygote,他是虚拟机的孵化器,在系统启动的时候就开始工作,对于虚拟机进行初始化,库的加载,如果系统需要一个虚拟机的实例,Zygote会第一时间将自己复制一份,以最快的速度提供给系统一份数据。

对于一些只读的库,所有的虚拟机实例是和Zygote共享一份内存区域。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值