我开始使用Android Studio开发并来自Java世界。如果您事先知道您的APK将在Android上运行,为什么它需要像Dalvik或ART这样的虚拟机?在Java中,虚拟机的主要目的是使应用程序能够在多个平台上运行,但显然对于APK来说并非如此,因为根据定义,它总是部署在Android上。
答案 0 :(得分:3)
请记住,与大多数桌面环境相比,Android的环境要少得多。例如,如果您正在编写“标准”Windows桌面应用程序,那么您就知道您的内容将部署到使用Intel处理器(或具有相同汇编语言的处理器)的系统。你不知道在Android中;大部分时间它将在ARM(RISC架构)处理器上运行,但它可以很容易地运行在MIPS(也是RISC,但有一些不同的汇编语言)或Atom(CISC架构,)上运行不同的架构和汇编语言)处理器。重点是在Android中,您可以部署到具有不同(可能是截然不同的)架构和汇编语言的多个处理器。
即使对于本机开发,您也必须对几个可能的处理器进行交叉编译(有关详细信息,请参阅this question)。