博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Dalvik虚拟机工作原理介绍
阅读量:7063 次
发布时间:2019-06-28

本文共 621 字,大约阅读时间需要 2 分钟。

hot3.png

Dalvik虚拟机并没有使用目前流行的虚拟机技术,如JIT,但是根据Google的报告,这个功能的缺失并没有令Dalvik虚拟机在性能上有所损失。我们也同时相信,Dalvik虚拟机的性能还有进一步提高的空间。

根据 Google的测算,64M的RAM已经能够令系统正常运转了。其中24M被用于底层系统的初始化和启动,另外20M被用于高层启动高层服务。当然,随着系统服务的增多和应用功能的扩展,其所消耗的内存也势必越来越大,归纳起来,Dalvik虚拟机有如下几个主要特征:

DEX是Dalvik虚拟机专用的文件格式,而为什么弃用已有的字节码文件(CLASS文件)而采用新的格式呢? 一个应用中会定义很多类。编译完成后即会有很多相应的CLASS文件,CLASS文件间会有不少冗余的信息;

而DEX文件格式会把所有的CLASS文件内容整合到一个文件中。这样,除了减少整体的文件尺寸,I/O操作,也提高了类的查找速度。 原来每个类文件中的常量池,在DEX文件中由一个常量池来管理,具体方式如下图:

增加了新的操作码的支持文件结构尽量简洁,使用等长的指令,借以提高解析速度 尽量扩大只读结构的大小,借以提高跨进程的数据共享如何生成DEX文件呢?Android系统和Dalvik虚拟机提供了工具(DX),在把Java源代码编译成CLASS文件后,使用DX工具。

转载于:https://my.oschina.net/yingkui/blog/751615

你可能感兴趣的文章
TensorFlow安装(Ubuntu18.04+Anaconda3+CUDA9.0+cuDNN7.1+TensorFlow1.8.0+Pycharm)
查看>>
会员管理系统全部源代码(C#+EF+SQLite+Winforms实现)
查看>>
查看IIS哪个应用程序池占用CPU过高
查看>>
引起Silverlight白屏的原因
查看>>
算法1--
查看>>
关于“华为”的大数据分析
查看>>
Proguard随笔
查看>>
BUG:ie8不支持indexOf()
查看>>
vue.js入门
查看>>
ORB-SLAM2学习3 MapPoint.h Map.h
查看>>
推荐的 MongoDB 安装文档
查看>>
ubuntu cron设置和开启日志
查看>>
在Android中支持表情
查看>>
js制作圆角按钮(兼容谷歌,ie7,ie8)
查看>>
细说websocket - php篇
查看>>
Ajax请求与浏览器缓存
查看>>
获取页面所有参数
查看>>
NServiceBus VS MassTransit 从 stackoverflow.com 翻译而来,希望对这两个技术比较关心的同学有帮助...
查看>>
阿里云OSS图片格式错误导致跳出新页面链接问题
查看>>
常用函数
查看>>