As I mentioned in my last blog post about my CodeRage product address, it is technically possible to run Delphi Android applications on Intel devices. For the conference, Jim McKeeth had an Android Intel device he used, but I don't have one at hand. It was good someone suggested me to look into this blog post by Magno Lima, magnumlabs.wordpress.com/2015/10/09/android-using-bluestacks-as-emulator-delphi/, focused on using Bluestacks Android Intel emulator. This emulator (unlike others) runs a full Android and it does support libHoudini, the emulation layer for ARM binaries. So armed with a little time today I installed Bluestacks, fiddled a little with the
adb
tool to make it visible to the Android SDK (and RAD Studio), and started some experiments. If you take a plan FireMonkey application and deploy it, this is what you get:
This happens because FireMonkey, by default, injects platform test code into the application. Originally an ARM binary would just crash on Intel, so better show an error message than an exception. You can read about this at docwiki.embarcadero.com/RADStudio/XE8/en/Running_Your_Android_Application_on_an_Android_Device (and the case is similar to the Amazon table one). So what you have to do in practice (and Magno explains very well), you have to remove the x86 check by removing the library from your project in the deployment options:
In the background you can also see the Bluestacks target (with a rather random name) in the Project pane of RAD Studio. Now run the application again, and it should work:
Of course, you can run also some fairly more complex applications, like the one below (in this case notice the issue with the title bar, explained again by Magno at magnumlabs.wordpress.com/2015/10/10/delphiandroid-misalignment-status-bar-on-intel-based-devices/ -- along with a workaround). Something to work on for our dev team. Anyway, this is the output of the actual demo:
I ended up with some "fire" apps on Bluestacks... but again, the same should work on a physical Android Intel device, with a recent version of Android (Lollipop preferred) equipped with libHoudini: