Genero Mobile for Android (GMA) 1.40 changes

Modifications to consider when using the Genero Mobile for Androidâ„¢.

Note: This topic describes feature changes in the GMA 1.40 product. See also the Mobile section in Genero BDL 3.20 New Features page.

GMA 1.40 with FGLGWS 3.20

Important: The GMA version 1.40 is built on FGLGWS 3.20 and therefore, strongly tied to this Genero BDL version.

Specifying the GBC for Universal Rendering

Genero 3.20 introduces Universal Rendering based on the GBC web front-end.

The GBC to be bundled with the embedded app is specified with the new gmabuildtool option --build-gbc-runtime.

Button.alignment style attribute

GMA 1.40.03 supports the alignment attribute for BUTTON form items.

For the possible values of this attribute, see Button style attributes.

Cordova plugins from the FOURJS Cordova Github

Before Genero 3.20, the Cordova plugins wrapper libraries and demos were shipped in the FGLGWS package (FGLDIR).

Cordova plugins, as well as demos and BDL wrapper libraries and demos, are now available from the FOURJS Cordova Github.

For more details, see Installing Cordova plugins.

New Cordova front calls listPlugins / getPluginInfo

Since Genero 3.20 / GMA 1.40, the new cordova.listPlugins and cordova.getPluginInfo front calls can be used to get information about Cordova plugins bundled with the app.

64-bit architecture in APK

Google requires that the APK uploaded to the Play Store must contain a 64-bit version of the app, otherwise it will be rejected after August 1, 2019.

Starting with GMA 1.40.03, the gmabuildtool generates an APK with a 32-bit and 64-bit version of the app.

For more details, see Building Android apps with Genero.

Android 10 (API 29) and feInfo (deviceid, iccid, imei)

Starting with Android 10 (API level 29), to access deviceid, iccid and imei identifiers with the feInfo front call, the device must be configured manually with the READ_PRIVILEGED_PHONE_STATE privileged permission for fully managed devices, with the Android Enterprise Program. Third-party apps installed from the Google Play Store can't declare privileged permissions.

For more details see Android permissions.

Android Command Line Tools replacing SDK Tools

Starting with GMA 1.40.10, you need to install the Android Command Line Tools, to install and/or update the Android SDK. For more details about this requirement, see the latest Android SDK Tools release note.

If you have an older Android SDK installed (without the $ANDROID_SDK_TOOLS/cmdline-tools directory), you can install the command line tools in the existing Android SDK directory, by following the steps described in Install Genero Mobile for Android.

See also the prerequisites to build Android Apps with Genero Mobile.

Android App Bundle (.aab) packages

Starting with GMA 1.40.15, in addition to .apk packages, the gmabuildtool produces now .aab packages.

For new applications, only Android App Bundle .aab archives can be uploaded to the Android Play Store.

For more details, see Building Android apps with Genero and gmabuildtool.

Android 11 (API 30) related changes

In August 2021, Android applications must target Android 11 / API 30, to be published on the Google Play Store. GMA 1.40.15 is validated with Android 11 / API 30.

With this update come several security rules to apply:
  • The MESSAGE and ERROR instructions are rendered with the new "snackbar" visual, and are no longer visible in the background. However, all presentation styles are still applicable.
  • The sdcard cannot be accessed directly anymore: Program code must use the paths returned by front calls such as standard.feInfo/datadirectory and standard.openFile. This change impacts also front calls such as mobile.takePhoto and mobile.takeVideo, that will save the image in the external file directory of the application (and no longer in general share directory on sdcard). App code can no longer guess the path to sdcard and do some operation on it: One must either use the path returned standard.feinfo/dataDirectory, or use paths returned from front calls such as standard.openFile, to access to a file on the device. The paths returned by these front calls are now aligned with the scoped storage (see https://source.android.com/devices/storage/scoped)

See also Handling files on Android devices.