- JVM是基于栈的架构(内存),编译过程为
.java
->.class
->.jar
- Dlvik(DVM)是基于寄存器的架构(CPU里面的存储空间,CPU操作数据比内存要快),编译过程为
.java
->.class
->.dex
->.odex
- 一个应用,一个虚拟机实例,一个进程
- 每一个
Android
应用都运行在一个Dalvik
虚拟机实例里,而每一个虚拟机实例都是一个独立的进程空间。每个进程之间可以通信(IPC
,Binder
机制实现)。虚拟机的线程机制,内存分配和管理,Mutex
等等都是依赖底层操作系统而实现的。 - 不同的应用在不同的进程空间里运行,当一个虚拟机关闭或意外中止时不会对其它 虚拟机造成影响,可以最大程度的保护应用的安全和独立运行。
- 每一个
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步