No1:

虚拟机是指通过软件模拟的具有完整硬件系统功能的、运行在一个完全隔离的环境中的完整计算机系统。

No2:

Java虚拟机由如下五个部分组成:一组指令集、一组寄存器、一个栈、一个无用单元收集堆、一个方法区域。

No3:

Java虚拟机中有4种寄存器:

1)pc:Java程序计数器

2)optop:指向操作数栈顶端的指针

3)frame:指向当前执行方法的执行环境的指针

4)vars:指向当前执行方法的局部变量区第一个变量的指针

No4:

Java虚拟机的栈有三个区域:局部变量区、运行环境区、操作数区

No5:

.dex文件格式会把所有的.class文件内容整合到一个文件中。这样,除了减少整体的文件尺寸,I/O操作,也提高了类的查找速度。原来每个类文件中的常量池,在.dex文件中由一个常量池来管理。

No6:

Zygote是一个虚拟机进程,同时也是一个虚拟机实例的孵化器,每当系统要求执行一个Android应用程序,Zygote就会孵化出一个子进程来执行该应用程序。这样做的好处显而易见:Zygote进程是在系统启动时产生的,它会完成虚拟机的初始化,库的加载,预置类库的加载和初始化等操作,而在系统需要一个新的虚拟机实例时,Zygote通过复制自身,最快速地提供一个系统。另外,对于一些只读的系统库,所有虚拟机实例都和Zygote共享一块共享区域,这样可以大大节省内存开销。

No7:

系统尝试预校验.dex文件中的所有类,从而降低class的负担,从而可以使用一系列的优化来提升运行性能。这些都是通过dexopt命令来实现的。

No8:

Dalvik VM的实现包括三个独立的解释内核:快速、可移植、调试。

快速解释器是为当前平台优化的,可能包括手动优化的汇编文件;相对的,可移植解释器是用C语言写的,可在广泛的平台上使用;调试解释器是可移植解释器的变种,包括了支持程序分析和单步。

No9:

No10:

No11:

Dalvik进程管理是依赖于Linux的进程体系结构的,如要为应用程序创建一个进程,它会使用Linux的fork机制来复制一个进程(复制进程往往比创建进程效率更高)。

Zygote是一个虚拟机进程,同事也是一个虚拟机实例的孵化器,通过init进程启动。首先会孵化出System_Server(Android绝大多系统服务的守护进程,它会监听socket等待请求命令,当有一个应用程序启动时,就会向它发出请求,Zygote就会孵化出一个新的应用程序进程)。每当系统要求执行一个Android应用程序时,Zygote就会运用Linux的fork机制产生一个子进程来执行该应用程序。

No12:

Android的初始化流程

No13:

Android中进程总结:

1)系统启动时init进程会创建Zygote进程,Zygote进程负责后续Android应用程序框架层的其他进程的创建和启动工作

2)Zygote进程会首先创建一个SystemServer进程,SystemServer进程负责启动系统的关键服务,如包管理服务PackageManagerService和应用程序组件管理服务ActivityManagerService

3)当我们需要启动一个Android应用程序时,ActivityManagerService会通过Socket进程间通信机制,通知Zygote进程为这个应用程序创建一个新的进程

No14:

Zygote进程是在系统启动时产生的,它会完成虚拟机的初始化、库的加载、预置类库的加载和初始化等操作,而在系统需要一个新的虚拟机实例时。Zygote通过复制自身,最快速的提供个系统。另外,对于一些只读的系统库,所有虚拟机实例都和Zygote共享一块内存区域,大大节省了内存开销。

当Zygote进程在使用Linux的fork机制时有如下三种不同方式:

1)fork():孕育一个普通的进程,该进程属于Zygote进程

2)forkAndSpcecialize():孕育一个特殊的进程,该进程不再是Zygote进程

3)forkSystemServer():孕育一个系统服务进程

转载于:https://www.cnblogs.com/anni-qianqian/p/7661894.html

《Android虚拟机》----虚拟机概述相关推荐

  1. Android逆向基础----Android Dalvik虚拟机

    Android Dalvik虚拟机的特点: l  体积小,占用内存空间小. l  专有DEX可执行文件. l  常量池采用32位索引值,寻址类方法名,字段名,常量更快. l  基于寄存器架构,并拥有一 ...

  2. android -------- java虚拟机和Dalvik虚拟机

    2019独角兽企业重金招聘Python工程师标准>>> java虚拟机 虚拟机是一种抽象化的计算机,通过在实际的计算机上仿真模拟各种计算机功能来实现的.Java虚拟机有自己完善的硬体 ...

  3. virtualbox android分辨率,VirtualBox 修改Android x86虚拟机的分辨率

    VirtualBox 修改Android x86虚拟机的分辨率 首先说明一下,本人使用的是Windows下的VirtualBox,android x86使用的是9.0-r2版本一.查看virtualb ...

  4. Android在虚拟机和安卓机上运行不了

    这个Android是虚拟机运行后总是显示:Unfortunately XXX has stopped和Android在安卓机上总会闪退应该怎么解决.今天跟着小编来解决吧!让你学习不在烦恼 下面这个是在 ...

  5. Android Studio虚拟机卸载步骤(特殊)

    Android Studio虚拟机卸载步骤 在网上查了许多卸载多余虚拟机的博客,通常按照上述步骤即可卸载虚拟机,但有时只删除了配置文件,真正的数据并未清除,故而出此文章. 首先打开Android St ...

  6. 深入理解Android Java虚拟机ART相关及勘误

    公众号: 神农和朋友们的杂文集 目录 本书的简单介绍 本书各章的难度评估 深入学习有什么好处? 本书勘误表 P14 P21 本书的简单介绍 <深入理解Android Java虚拟机ART> ...

  7. android dalvik虚拟机的作用,IT之家学院:认识Android中的Dalvik与ART虚拟机

    又是一年高考时啊,在文章开始之前,IT之家先祝各位高考考生金榜题名~ 每到这个时候,小编就会想起自己的高三时光和高考经历,那段时光真是让人难忘.提起高三生活,可能很多同学都会想到桌子上堆得厚厚的书,黑 ...

  8. Android安卓虚拟机安装部署及测试举例

    Android安卓虚拟机安装部署及测试举例 一. 简介 二. 安装准备 2.1 JDK下载 2.2 工具包下载 三.安装部署 3.1 JDK安装与部署 3.2 Android部署 四. 测试举例 一. ...

  9. 安卓系统怎么安装软件_VMware安装Android x86虚拟机,实现在PC电脑上运行安卓系统...

    在日常的使用中,有时需要在PC机上模拟安装运行安卓系统,如果你的电脑中安装有vmware或者VirtualBox虚拟机.安装Android x86虚拟机是一个不错的选择.可以在PC电脑中模拟出一个安卓 ...

  10. 【SA8295P 源码分析】13 - Android GVM 虚拟机 QUPv3 UART / SPI / I2C功能配置及透传配置

    [SA8295P 源码分析]13 - Android GVM 虚拟机 QUPv3 UART / SPI / I2C功能配置及透传配置 一.QUP v3 介绍 二.QUP v3 UART 功能配置 2. ...

最新文章

  1. 首个最全的MongoDB 3.6 全览
  2. 2008年5月网络管理员考试上午试卷参考答案
  3. 报名本科学习了,又报考了研究生考试了!!
  4. 3D数学基础:图形与游戏开发---随笔一
  5. 中学校园网建设实践与思考
  6. 分贝(BD)的含义以及关系(有助于深刻理解)
  7. iphone手机备忘录迁移_如何在iPhone和iPad上使用语音备忘录
  8. Opencv和C++实现canny边缘检测
  9. 常用排序算法(八)桶排序
  10. 修改Sql Server 2000数据库名称
  11. git不能上传空目录和设备文件
  12. spring-aop源码分析
  13. linux系统之上搭建maven 之nexus服务篇
  14. 短视频 SDK 架构设计实践
  15. python学生姓名添加删除_python-函数-实现学生管理系统,完成对学员的增,删,改,查和退出学生管理系统。...
  16. ARM Cortex-M3 学习笔记(3)
  17. 项目经理人才培养专题︱优秀项目经理能力建设(一)
  18. cpar文件的导入导出及注意事项
  19. Greedy is Good
  20. TI 评级报告 | RAI Finance:B,展望正面

热门文章

  1. mysql delimiter 作用
  2. 矩阵乘法和快速幂的一些优化和剪枝
  3. Go 从入门到精通(三)字符串,时间,流程控制,函数
  4. Android短信发送流程之多收件人发送(原)
  5. CMU 11642 Search Engines - 大纲梳理
  6. BlockChain- 以太坊架构
  7. JZOJ 4910. 【NOIP2017模拟12.3】子串
  8. 试用去水印_教你一键视频去水印,支持抖音、快手、小红书、哔哩哔哩等几十个平台...
  9. NOIP信息奥赛--1995“同创杯”初中复赛题题解(三)
  10. vb6 打印选项对话框_办公必备技能,Word打印问题及解决方案全在这,轻松解决打印难题...