Android中DVM的运行位置:是在主线程还是进程本身执行?
Android进程中DVM的运行位置说明
- DVM(Dalvik虚拟机)是嵌入在应用进程内部的完整运行环境,并非依附于某一个线程存在。
- 当应用进程被创建时,系统会在该进程中初始化一个DVM实例,进程内所有的Java/Kotlin代码(包括主线程、子线程的代码)都在这个DVM实例上执行。
- 主线程(UI线程)只是进程内众多线程中的一个,它负责处理UI相关操作,但DVM本身是支撑整个进程所有线程代码执行的底层环境,进程的所有线程共享同一个DVM实例的资源(比如堆内存)。
- 简单来说:进程是操作系统层面的执行单元,DVM是进程内部的Java代码执行引擎,所有线程的代码都通过DVM来解释/编译执行,不存在“DVM在主线程执行”的说法,而是进程承载了DVM,DVM为进程内所有线程提供执行环境。
内容的提问来源于stack exchange,提问作者Psk
相关产品推荐
相关产品推荐

