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

一、系统框架

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虚拟机实例,其代码在虚拟机的解释下得以执行。

版权声明:本文为博主原创文章,未经博主允许不得转载。

时间: 2024-08-03 21:35:37

Android系统架构、JVM和DalvikVM的区别的相关文章

iOS vs Android 系统架构

iOS是基于UNIX内核,Android是基于Linux内核,iOS和android作为两款优秀的手机操作系统,他们有共性有区别. iOS的系统架构 分为四个层次: 核心操作系统层(Core OS layer) 核心服务层(Core Services layer) 媒体层(Media layer) 可触摸层(Cocoa Touch layer) 如下如所示: iOS系统架构解析: 1.Core OS是位于iOS系统架构最下面的一层是核心操作系统层,它包括内存管理.文件系统.电源管理以及一些其他的

Android系统架构的简单描述

架构图如下: 1)英文版: 2)中文版: 由图可知:Android 系统架构从下到上分为 Linux内核层.中间件. 应用程序框架层和应用程序层. 1.Linux kernel 负责硬件的驱动程序.网络.电源.系统安全以及内存管理等功能. 2.中间件:核心库和运行时(libraries & Android runtime) 1)核心库 即c/c++函数库部分,大多数都是开放源代码的函数库,例如webkit(引擎),该函数库负责 android网页浏览器的运行,例如 标准的 c 函数库libc.o

【Android系统】Android系统架构简介

概述 Android系统架构如下图: 从上往下一共是四层: 应用程序层.应用程序框架层.函数库与Android运行时层.Linux内核层. 下面分别介绍各层: 分层介绍 应用程序层 包含系列的Android核心应用程序,大部分的Android应用也属于这一层,如日历.闹钟.浏览器等.这一层属于用户. 应用程序框架层 这一层就是普通开发者需掌握的层,我们使用框架里的各个模块来开发应用,这些模块和各种服务都可以复用.理解了这一层,开发者就能更快更好的开发应用.下面介绍一下各个模块: 序号 模块名 用

4412开发板Android系统架构

本文转自迅为开发板手册:http://www.topeetboard.com 1. 架构图直观 下面这张图展示了Android系统的主要组成部分: 可以很明显看出,Android系统架构由5部 分组成,分别是:Linux Kernel.Android Runtime.Libraries.Application Framework.Applications.第二部分将详细介绍这5个部分. 2.架构详解 现在我们拿起手术刀来剖析各个部分.其实这部分SDK文档已经帮我们做得很好了,我们要做的就是拿来主

Android系统架构概述

目录: 1.Android系统架构 2.Android类库 3.四大组件 ----------------------------------------------------------------------- 1.Android系统架构 从架构图看出架构分为五个部分,由下往上依次为: Linux Kernel:Android基于Linux提供核心系统服务,例如:安全.内存管理.进程管理.网络堆栈.驱动模型.Linux Kernel也作为硬件和软件之间的抽象层,它隐藏具体g硬件细节而为上层

iOS和android系统架构对比

iOS和android系统架构对比 iOS是基于UNIX的,直接与底层硬件通信.系统底层.应用框架.应用软件都是采用C/C++或者Objective-C写成的,所以有很高的运行效率. android是基于Linux内核设计,在Linux内核上运行一个Java虚拟机,虚拟机再运行软件.就好似在一个系统上又套了一个系统,以此内存消耗大,运行效率的.

Android技术19:Android系统架构

Android系统架构是学习Android最基本的知识点,经常在技术面试过程中涉及到有关问题,接下来对Android系统架构进行总结. Android官方文档提供资料显示:Android系统分为4个层次,从低到高依次为Linux kernel(Linux内核层),Libraries和Android运行时Runtime,Android Framework,Applications. 1.Applications应用层 该层主要是运行在Andorid系统上的应用程序,如Home,SMS,Contac

Google工程师解析Android系统架构

导读:Sans Serif是Google的一位工程师,近日发布了一篇博文非常清楚的描述了Android系统架构,中国移动通信研究院院长黄晓庆在新浪微博上推荐了该文,并认为文中对Android的介绍很好,如下是CSDN对文章的简单编译: Andriod是什么? 首先,就像Android开源和兼容性技术负责人Dan Morrill在Android开发手册兼容性部分所解释的,"Android并不是传统的Linux风格的一个规范或分发版本,也不是一系列可重用的组件集成,Android是一个用于连接设备的

Android系统架构和平台优劣

(图片来源于网络) Android系统架构采用了分层架构的思想,如上图所示.从上往下一共包括四层: 1.应用程序层 该层提供一些核心应用程序包,例如电子邮件.短信.日历.地图.浏览器和联系人管理等.同时,开发者可以利用java语言设计和编写属于自己的应用程序,而这些程序与那些核心应用程序彼此平等.友好共处. 2.应用框架层 该层是Android应用开发的基础,开发人员大部分情况是在和他打交道.应用程序框架层包括活动管理器.窗口管理器.内容提供者.视图系统.包管理器.电话管理器.资源管理器.位置管