Dalvik – это виртуальная машина, которая использовалась с первой версии до Android v5.0.
ART (Android Runtime) – это среда выполнения, которая заменила Dalvik начиная с Android v5.0.
Основное отличие ART от Dalvik – это стратегия компиляции байткода в машинный код.
Dalvik использует JIT-компиляцию (Just-in-time), при которой байткод компилируется во время работы программы.
ART до Android v7.0 использует AOT-компиляцию (Ahead-of-Time), при которой приложение компилируется в машинный код во время установки. В Android v7.0 в ART был добавлен JIT-компилятор в дополнение к AOT. Смешанный подход помог смягчить недостатки AOT-компиляции.