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