Android DVM简介

2024-06-04 12:08
文章标签 android 简介 dvm

本文主要是介绍Android DVM简介,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

 Dalvik Virtual Machine 是Android平台的基础。 
     Dalvik和标准Java虚拟机(JVM)之间的首要差别之一,就是Dalvik基于寄存器,而JVM基于栈。选择基于寄存器的方式是因为它对提前优化(ahead-of-time optimization)提供了更好的支持,而这对类似于移动电话这样的受限环境是颇有裨益的。另一份针对基于寄存器虚拟机和基于栈虚拟机更深入的比较分析指出,基于寄存器的虚拟机对于更大的程序来说,在它们编译的时候,花费的时间更短。 

  Dalvik和Java之间的另外一大区别就是运行环境——Dalvik经过优化,允许 在有限的内存中同时运行多个虚拟机的实例,并且每一个 Dalvik应用作为一个独立的Linux进程执行。独立的进程可以防止在虚拟机崩溃的时候所有程序都被关闭。  

Android平台架构图: 


如图所示: 
应用程序包括:主页、联系管理、电话、浏览器、其他; 
应用程序框架包括:Activity管理、窗体管理、内容提供者、视图系统、包管理、电话管理、资源管理、位置管理、通知管理。 
库包括:表面管理、媒体框架、SQLite、OpenGL(3D开发库)、FreeType(字体引擎)、WebKit(网页浏览器引擎核心库)、SGL(2D图形引擎库)、SSL、libc、Android运行时(又包括核心库和Dalvik虚拟机)。 
Linux内核包括:显示驱动、照相机驱动、内存驱动、Binder(IPC)驱动、键盘驱动、Wi-Fi驱动、音频驱动、电源管理。
 
作为Java开发者,最关系的可能是Android运行库(Android Runtime),它包括两部分:核心库和Dalvik虚拟机: 
1.Android包括一组核心库(core libraries),他提供了 Java 编程语言的核心库中大多数可用功能。 

2.每个 Android 应用程序运行在自己的进程上,有自己的 Dalvik 虚拟机实例。 Dalvik这样是为了使一个设备可以有效地运行多个虚拟机。 Dalvik VM 以被优化占用最小内存的Dalvik Executable (.dex)格式执行文件。VM 是基于寄存器的,并通过一个 Java 语言编译器的编译来运行,而这个Java编译器已经被内置的"dx"工具转成.dex 格式(DVM依赖LInux内核)。 

3.Dalvik MicrosoftVM 依赖 Linux 内核获得基本功能,如线程处理和底层内存管理。 

Android亦包含常见移动平台的关键性能,它已拥有一个良好的堆栈,包括蓝牙、EDGE, 3G和WiFi。在UI方面,支持OpenGL ES提供3D和类似于iPhone的界面管理(surface management)。 

这篇关于Android DVM简介的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/1030034

相关文章

PostgreSQL简介及实战应用

《PostgreSQL简介及实战应用》PostgreSQL是一种功能强大的开源关系型数据库管理系统,以其稳定性、高性能、扩展性和复杂查询能力在众多项目中得到广泛应用,本文将从基础概念讲起,逐步深入到高... 目录前言1. PostgreSQL基础1.1 PostgreSQL简介1.2 基础语法1.3 数据库

Python库 Django 的简介、安装、用法入门教程

《Python库Django的简介、安装、用法入门教程》Django是Python最流行的Web框架之一,它帮助开发者快速、高效地构建功能强大的Web应用程序,接下来我们将从简介、安装到用法详解,... 目录一、Django 简介 二、Django 的安装教程 1. 创建虚拟环境2. 安装Django三、创

Android 缓存日志Logcat导出与分析最佳实践

《Android缓存日志Logcat导出与分析最佳实践》本文全面介绍AndroidLogcat缓存日志的导出与分析方法,涵盖按进程、缓冲区类型及日志级别过滤,自动化工具使用,常见问题解决方案和最佳实... 目录android 缓存日志(Logcat)导出与分析全攻略为什么要导出缓存日志?按需过滤导出1. 按

MySQL 索引简介及常见的索引类型有哪些

《MySQL索引简介及常见的索引类型有哪些》MySQL索引是加速数据检索的特殊结构,用于存储列值与位置信息,常见的索引类型包括:主键索引、唯一索引、普通索引、复合索引、全文索引和空间索引等,本文介绍... 目录什么是 mysql 的索引?常见的索引类型有哪些?总结性回答详细解释1. MySQL 索引的概念2

Android Paging 分页加载库使用实践

《AndroidPaging分页加载库使用实践》AndroidPaging库是Jetpack组件的一部分,它提供了一套完整的解决方案来处理大型数据集的分页加载,本文将深入探讨Paging库... 目录前言一、Paging 库概述二、Paging 3 核心组件1. PagingSource2. Pager3.

Android kotlin中 Channel 和 Flow 的区别和选择使用场景分析

《Androidkotlin中Channel和Flow的区别和选择使用场景分析》Kotlin协程中,Flow是冷数据流,按需触发,适合响应式数据处理;Channel是热数据流,持续发送,支持... 目录一、基本概念界定FlowChannel二、核心特性对比数据生产触发条件生产与消费的关系背压处理机制生命周期

Android ClassLoader加载机制详解

《AndroidClassLoader加载机制详解》Android的ClassLoader负责加载.dex文件,基于双亲委派模型,支持热修复和插件化,需注意类冲突、内存泄漏和兼容性问题,本文给大家介... 目录一、ClassLoader概述1.1 类加载的基本概念1.2 android与Java Class

Qt QCustomPlot库简介(最新推荐)

《QtQCustomPlot库简介(最新推荐)》QCustomPlot是一款基于Qt的高性能C++绘图库,专为二维数据可视化设计,它具有轻量级、实时处理百万级数据和多图层支持等特点,适用于科学计算、... 目录核心特性概览核心组件解析1.绘图核心 (QCustomPlot类)2.数据容器 (QCPDataC

Android DataBinding 与 MVVM使用详解

《AndroidDataBinding与MVVM使用详解》本文介绍AndroidDataBinding库,其通过绑定UI组件与数据源实现自动更新,支持双向绑定和逻辑运算,减少模板代码,结合MV... 目录一、DataBinding 核心概念二、配置与基础使用1. 启用 DataBinding 2. 基础布局

Android ViewBinding使用流程

《AndroidViewBinding使用流程》AndroidViewBinding是Jetpack组件,替代findViewById,提供类型安全、空安全和编译时检查,代码简洁且性能优化,相比Da... 目录一、核心概念二、ViewBinding优点三、使用流程1. 启用 ViewBinding (模块级