I was going to look into that as well
D8 and AAPT2 both allow incremental compilation, but I’m not sure how much of it “just works” for either tool.
I also just saw that as of Android Studio 3.4 (current is 3.5) R8 is the default dexer. I didn’t realize that it was considered stable yet. R8 is a superset of D8 - it runs D8 for dexing and does some ProGuard-style optimizations as well. I’ll do some research to see how easy the transition is from running D8 directly to instead running R8.