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

相关文章

Android 实现一个隐私弹窗功能

《Android实现一个隐私弹窗功能》:本文主要介绍Android实现一个隐私弹窗功能,本文通过实例代码给大家介绍的非常详细,感兴趣的朋友一起看看吧... 效果图如下:1. 设置同意、退出、点击用户协议、点击隐私协议的函数参数2. 《用户协议》、《隐私政策》设置成可点击的,且颜色要区分出来res/l

Android实现一键录屏功能(附源码)

《Android实现一键录屏功能(附源码)》在Android5.0及以上版本,系统提供了MediaProjectionAPI,允许应用在用户授权下录制屏幕内容并输出到视频文件,所以本文将基于此实现一个... 目录一、项目介绍二、相关技术与原理三、系统权限与用户授权四、项目架构与流程五、环境配置与依赖六、完整

Android 12解决push framework.jar无法开机的方法小结

《Android12解决pushframework.jar无法开机的方法小结》:本文主要介绍在Android12中解决pushframework.jar无法开机的方法,包括编译指令、框架层和s... 目录1. android 编译指令1.1 framework层的编译指令1.2 替换framework.ja

Android开发环境配置避坑指南

《Android开发环境配置避坑指南》本文主要介绍了Android开发环境配置过程中遇到的问题及解决方案,包括VPN注意事项、工具版本统一、Gerrit邮箱配置、Git拉取和提交代码、MergevsR... 目录网络环境:VPN 注意事项工具版本统一:android Studio & JDKGerrit的邮

Android实现定时任务的几种方式汇总(附源码)

《Android实现定时任务的几种方式汇总(附源码)》在Android应用中,定时任务(ScheduledTask)的需求几乎无处不在:从定时刷新数据、定时备份、定时推送通知,到夜间静默下载、循环执行... 目录一、项目介绍1. 背景与意义二、相关基础知识与系统约束三、方案一:Handler.postDel

Android使用ImageView.ScaleType实现图片的缩放与裁剪功能

《Android使用ImageView.ScaleType实现图片的缩放与裁剪功能》ImageView是最常用的控件之一,它用于展示各种类型的图片,为了能够根据需求调整图片的显示效果,Android提... 目录什么是 ImageView.ScaleType?FIT_XYFIT_STARTFIT_CENTE

Android实现在线预览office文档的示例详解

《Android实现在线预览office文档的示例详解》在移动端展示在线Office文档(如Word、Excel、PPT)是一项常见需求,这篇文章为大家重点介绍了两种方案的实现方法,希望对大家有一定的... 目录一、项目概述二、相关技术知识三、实现思路3.1 方案一:WebView + Office Onl

Android实现两台手机屏幕共享和远程控制功能

《Android实现两台手机屏幕共享和远程控制功能》在远程协助、在线教学、技术支持等多种场景下,实时获得另一部移动设备的屏幕画面,并对其进行操作,具有极高的应用价值,本项目旨在实现两台Android手... 目录一、项目概述二、相关知识2.1 MediaProjection API2.2 Socket 网络

Android实现悬浮按钮功能

《Android实现悬浮按钮功能》在很多场景中,我们希望在应用或系统任意界面上都能看到一个小的“悬浮按钮”(FloatingButton),用来快速启动工具、展示未读信息或快捷操作,所以本文给大家介绍... 目录一、项目概述二、相关技术知识三、实现思路四、整合代码4.1 Java 代码(MainActivi

Android Mainline基础简介

《AndroidMainline基础简介》AndroidMainline是通过模块化更新Android核心组件的框架,可能提高安全性,本文给大家介绍AndroidMainline基础简介,感兴趣的朋... 目录关键要点什么是 android Mainline?Android Mainline 的工作原理关键