Blog post "Running Delphi Applications on Android Intel" at http://blog.marcocantu.com/blog/2015-october-running-android-intel.html

Blog post "Running Delphi Applications on Android Intel" at http://blog.marcocantu.com/blog/2015-october-running-android-intel.html
http://blog.marcocantu.com/blog/2015-october-running-android-intel.html

Comments

  1. I tried using BlueStacks some Delphi versions ago but could not get it to work properly - but will definitely have a look again!

    ReplyDelete
  2. Marco, its ok with this kind of hack to run Delphi app, BUT
    when the TRUE Intel x86 support on Android will follow?
    The roadmap was talking us about 2015 :(

    ReplyDelete
  3. Stefan Glienke I also tried it last year... and uninstalled immediately. Seems much better now.

    Sergionn Rad "True" can depend on the point of view. You'd say JavaScript and Java apps don't "truly" support Intel Android? I know you'd want a native compiler, and this is technically doable for Delphi. But we might decide for a "less ideal" support, in exchange for another platform that is more important.

    -Marco

    ReplyDelete
  4. Sergionn Rad It is not a hack, just the translation layer like Astoria Bridge for Windows Phone. What if we are not going to have native compiler for Android x86? Question is how to supply libhoudini to devices where it is not installed. If it could be deployed right along with applications it would be a very plausible solution.

    ReplyDelete
  5. Ilya S you took me for someone else - I know what Binary Translator aka “libhoudini” is :)
    By "hack" term I meaned "the removal from the res package x86 warning lib".

    Make fmx apps itself is a disastrous performance solution (especially in part of working with hardware resources such as cameras and ect), but run them through a binary translator - it's some kind of total perfomance killing for result app :(

    ReplyDelete
  6. Marco Cantù i got it - android x86 support still far away :(

    ReplyDelete
  7. Sergionn Rad Have you tried your camera app on x86 device to see how it works via libhoudini?
    I agree that libnative.x86 should check for libhoudini itself to remove the hassle of changing default deployment settings.

    ReplyDelete
  8. Sergionn Rad I am waiting for Linux support since ages - so lets put priority on that. But still - I agree with you - real support would be much nicer.
    But if we would be able to deploy the lib with the app that would be ok for me.

    ReplyDelete
  9. Ilya S didn't try via libhoudini, but what the reason do that if in arm version it works so extremely slow :(

    ReplyDelete
  10. Roland Kossow i do not think the linux version is the reason for android x86 codegeneration delay in near future, but I'd better be wrong!

    ReplyDelete
  11. Sergionn Rad well, your point taken if it's true.

    ReplyDelete
  12. libHoudini ships with all(?) Android 4.4+ devices. Native X86 Android will mean that you would be deploying 2 .SO files (doubling the APK size). Just like IOS is forcing the IOS32+IOS64 universal binary doubled IPA size of even XCode compiled apps. Tradeoffs everywhere. Using Delphi is a tradeoff. Using Android Studio is a tradeoff.

    Pick the pipeline that works best for you. If Embarcadero wants to sell more subs they will continue to optimize the pipeline to maximize rapid application development.

    ReplyDelete
  13. I have tried this on GenyMotion, but got to the "Application does not support this device". I will try again, but can you give some details if houdini was installed? What Android version?

    Thanks!

    ReplyDelete
  14. Stiaan Pretorius have a look if /system/lib/arm/check.xml is there.

    ReplyDelete
  15. Hi

    What is suppose to be in the Check.XML file? What is the purpose of  that file?

    By the way, I have again tried with GenyMotion and the only thing that happens the Splashscreens show and then the app quits.

    Any ideas?

    Regards
    Stiaan

    ReplyDelete
  16. Ilya S Astoria bridge is an API mapping layer (you call an API, call is forwarded to a native one), native code is executed on ARM chip. libHoudini is a binary code translation layer, API calls are compatible. So they are a bit different from the technical implementation, but they are both "compatibility" layers.

    ReplyDelete
  17. Sergionn Rad Native x86 Android Intel is still under evaluation, but if the market share remains small and libHoudini proves to be a reasonable solution, there are other platforms that we think have higher priorities. FireMonkey apps and Delphi code on Android is not slower than many other solutions, depends on what you do and how you use it.

    ReplyDelete
  18. Stiaan Pretorius Not sure about genymotion (Android Intel ships with libHoudini but not all emulators have it). However the message "Application does not support this device" is just an error message of your application, if you read my blog post I show how to disable it. It is always triggered with x86 is detected, by default. If as you say you get stuck on splash screen, it is likely they don't have a ARM layer. Same is true for Microsoft Android emulator and others.

    ReplyDelete
  19. Stiaan Pretorius /system/lib/arm/check.xml is a exclusion file for libhoudini if it is presented on a device/emulator https://github.com/ZenfoneArea/android_device_asus_zenfone5/blob/master/houdini/system/lib/arm/check.xml
    You can also try shell script https://code.google.com/p/android-x86/issues/detail?id=1570 to install libhoudini on genymotion if it's not there.

    ReplyDelete
  20. Linux could be a platform supported over Android Intel :D o/

    ReplyDelete

Post a Comment