Java虚拟机和Dalvik(android)虚拟机的区别
来源:互联网 发布:u盘查杀软件 编辑:程序博客网 时间:2024/05/21 09:43
首先你必须对java虚拟机中常用的一款有深入的了解,比如Hotspot。
然后你再了解下android系统和Dalvik。
Dalvik 与 传统jvm的差别还是很大的,总结来说,我个人把其归纳为三大类:
(1).传统jvm是基于栈的,而Dalvik基于寄存器的。如果你了解Hotspot,你发现每一个方法对应栈帧,每一条指令都是基于栈的操作,基于栈,那么很多都是进栈和出栈的造作,那么造就了指令很多。基于寄存器就是数据直接存储在寄存器上,然后直接读取数据进行操作,没有数据创建之后的进栈操作和出栈操作。
(2)传统的jvm是执行class文件,而dalvik却是执行dex文件,在android应用打包的时候,实质上是依据dx工具将class文件打包成dex文件(是class文件的压缩),dex文件直接被dalvik加载。
(3).在android系统中,每一个app对应一个dalvik,一个应用,一个虚拟机实例,一个进程(所有android应用的线程都是对应一个linux线程,都运行在自己的沙盒中,不同的应用在不同的进程中运行。每个android dalvik应用程序都被赋予了一个独立的linux PID(app_*))。常量池已被修改为只使用32位的索引,以 简化解释器。dalvik的堆和栈的参数可以通过-Xms和-Xmx更改。
阅读全文
0 0
- (Android)java虚拟机和Dalvik虚拟机的区别
- (Android)java虚拟机和Dalvik虚拟机的区别
- (Android)java虚拟机和Dalvik虚拟机的区别
- (Android)java虚拟机和Dalvik虚拟机的区别
- (Android)java虚拟机和Dalvik虚拟机的区别 .
- (Android)java虚拟机和Dalvik虚拟机的区别
- (Android)java虚拟机和Dalvik虚拟机的区别
- (Android)java虚拟机和Dalvik虚拟机的区别
- Java虚拟机和Dalvik(android)虚拟机的区别
- Dalvik虚拟机探析 java虚拟机和Dalvik虚拟机的区别
- java虚拟机和Dalvik虚拟机的区别
- java虚拟机和Dalvik虚拟机的区别
- java虚拟机和Dalvik虚拟机的区别
- java虚拟机和Dalvik虚拟机的区别
- Dalvik虚拟机和Java虚拟机的区别
- Java虚拟机和Dalvik虚拟机的区别
- java虚拟机和Dalvik虚拟机的区别
- java虚拟机和Dalvik虚拟机的区别
- git创建分支做修改
- sdfsdf
- RPC概念
- vps_使用docker及shadowsocks镜像
- 手把手Maven搭建SpringMVC+Spring+MyBatis框架(超级详细版)
- Java虚拟机和Dalvik(android)虚拟机的区别
- Java ConcurrentModificationException万能解决方案
- QT中的信号与槽
- MP3,MP4,音视频播放
- 正则密码验证,包含数字、字母、特殊符号
- 记录:第一次使用ajax
- Atl 重载 objsafe接口
- git上传本地Intellij idea 项目到git
- Spark-基本概念和简介