Skip to content

Delphi XE5 for Android - which versions of Android are supported

Delphi XE5 can now build apps for Android.  Which version of Android does XE5 support?  Delphi can build apps for Gingerbread (2.3.3-2.3.7), Ice Cream Sandwich (4.0.3-4.0.4) and Jelly Bean (4.1.x, 4.2.x, 4.3.x) - http://www.embarcadero.com/products/rad-studio/whats-new.  Why doesn’t XE5 support other releases of Android?  It’s has a lot to do with the number of devices that use the different versions of Android.  On the Android Developers Dashboard Platform Versions you can always find statistics showing what versions of Android are used in the real world (defined by Google as "Data collected during a 7-day period ending on xxx date".

For the 7-day period ending September 4, 2013 the Platform Versions distribution (note: Any versions with less than 0.1% distribution are not shown) were:

    Version Codename API Distribution
    2.2 Froyo 8 2.4%
    2.3.3 - 2.3.7 Gingerbread 10 30.7%
    3.2 Honeycomb 13 0.1%
    4.0.3 -4.0.4 Ice Cream Sandwich 15 21.7%
    4.1.x Jelly Bean 16 36.6%
    4.2.x Jelly Bean 17 8.5%

For the Android versions that Delphi XE5 supports this gives Delphi a coverage of 97.5% of the Android devices in use. During yesterday’s XE5 launch webinar, we were asked about the next release of Android (v4.4 codenamed KitKat).  The R&D team is working with Google to make sure we are on top of all Android development efforts and releases.  We’re on it!

{ 26 } Comments

  1. Darian Miller | September 13, 2013 at 2:27 pm | Permalink

    It sounds fantastic. One caveat seems to be on the hardware side. You may theoretically support 97.5% of the devices based on the OS version, but fail due to the hardware requirements. Do you have any stats on actual device support? (device must have a GPU, the CPU must be ARMv7 with NEON instruction support) I’m curious how close it really is to 97.5.

  2. Jolyon Smith | September 13, 2013 at 5:19 pm | Permalink

    Sorry David but this analysis is incomplete and misleading.

    Tegra2 based devices are not supported by FireMonkey, for example, regardless of Android version. And there are others.

    Your reliance on the NativeActivity class for NDK bootstrapping allows you to run on GingerBread and above, but your hardware requirements exclude a fair few devices that are running suitable Android versions.

    You should also mention that you now require a minimum of iOS 6 for iOS devices, so FireMonkey apps can no longer be developed for iPad 1 using FireMonkey XE5.

  3. David I | September 13, 2013 at 9:29 pm | Permalink

    Apple reports that 93% of iOS devices are running iOS 6 and above.

  4. David I | September 13, 2013 at 9:36 pm | Permalink

    Brian Long gives additional Android requirements in his blog post at http://blog.blong.com/2013/09/delphi-for-android-aka-delphi-xe5-aka.html?showComment=1378942045563&m=1

    Here is what he lists from our focumentation:

    Android requirements

    Because the Delphi compiler generates native machine instructions, its output is processor-specific. In other words it doesn’t target the Dalvik Virtual Machine, where regular Android applications reside, which are basically Java p-code applications that are executed by a variant of the Java VM. Instead it generates raw machine code, as all the current wave of Delphi compilers do (the long gone Delphi for .NET was the exception to this general rule). So because it’ a compiler compiling native machine instructions Delphi’s Android support has the following requirements:

    there must be a GPU

    the CPU must be ARMv7 with NEON instruction support

    the OS on the target device must be one of:
    GingerBread: Android 2.3.3+ (MR1 or later), which is API level 10
    Ice Cream Sandwich: Android 4.0.3+ (MR1 or later), which is API level 15
    Jelly Bean: Android 4.1+ (release, MR1, MR2 or later), which are API levels 16, 17 and 18

  5. Jim McKeeth | September 13, 2013 at 9:44 pm | Permalink

    I have reports from users doing real world tests on real hardware and found that 97.7% of the physical devices on Apkudo ran their test app. That is pretty close to the 97.5% David figured.

  6. Dalija Prasnikar | September 14, 2013 at 1:06 am | Permalink

    How about this: out of five devices (up to 2 years old) it runs only on two bought this year. On some Android version is the culprit - 2.3.1 and on some NEON. I could live with Android 2.3.3 and above, but NEON is serious showstopper.

  7. Wilfred Oluoch | September 14, 2013 at 7:44 am | Permalink

    In Kenya (East Africa), most of the smartphones people have are entry level Android devices (like http://www.gsmarena.com/samsung_galaxy_mini_s5570-3725.php ) that don’t have a GPU and probably no NEON support. For me, this is a big problem as it means I can’t target the larger base with Delphi for Android solutions. I wish there was some form of GPU emulation built in.

  8. JoyShow | September 16, 2013 at 1:23 am | Permalink

    It is a matter of how depressed what you say: XE5 does not support NVIDIA Tegra 2!!!

  9. TeoS | September 16, 2013 at 1:38 am | Permalink

    I wonder how many cheaper Android devices (like my Samsung Galaxy Y) and the cheaper tablets support it. And I wonder how many people are buying a new iPad every year..

    What strange requirements to have, knowing that all the concurrent development tools don’t need these.

  10. John Clement | September 16, 2013 at 1:58 pm | Permalink

    Much as I would like to get excited about the Android support I have the problem that my Tegra Tablet is not supported. Until this is supported there is no reason for me to upgrade to XE5.

  11. ticols | September 16, 2013 at 6:43 pm | Permalink

    Fantastic !
    I have tried , and it’s great!.

    Can I import .jar libs into the Delphi XE5 for Android?
    How to do that?

  12. Rodrigo Viegas | September 17, 2013 at 2:15 pm | Permalink

    Will XE5, in a update, support compile for Intel Atom based Android ? It is x86, so I wonder it couldn’t be so hard to do it, since Delphi already compiles to x86..

    I know that the presence of Intel Atom based Android devices are very insignificant, until now, but they (Intel) are hungry for this market with agressive plans for 2014 and Embarcadero could consider talking to Intel and other brands such as Google’s Motorola, Acer, ASUS and Lenovo (which have Intel Android Smartphones) about it.

    In this Intel case, the Atom processor also comes with GPU embedded, just to clear out.

  13. David Intersimone | September 18, 2013 at 1:32 pm | Permalink

    To answer some questions about specific device support, our team has put together a starting document on our Embarcadero DocWiki that has some of the details about chip and device support. You can find this document online at http://docwiki.embarcadero.com/RADStudio/XE5/en/Android_Devices_Supported_for_Application_Development#Specific_Android_Devices_that_We_Have_Tested_and_Verified

    This document will be continually updated as we do updates, additional testing and also as new devices appear and old devices disappear :)

  14. David Intersimone | September 18, 2013 at 1:35 pm | Permalink

    Rodrigo - R&D is looking at work we can do in the future for Android on Intel. We have the compilers, optimizers and code emitters for ARM and Intel - so this is definitely possible with some additional development and testing.

  15. David Intersimone | September 18, 2013 at 1:41 pm | Permalink

    Regarding other devices beyond what we currently support, since we use LLVM code emitters for ARM processors, we are working to see what other devices and chipsets we can support on Android in the future. We’re working on additional documentation about how Delphi supports ARM/Neon and GPU processors. We started with a first target set (see the link about for some of the devices we support and tested on) and will be working to support additional new chip set sin the future. The team is also working on a technical article that describes how Delphi language and runtime works on the different CPU, FPU and GPU chips that are used on current devices and also some announcements we are seeing about future chips that some device managers are planning to use. This is all cool and normal development and testing efforts that we have been doing since the first Z80 and x86 chips from way back in 1983.

  16. guoqingaa | September 19, 2013 at 11:02 pm | Permalink

    XE5 does not support NVIDIA Tegra 2!!! Depressed!Expect support

  17. Magno | September 22, 2013 at 5:32 am | Permalink

    Support for x86 will be really welcome, even if it´s still "insignificant", definitely its very important and should be not neglected. Powerful Android emulators such Genymotion would substitute default Google emulator and XE5 compiling would be very pleasant for developing. At my home we have iOS and Android devices, I can test my apps in all but one that’s a Razr I.
    I really will welcome x86 support.

  18. Alex Karaoui | September 22, 2013 at 11:13 pm | Permalink

    I’ve had a great deal of experience with Delphi and FireMonkey (all versions) on the Mac OS X platform. One thing that I didn’t find very prominent in the documentation/wiki, but that proved most valuable was the degree of separation between Delphi and FireMonkey. That is to say, I could write OS X applications in Delphi and not use FireMonkey at all — getting around quite a few obstacles for my application (needing to use native controls on the form).

    I’d like to know is that same separation present on the Android platform. I understand that Delphi is compiled with the LLVM compiler; so I’m wondering if I can write a pure Delphi application without FireMonkey for Android and would that alleviate the need for NEON support?

    It’s just that requiring NEON and an external GPU is just too much of a narrowing of the market to make selling an Android application feasible. Tegra processors aren’t going anywhere - so I’d think supporting them would be necessary.

  19. web development in c | September 25, 2013 at 3:15 am | Permalink

    thank u………

  20. Rob Jongejan | September 26, 2013 at 7:10 am | Permalink

    I have tested XE5 with Samsung Galaxy II I9100 phone and with Samsung Galaxy II P7300 tablet, where the phone works great and the tablet, using the same app will load the app, but closes it down immediately. Every time when I try to start the app it tries to open the app and closes it. Is this normal behaviour when some device is not supported or tested?

  21. Batur KILIÇ | October 8, 2013 at 2:44 am | Permalink

    I tested XE5 Android support. It’s amazing. I just delphi expert since 1.0 version , i have none information about java scr or any other native android develeopment tools . But less than 3 days i can build native android apps. The apps. using REST Datasnap server for database access. Both of 2 apps. developing on Delphi Xe5 and the result is %100 working .

  22. Christo Vermeulen | October 23, 2013 at 12:36 am | Permalink

    We recently bought the new Samsung Tab 3 10" (GT-P5200). It was with great disappointment that we realize we are unable to compile for this device because of the non ARM processor (Intel Z2560). If this processor is a success we are obviously going to see one of the most preferred makers of Android tablets moving away from the ARM processor which will be a problem for Firemonkey. Is there a future for Intel processors?

  23. davidi | October 23, 2013 at 6:32 am | Permalink

    Christo - we are definitely looking the emergence of some Intel on Android devices. The good news is that we already have compilers for Intel and we now have FM on Android. Of course there is more to getting a product to support another chip/platform. No time frame yet, but we are watching what is happening with additional chips that are being used on Android devices.

  24. Scott Pritchard | October 27, 2013 at 11:40 am | Permalink

    So, with Android 4.4 (Kitkat) rumoured to be released in the next few days (Oct. 28-31) along with certain devices from Google, do we have any update on whether FMX is ready to support Kitkat from day 1, or are we just waiting for an NDA (assuming there is one) to lift so it can be discussed?

  25. android phone online | November 2, 2013 at 6:21 am | Permalink

    Phone is such a very nice technology for now its very good idea
    to write an article like yours that was very good i have a
    android phone online store http://www.android-enjoyed.com/ i need
    to write some blogs so i can boost my sales in my online store atleast
    i have a idea now thanks for you.

  26. W. Prins | November 20, 2013 at 4:42 am | Permalink

    Can you comment on the drivers behind deciding to target native ARM as opposed to Dalvik, effectively resulting in the specific hardware requirements (NEON, ARMv7) which would presumably have been a non-problem if Delphi targetted Dalvik instead? Is targetting Dalvik as another processor target on the horizon/in the works at all? (Aside, originally I thought the native approach was great — a leg up on other solutions targetting Dalvik, but I’ve begun to question the wisdom of that strategy lately. If Dalvik’s JIT is good enough for normal Android development, then it’s arguably good enough for Delphi also, and targetting Dalvik means you neatly sidestep all the issues generated by targetting ARM/hardware directly?

{ 1 } Trackback

  1. [...] the release of Delphi XE5, with support for iOS and Android it also brings InterBase versions of these two O.S-es, people started to question whether we can [...]

Bad Behavior has blocked 4 access attempts in the last 7 days.

Close