- Android 16 now supports cloud compilation, a new feature that could speed up new app installs.
- The goal of cloud compilation is to avoid running the dex2oat tool during app installations by offloading compilation to the cloud.
- Dex2oat takes an APK file and generates app artifact files that the Android Runtime loads. Depending on the device and the amount of code to compile, this could take some time.
It looks like the ART (Android Runtime) JIT is playing an increasingly less important role with time.
Friendly reminder that the cloud is just someone else’s computer.
Fondly remember Google’s back and forth rocking with just-in-time and ahead-of-time compilation every other Android version with Dalvik/ART. Guess it’s been a while since they’ve rocked to AOT
Or we could give up on native apps and just use a browser for everything. In a lot of ways I wish we would.
That’s not going to work too well when you’re offline
Oh no? We’ve had browser storage and cached web apps for twenty years now. The technology exists and could be improved, if we stopped forcing everything to be a native app.
I mean, honestly, most “native” apps are webviews displaying cached content. Clearly we can make it happen, it just needs to be more discoverable and have smoother integration.
So you’re just reimplementing the current model but with the extra layer of a browser in between. Installing a PWA is the same as installing a native app, except instead of running it directly you also have to have a browser installed to run it. It’s adding a significant amount of complexity for no good reason. Browsers are huge attack targets.
Next time they’ll “invent” using a compiled language in the first place
You can compile Java and Kotlin to native if you want. That’s not the issue here. Like OP responded to you, it’s not a property of the language but the implementation.
Compiled isn’t a property of a language but it describes the implementation. You can compile Python for example to native code using Cython, but it will need a Python runtime that is not much less work than running the code through the interpreter. There are C interpreters. Further, Java is compiled to native code and is being used in this fashion right now. You can also ship native C, C++, or Go binaries by using the Android Native Development Kit and that’s exactly what most Android games do for performance.
Should Android not have started with Java? Even looking back, it’s hard to say. Java helped Android get started quickly using a language many developers already knew how to use. We might have been discussing something other than Android if that wasn’t the case. I cannot know.