4 ms·
As a curious aside, if you bought an x86 powered smartphone or tablets running Android, it features ARM binary translation given that many apps with native elem
by endorphone 9y ago
As a curious aside, if you bought an x86 powered smartphone or tablets running Android, it features ARM binary translation given that many apps with native elements included ARM native code but no x86. I did my own tests with it to find it achieving close to 100% performance. It's turtles all the way down.
- qubex 9y agoI thought that was achieved by having applications in Java bytecode with a Java virtual machine doing just in time compilation. In fact I thought that was the whole point of the Android ecosystem.
- my123 9y agoThe Android NDK is heavily used - so you end up using native code apps anyway... libhoudini was Intel's dynamic translator for running ARM libs on x86 Android devices.
- qubex 9y agoI never knew. That's quite interesting.
- digi_owl 9y agoIt is fully possible to produce architecture specific APKs, and the Play store will quietly hand over the one relevant to your device. https://www.apkmirror.com/apk/facebook-2/messenger/messenger-124-0-0-43-69-release/ https://www.apkmirror.com/apk/facebook-2/messenger/messenger... Note that there is one for ARM and one for x86.
- bitmapbrother 9y agoThere is no Java bytecode or JVM on any Android device.
- qubex 9y agoCan you explain? I thought Dalvik and ART are Java virtual machines. I'm no expert on Android but I thought this was widely known and accepted.
- pjmlp 9y agoNo, they make use of DEX bytecodes and depending on the specific Android version they are only pure interpreters, JIT, AOT compilers or a mix of everything with PGO. https://source.android.com/devices/tech/dalvik/ https://source.android.com/devices/tech/dalvik/ https://source.android.com/devices/tech/dalvik/jit-compiler https://source.android.com/devices/tech/dalvik/jit-compiler
- qubex 9y agoI know ART features an AOT compiler... So basically they're not JVMs and Java bytecode but rather JVM and bytecode analogues that serve roughly the same purpose (post-Dalvik AOT ART notwithstanding).
- bitmapbrother 9y agoART is register based hybrid JIT/AOT runtime that was designed for memory constrained embedded devices. You cannot run Java applications on an Android device because ART is not compatible with the JVM and vice versa. Additionally, ART processes DEX bytecode and not Java bytecode.