文档章节

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

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

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

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】使用 dalvikvm 命令

整理版本.原文地址: http://bbs.pediy.com/showthread.php?t=184592 步骤 编写 .java 源文件,编译为 .class 使用 dx(在sdk 目录的 build-tools 下面)将 .class 编译为 .dex 文件 将 .dex 文件...

xesam
2015/08/27
0
0
android -------- java虚拟机和Dalvik虚拟机

java虚拟机 虚拟机是一种抽象化的计算机,通过在实际的计算机上仿真模拟各种计算机功能来实现的。Java虚拟机有自己完善的硬体架构,如处理器、堆栈、寄存器等,还具有相应的指令系统。Java虚...

切切歆语
04/29
0
0
[Android 泥水匠] Android基础 之一:浅谈Android架构到HelloWorld案

作者:泥沙砖瓦浆木匠 个人签名:打算起手不凡写出鸿篇巨作的人,往往坚持不了完成第一章节。 如果我的帮到了你,是否乐意捐助一下或请一杯啤酒也好呢?有你支持,干的更好~ 点这参与众筹 我...

泥沙砖瓦浆木匠
2014/12/19
0
1
Android的学习之路一 android的架构

一 Android的架构 二 本地库 来自开源社区的C/C++本地库为Android应用层提供了必需的服务。它们包括: Webkit 一个高速的WEB渲染引擎,这个引擎已经被Safari、Chrome和很多其他的浏览器所使用...

庸夫俗子
2015/03/15
0
0
进入Android Dalvik虚拟机之Dalvik虚拟机的特点

Google于2007年底正式发布了Android SDK,Dalvik虚拟机也第一次进入了人们的视野。它的作者是丹.伯恩斯坦(Dan Bornstein)。Dalvik虚拟机作为Android平台的核心组件,拥有如下几个特点: 体...

柳哥
2015/01/08
0
0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

OSChina 周三乱弹 —— 公司女同事约我

Osc乱弹歌单(2018)请戳(这里) 【今日歌曲】 @莱布妮子:分享水木年华的单曲《蝴蝶花(2002年大提琴版)》 《蝴蝶花(2002年大提琴版)》- 水木年华 手机党少年们想听歌,请使劲儿戳(这里) ...

小小编辑
8分钟前
28
4
Linux环境搭建 | VMware下共享文件夹的实现

在进行程序开发的过程中,我们经常要在主机与虚拟机之间传递文件,比如说,源代码位于虚拟机,而在主机下阅读或修改源代码,这里就需要使用到 「共享文件」 这个机制了。本文介绍了两种共享文...

良许Linux
今天
5
0
JUC锁框架——AQS源码分析

JUC锁介绍 Java的并发框架JUC(java.util.concurrent)中锁是最重要的一个工具。因为锁,才能实现正确的并发访问。而AbstractQueuedSynchronizer(AQS)是一个用来构建锁和同步器的框架,使用A...

长头发-dawn
今天
3
0
docker中安装了RabbitMQ后无法访问其Web管理页面

在官网找了"$ docker run -d --hostname my-rabbit --name some-rabbit -p 8080:15672 rabbitmq:3-management"这条安装命令,在docker上安装了RabbitMQ,,结果输入http://localhost:8080并不......

钟然千落
今天
4
1
spring-cloud | 分布式session共享

写在前面的话 各位小伙伴,你们有福了,这一节不仅教大家怎么实现分布式session的问题,还用kotlin开发,喜欢kotlin的小伙伴是不是很开心! 以前在写Android的时候,就对客户端请求有一定的认...

冯文议
今天
3
0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

返回顶部
顶部