我想问你是否正确理解了编译过程。
将 Android 应用程序导出到 .apk 文件后,我们会收到字节码(.apk)。
当我们想在 Android 设备上启动我们的应用程序时:
达尔维克:
字节码 (.apk) -> Dalvik VM JIT 编译 -> 编译原生代码 -> 程序执行(整个程序分配在内存中)
每次我们启动应用程序时都会执行这个 Dalvik JIT 编译。
艺术:
安装:
字节码 (.apk) -> ART VM AOT 编译 -> 编译的本机代码
应用启动:
本机代码 -> 执行(只有部分程序分配内存)
AOT 编译仅在应用安装后进行一次。