文档章节

Android系统架构、JVM和DalvikVM的区别

北ing
 北ing
发布于 2015/10/19 19:18
字数 679
阅读 70
收藏 0

精选30+云产品,助力企业轻松上云!>>>

一、系统框架
这里写图片描述

1.Anroid大致分为四层结构,五块区域
1)应用程序层(Applications)
所有安装在手机上的应用程序都属于这一层。
2)应用程序框架(Application Framework)
提供大量的API供开发人员使用,Android自带的一些核心应用就是使用这些API完成的。
3)函数库(Libraries)
—Surface Manager:管理对显示子系统的访问,并可以对多个应用程序的2D和3D图层机提供无缝整合
—Media Framework:基于PacketVideo的OpenCORE,支持播放和录制多种流行的音频和视频格式,以及查看静态图片
—SQLite提供数据库的支持
—OpenGL|ES提供3D绘图的支持
—FreeType:位图和向量字体显示
—WebKit:Web浏览器引擎,为Android浏览器提供支持
—SGL:底层的2D图形引擎
—SSL:在Android中通信实现握手
—C/C++(libc)库来为Android系统提供了主要的特性支持
4)运行时(Android Runtime)
由两部分组成:Android核心库集和Dalvik虚拟机。核心库集提供了Java语言核心库所能使用的绝大部分功能,Dalvik虚拟机负责运行Android应用程序。

5)Linux内核
Linux内核提供安全性、内存管理、进程管理、网络协议栈和驱动模型等核心系统服务,Linux内核也是系统硬件和软件叠层之间的抽象层。

二、JVM和DalvikVM的区别

DalvikVM:
Dalvik虚拟机是Google的用于移动设备的Android平台的一个主要部分。虚拟机可运行Java平台应用程序,这些应用程序被转换成紧凑的Dalvik可执行格式(.dex),该格式适合内存和处理器速度受限的系统。
这里写图片描述
这里写图片描述
这里写图片描述
区别:
1.Dalvik并未完全遵守JVM规范,两者也不兼容。
2.JVM虚拟机运行的是字节码,Dalvik运行的是其专有的dex(Dalvik Executable)文件。
3.JVM直接从.class文件或者jar包中加载字节码然后运行,而Dalvik则无法从.class文件或jar包中加载字节码,而是通过DX工具将应用程序所欲的.class文件编译成.dex文件,然后运行.dex文件。
4.Dalvik 基于寄存器,而 JVM 基于栈。基于寄存器的虚拟机对于更大的程序来说,在它们编译的时候,花费的时间更短。
5.Dalvik负责进程隔离和线程管理,每一个Android应用在底层都会对应一个独立的Dalvik虚拟机实例,其代码在虚拟机的解释下得以执行。
这里写图片描述


北ing
粉丝 0
博文 12
码字总数 17332
作品 0
海淀
私信 提问
加载中
请先登录后再评论。
android核心基础(5)_Android)java虚拟机和Dalvik虚拟机的区别

Google于2007年底正式发布了Android SDK, 作为 Android系统的重要特性,Dalvik虚拟机也第一次进入了人们的视野。它对内存的高效使用,和在低速CPU上表现出的高性能,确实令人刮目相看。 依赖...

崔同亮
2013/08/18
552
0
android dalvikvm dvz

http://book.51cto.com/art/201109/291262.htm http://book.51cto.com/art/201109/291263.htm 9.2.1 dalvikvm 当Java程序运行时,都是由一个虚拟机来解释Java的字节码,它将这些字节码翻译成...

尼莫
2012/06/07
120
0
Dalvik VM (DVM) 与Java VM (JVM) 的区别?

Dalvik虚拟机存在于Android系统,JVM是java虚拟机,两者都是虚拟机,本文就对两者进行比较,讲述它们的不同。 Dalvik虚拟机是Google等厂商合作开发的Android移动设备平台的核心组成部分之一。...

osc_kd3623qu
2018/08/09
9
0
01_Android应用开发环境_01_android发展史及系统架构

1.1 Android发展史与现状 Andy Rubin创立22个月后→(2005年)Google收购。 2008 Patrick Brady于Google I/O 演讲“Anatomy & Physiology of an Android”,并提出的 Android HAL 架构图。 ...

口十耳
2015/04/29
27
0
[日更-2019.4.29、30] 关于JVM、Dalvik、ART的基础分析

声明 Android的Framework层及应用层基本是Java代码编写的,Java代码运行避不开就是Java虚拟机; 很好奇的一点就是,想从基本理论上(简单地)分析下移动设备Android的虚拟机Dalvik、ART与传统...

Captain_小馬佩德罗
2019/05/06
5
0

没有更多内容

加载失败,请刷新页面

加载更多

在Python中从字符串转换为布尔值? - Converting from a string to boolean in Python?

问题: Does anyone know how to do convert from a string to a boolean in Python? 有谁知道如何在Python中从字符串转换为布尔值? I found this link . 我找到了此链接 。 But it doesn't......

javail
今天
19
0
中国饭店协会数据表明

记者了解到,中国饭店协会数据表明,2018年全国餐饮收入42716亿元,同比增长9.5%.根据国家统计局数据显示,截至2017年底,限额以上餐饮行业的从业人数达到2232万人,巨大的餐饮市场背后,餐饮行业的...

asd369
今天
35
0
OSChina 周六乱弹 —— 日本的丧尸光天化日之下都开始……

Osc乱弹歌单(2020)请戳(这里) 【今日歌曲】 @薛定谔的兄弟 :分享洛神有语创建的歌单「我喜欢的音乐」: 《風の手枕》- 増田俊郎 手机党少年们想听歌,请使劲儿戳(这里) @码界农民工 :...

小小编辑
今天
55
0
Hacker News 简讯 2020-07-11

更新时间: 2020-07-11 04:01 Investors say agroforestry is climate friendly and also profitable - (mongabay.com) 投资者表示,农林复合林对气候友好,而且也有利可图 得分:86 | 评论:52...

FalconChen
今天
163
0
是否有可能从另一个git存储库中挑选一个提交? - Is it possible to cherry-pick a commit from another git repository?

问题: I'm working with a git repository that needs a commit from another git repository that knows nothing of the first. 我正在使用一个git存储库,需要从另一个不知道第一个存储库......

技术盛宴
昨天
41
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部