Hi there,
By looking at the
complete process which spans from the java source code to the ELF executable compiled by ART's dex2oat, I could not help to wonder why is the dexer still present in the chain.
The translation from java class files to dex files was done in order for the android device to use a suitable light (dalvik) VM for mobile devices. With ART, the VM is bypassed altogether, so are there still any significant gains from compiling the code to dex files in between?
Please correct me if I am wrong, but if the ELF executable would be created directly from the java .class files [1], this would translate into the definite lift of dex's 65k method limit, which would be great for developers with large applications.
Is this even feasible? Is so, what do you think are the main barriers to it? [2]
Finally, if what I presented is not a out of touch idea, is the AOT compilation from java class files on the project's roadmap?
[2] For example, with the lift of dex's 65k method limit, it would mean that all the previous android versions not capable of compiling directly from java .class files could not be not be able to run the app.