How does FireMonkey (Delphi) compile for Android?

7

I did some research but did not get good results, the project folder looks like a common Delphi or C ++ project!

  • VCL - Delphi
  • FMX - Firemonkey

Please note:

With the exception of the Android folder, where it contains some subfolders, you can find the already compiled APK, .XLM files, and several files with the .SO extension (this I have no idea of whatever it is).

Programming for Android or IPhone in this IDE is the same as programming for Delphi!

So I ask, how does this IDE compile for Android? Would it be pure Java Class Abstraction?

EDIT

  

The possibility to develop for Android was implemented in   XE5 version!   To develop Android with RADStudio we need the following tools:

     

Java Development Kit ( JDK )

     

Android Software Development Kit ( SDK )

     

Android Native Development Kit ( NDK )

    
asked by anonymous 20.01.2016 / 01:55

1 answer

1

As far as you can understand, it's basically this, it abstracts the classes and compiles the Apk (not so simple).

Translated from a note:

Delphi developers are largely protected against the complexity of NDK, since the code uses the high level of abstraction provided by the runtime library (RTL) and the FireMonkey framework. If that's all you need I should think that everything will be alright. If you have a Java library you need to call from the Android Delphi application, you need to use Java Native Interface (JNI), which is not much fun.

Another point to note is that FireMonkey emulates visual controls, such as buttons, lists, and so on. Users may not realize it, but the components behave exactly like the native controls, but this is tricky to do perfectly.

The Embarcadero promise is that we would develop natively in relation to the code, but not in relation to the controls it uses.

Here we can find the NDK documentation

VCL is incompatible with FireMonkey

FireMonkey (FMX) and the Visual Component Library (VCL) are not compatible and should not be used together in the same module. This means that a module must be exclusively one or the other, either FireMonkey or VCL. The incompatibility is caused by frame differences between FireMonkey (FMX) and VCL.

However, you can:

Use a FireMonkey library with a VCL application, or use a VCL library with a FireMonkey application, as described in shared libraries for Mac OS X.         Read the general guidelines for converting a VCL application to FireMonkey in Converting from VCL to FireMonkey.         Read a general procedure for migrating a VCL application to FireMonkey in migrating VCL applications to multiple devices.         Get a VCL-to-FireMonkey converter program at link .

Three major libraries are provided by RAD Studio:

FireMonkey (FMX) is a library of visual components with sophisticated graphics, animation and style capabilities. You can create FireMonkey applications for any supported target platform.

Visual Component Library (VCL) is a hierarchy of visual component objects that are supported only in Windows (in Win32 and Win64 applications).

Run-Time Library (RTL) is a procedural library shared by Delphi and C ++ for any supported target platform. The RTL is made up of members of the system, System.SysUtils, System.IOUtils, and System.Classes units.

You can freely use RTL in a FireMonkey application, but you can not directly use VCL in a FireMonkey application module.

Font

    
27.01.2016 / 17:21