Delphi XE5 for Android - which versions of Android are supported

Posted by on in Blogs
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!
About
Gold User, Rank: 1, Points: 2466
David Intersimone (known to many as David I.) is a passionate and innovative software industry veteran-often referred to as a developer icon-who extols and educates the world on Embarcadero developer tools. He shares his visions as an active member of the industry speaking circuit and is tapped as an expert source by the media. He is a long-standing champion of architects, developers and database professionals and works to ensure that their needs are folded into Embarcadero's strategic product plans. David holds a bachelor's degree in computer science from California Polytechnic State University at San Luis Obispo, California.

Comments

  • Guest
    Darian Miller Friday, 13 September 2013

    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.

  • Guest
    Jolyon Smith Friday, 13 September 2013

    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.

  • Guest
    David I Friday, 13 September 2013

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

  • Guest
    David I Friday, 13 September 2013

    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

  • Guest
    Jim McKeeth Friday, 13 September 2013

    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.

  • Guest
    Dalija Prasnikar Friday, 13 September 2013

    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.

  • Guest
    Wilfred Oluoch Saturday, 14 September 2013

    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.

  • Guest
    JoyShow Sunday, 15 September 2013

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

  • Guest
    TeoS Sunday, 15 September 2013

    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.

  • Guest
    John Clement Monday, 16 September 2013

    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.

  • Guest
    ticols Monday, 16 September 2013

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

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

  • Guest
    Rodrigo Viegas Tuesday, 17 September 2013

    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.

  • Guest
    David Intersimone Wednesday, 18 September 2013

    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 :)

  • Guest
    David Intersimone Wednesday, 18 September 2013

    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.

  • Guest
    David Intersimone Wednesday, 18 September 2013

    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.

  • Guest
    guoqingaa Thursday, 19 September 2013

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

  • Guest
    Magno Saturday, 21 September 2013

    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.

  • Guest
    Alex Karaoui Sunday, 22 September 2013

    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.

  • Guest

    [...] 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 [...]

  • Guest
    web development in c Tuesday, 24 September 2013

    thank u.........

  • Please login first in order for you to submit comments