Android DalivkVM与JVM的比较
JVM 与 DalivkVM的区别
Android 为什么还有搞一个Dalivk虚拟机,不是已经就有Java虚拟机了吗,为什么还要专门搞一个Dalivk虚拟机呢?
答:
1.以前Java是Sun公司的,后来成为Oracle公司的了,有版权问题,不能使用JVM;
2.Java虚拟机在移动设备上,运行效率低,如果运行效率不低,J2ME早火了;
JVM与DalivkVM的比较
JVM:将很多.java文件编译成.class文件,—-> 然后将很多.class文件打包成.jar文件;
DalivkVM:将很多.java文件编译成.class文件,—-> 然后将很多.class文件处理成.dex文件;
区别一:java虚拟机有个特点只认识.class文件,DalivkVM只认识.dex文件;
区别二:java虚拟机的.jar文件里面有很多的.class文件,而DalivkVM中的.dex文件 就只有一个文件,不在是多个文件的概念了;
区别三:JVM与DalivkVM再数据存储方面的比较:
java虚拟机运行时数据是存储在推/栈中的,注意:堆栈是存储区域是内存;
DalivkVM运行时数据是存储在寄存器的,注意:寄存器是在CPU上面的临时存储区域;
总结:CPU在运行的时候是用自己寄存器的快,还是去内存拿去快,当然是寄存器的快,所有性能就快起来了。
区别四:据我了解,Google 为了DalivkVM的性能提升,还做了一些列的优化,例如:对常量池的优化,.dex文件与.jar文件区别非常大,.dex文件做了一些列的公共抽取等等。
谢谢大家的观看,更多精彩技术博客,会不断的更新,请大家访问,
刘德利CSDN博客, http://blog.csdn.net/u011967006
Android DalivkVM与JVM的比较的更多相关文章
- Android Dalvik和JVM的区别
JVM运行的Java字节码,它从.class文件或Jar包中加载字节码然后执行: Dalvik 运行的是 dex 文件(Dalvik Executable),生成APK时,Dx工具把所有.class文 ...
- Android Studio 解决方法No JVM installation found. Please install a 64-bit JDK.
————————— Error launching Android Studio ————————— No JVM installation found. Please install a 64-bi ...
- Android常用库
原文链接:http://www.jianshu.com/p/19368c2cdcaf 系统框架 1. 网络请求 Android Async HTTP Android异步HTTP库 AndroidAsy ...
- Android性能优化典范第一季
2015年伊始,Google发布了关于Android性能优化典范的专题,一共16个短视频,每个3-5分钟,帮助开发者创建更快更优秀的Android App.课程专题不仅仅介绍了Android系统中有关 ...
- 理解Android虚拟机体系结构
1 什么是Dalvik虚拟机 Dalvik是Google公司自己设计用于Android平台的Java虚拟机,它是Android平台的重要组成部分,支持dex格式(Dalvik Executable)的 ...
- [Android Pro] Android性能优化典范第一季
reference to : http://www.cnblogs.com/hanyonglu/p/4244035.html#undefined 2015年伊始,Google发布了关于Android性 ...
- Dalvik VM (DVM) 与Java VM (JVM)之间有哪些区别?
Dalvik虚拟机存在于Android系统,JVM是java虚拟机,两者都是虚拟机,本文就对两者进行比较,讲述它们的不同. Dalvik虚拟机是Google等厂商合作开发的Android移动设备平台的 ...
- Android 核心分析 之五基本空间划分
基本空间划分 Google给了我们一张系统架构图,在这张图上我们可以看到Android的大体框架组成. 11.jpg (175.6 KB, 下载次数: 0) 下载附 ...
- 【转】No JVM could be found on your system解决方法
原文网址:http://my.oschina.net/liusicong/blog/324964 在安装android studio时,报错: Error launching android Stud ...
随机推荐
- Spring Boot AOP
AOP为Aspect Oriented Programming的缩写,意为:面向切面编程,通过预编译方式和运行期动态代理实现程序功能的统一维护的一种技术.AOP是Spring框架中的一个重要内容,它通 ...
- SVN的基本操作
右键SVN Commit 提交成功了,我们把SVN的服务器端刷新一下 所有的操作如果只是删除本地的文件都不会影响服务器端的文件,除非右键SVN Commit删除文件或者是新增文件才会对服务器端的仓库里 ...
- Python sum() 函数
Python sum() 函数 Python 内置函数 描述 sum() 方法对系列进行求和计算. 语法 以下是 sum() 方法的语法: sum(iterable[, start]) 参数 ite ...
- C++ volatile
volatile的位置与const相同——都是作为类型的附加修饰符 使用volatile的主要目的是提示编译器该对象的值可能在编辑器未监测的情况下被改变,因此编译器不能武断地对引用这些对象的代码作优化 ...
- anaconda+theano+keras手写字符识别新版
标题介绍运行环境了win7 看网上好多keras识别minist 但是一般由于版本问题,无法直接用,,,这里还要特别感谢keras中文文档作者(三当家SCP).教程整的非常好.还有就是最好你在安装an ...
- python的多线程和守护线程
1.创建一个多线程 import threading import time ''' def threading_func(num): print("running on number:%s ...
- 绑定服务-----------binderService TimerTask的使用
绑定服务 服务中通过定义Binder对象的子类让这个子类成为桥梁 在onBind()中返回子类对象 这样就可以在activity中调用这个子类的方法 在Activity中通过ServiceConn ...
- java代码分析及分析工具
一个项目从搭建开始,开发的初期往往思路比较清晰,代码也比较清晰.随着时间的推移,业务越来越复杂.代码也就面临着耦合,冗余,甚至杂乱,到最后谁都不敢碰. 作为一个互联网电子商务网站的业务支撑系统,业务复 ...
- .net 4.0的Lazy<T>方法,反射实现延迟加载。
//自己山寨.public class YaLazy<T> { private bool _isValueCreated = false; public bool IsValueCreat ...
- POJ 1135.Domino Effect Dijkastra算法
Domino Effect Time Limit: 1000MS Memory Limit: 65536K Total Submissions: 10325 Accepted: 2560 De ...