Most such attempts run up against the particular way that a Java-like runtime is used in Android: The max heap size is tiny compared to desktop, nevermind server Java defaults. You have LOTS of instances of the runtime that depend on the Zygote and copy-on-write so as not to eat all of memory. Component lifecycle has to be handled or you will hate life. Inter-component and inter-process communication and cooperation are deeply rooted in the Android architecture. Lots of the Android OS is built in Java, and takes advantage of Android&#x27;s runtime limitations and capabilities. In other words, unless you replace Java with another JVM language, you are implying a different OS, not Android with a &quot;better&quot; language.