What's the difference between dex2oat and patchoat?
If I build my system image using WITH_DEXPREOPT := true, does that actually precompile the dex code into native code, or does it just optimize the dex code so that later compilation doesn't take as long on the device? I thought WITH_DEXPREOPT was supposed to reduce the amount of compilation needed on first boot, but it appears that system jars still get relocated to /data. When using WITH_DEXPREOPT, is there not actually any compilation occurring during first boot (i.e. just relocating)? It seems like this causes wasted space in both /system (because or WITH_DEXPREOPT) and /data (because of the relocation). Do I have something configured incorrectly?