Java虚拟机和Dalvik(android)虚拟机的区别
首先你必须对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更改。
Java虚拟机和Dalvik(android)虚拟机的区别相关推荐
- 【Java 虚拟机原理】动态字节码技术 | Dalvik ART 虚拟机 | Android 字节码打包过程
文章目录 一.动态字节码技术 二.Dalvik & ART 虚拟机 三.Android 字节码打包过程 总结 一.动态字节码技术 动态字节码技术 就是在 运行时 , 动态修改 Class 字节 ...
- Android 虚拟机技术为何至今依旧 “屹立不倒” ?
前言 我从事 Android 也有些年头了,大多时候都在跟项目,写写业务代码,很少花时间去研究关于 Android 开发基础方面的东西,时至今日我却越发明白了底层逻辑和基础知识才是进阶更加高阶 And ...
- Android安全与逆向之Java虚拟机和Dalvik虚拟机的区别
Google于2007年底正式发布了Android SDK, 作为 Android系统的重要特性,Dalvik虚拟机也第一次进入了人们的视野.它对内存的高效使用,和在低速CPU上表现出的高性能,确实令 ...
- (Android)java虚拟机和Dalvik虚拟机的区别
Google于2007年底正式发布了Android SDK, 作为 Android系统的重要特性,Dalvik虚拟机也第一次进入了人们的视野.它对内存的高效使用,和在低速CPU上表现出的高性能,确实令 ...
- android -------- java虚拟机和Dalvik虚拟机
2019独角兽企业重金招聘Python工程师标准>>> java虚拟机 虚拟机是一种抽象化的计算机,通过在实际的计算机上仿真模拟各种计算机功能来实现的.Java虚拟机有自己完善的硬体 ...
- Java虚拟机和Dalvik虚拟机的区别
java虚拟机和Dalvik虚拟机的区别 该文章是本人转载的,觉得写的不错,和大家分享一下 Google于2007年底正式发布了Android SDK, 作为 Android系统的重要特性,Dalvi ...
- java dalvik_Java虚拟机和Dalvik虚拟机的区别
java虚拟机和Dalvik虚拟机的区别: java虚拟机 Dalvik虚拟机 java虚拟机基于栈. 基于栈的机器必须使用指令来载入和操作栈上数据,所需指令更多更多 dalvik虚拟机是基于寄存器的 ...
- dalvik虚拟机与Java区别_05 Android---java虚拟机跟dalvik虚拟机的区别(从01开始点点入门,视频+笔记)...
大家好,我是森森 这节课我简单给大家介绍一下java虚拟机跟安卓系统虚拟机的区别.可能时间太晚了,有点不在状态,也有点紧张,大家见谅. 05java虚拟机跟dalvik虚拟机的区别 这篇文章重点写一写 ...
- JAVA虚拟机、Dalvik虚拟机和ART虚拟机
从Android5.0开始废弃了Dalvik,全面推行ART. Dalvik与ART的区别 (1)在Dalvik下,应用每次运行都需要通过即时编译器(JIT)将字节码转换为机器码,即每次都要编译加运行 ...
- 5分钟了解Android虚拟机Dalvik和ART,让手机告别卡顿!
Android虚拟机 一.Dalvik虚拟机 1.DVM与JVM的主要区别 1)架构不同 2)执行字节码不同 3)DVM的预加载-共享机制 2.DVM的运行时堆 1)Zygote Space 2)Ca ...
最新文章
- GNOME 的新夜灯功能旨在帮助你睡得更好
- 【译】理解JavaScript中的柯里化
- 很好的linux启动说明( bootsect.S、setup.S、head.S)
- 【AI杂谈】从一篇参考文献比正文还长的文章,杂谈深度学习综述
- windows adb shell 乱码
- 概要设计实例_尽可能通用的运维CMDB的设计与实践
- MySQL - 视图
- 吴恩达深度学习 —— 3.11 随机初始化
- 深入kubernetes之Pod——一pod多容器
- go 的基本数据类型
- 二维\三维绘图AutoCAD 2022 for Mac
- 图解MySQL的各种 JOIN,看完不懂来找我!
- Atiitt 软件设计之道 attilax著 1. 总概念 隶属于软件工程。。	2 2. 需求分析	3 3. 设计分类	3 3.1. 按照力度 总体设计架构设计 概要设计 详细设计	3 3.2.
- triu matlab,matlab triu
- 是时候让打字更“快舒”了-小鹤双拼
- 微信支付接口 java服务器,JAVA微信支付接口开发——支付(示例代码)
- Unity资源加载简析(二)AssetsBundle
- 新兴基金经理凯瑟琳·伍德ARKK基金在 2022 年初遭受新的打击
- 导弹气动估算matlab,基于Fluent的导弹气动特性计算
- 拼多多分享好友砍价Java实现_拼多多砍价怎么发到qq?怎么帮好友砍价?