x86 on Android, How it Works?
Intel makes x86 on Android ready. There’s starting to be more and more Intel Atom and other x86 based Android devices on the market. Currently most of the apps are only compiled to run native ARM code, which can’t run natively on x86. Intel has solved this problem by adding binary translation technology for its Atom processors. It translates ARM native code on the fly to x86. This sounds very nice, but unfortunately this doesn’t come without sacrificing speed and optimal memory usage. In some cases the app might even crash if it is binary translated.
Is it possible to write native x86 apps on Android?
Yes! Alternative to binary translation is of course compiling native code directly for Intel x86 architecture. This will guarantee fast apps, optimal usage of platform resources and otherwise bug free code will run without crashes.
But isn’t Java native Android?
Often when talking about native code people mean programming with Java using native UI libraries of the device. However this isn’t really native programming, but just using native UI libraries while the code is run by virtual machine. Virtual machine translates the code to machine code and is because of this obviously slower.
Also x86 on Android and ARM on Android has some differences and ARM has something to say about that: http://www.theregister.co.uk/2014/05/02/arm_test_results_attack_intel/
What we did with Smartface App Studio for True Native on x86?
Smartface App Studio implementation is true native implementation. By this we mean that majority of the code is compiled to run directly with a processor of the device. At the same time Smartface App Studio supports the native UI of the platform. This is done by thin layer of code compatible with the UI libraries of the platform. Smartface supports natively both ARM and x86 processors providing you a hassle free way to create apps running optimally on all mobile devices.