Android Embedded support in Qt 6.2
We need to support both Qt for Android (mobile phones and tablets off the shelf) and Qt for Android Embedded, which includes Qt for Android Automotive as an extension, in Qt 6.2 LTS. This means supporting the e2e developer journey mapping in QAA-204 and implementing the missing bits towards Qt 6.2.
We must offer a working, supported e2e method enabling developing full screen UI and solutions on Embedded Android OS (replacing native Android apps and system UI). AAOS has another additional UI need outside of this basic need.
As background info to clarify the difference between the old Embedded Android and Qt For Embedded Android:
Embedded Android was and is the old setup https://web.archive.org/web/20150124085946/http://doc.qt.io/QtForDeviceCreation/qtee-about-b2qt.html, that term shall refer (if anymore needed) only to it.
- We deprecate the legacy term "Qt Embedded Android" and therefore required consequent ifdef changes to the code base
From now on there are two types of Android :
- Qt for Android - device that is a phone or tablet off-the-shelf
- Qt for Android Embedded - a device creation for OEMs
- Android Automotive lives inside the Qt for Android Embedded as an extension (e.g. Car API’s). At the code level, we provide support. But Qt for Android Automotive will only be a marketing term (for website, webinars, sales material)
- Android TV as an extension as well, customer example Dish. Wearables to be defined later.
- Both have Java components, JVM and Java libraries
- Both may be GMS or non-GMS (e.g. single app in Kiosk-mode), Qt for Android Automotive maybe GAS or non-GAS
Hardware and OS versions
Android Automotive on AAOS 11 is using QCSD8155P and on Android Embedded 11 on iMX8QM.
Development host support can be Linux and/or Windows, has dependency to Android SDK availability on given hosts.
We are looking at cases using Android without GAS (Google Apps and Services) where Qt is used to replace system UI with a single full screen app as well as Android with GAS. On some cases especially on AAOS there may be a number of Qt based apps (sometimes also some non-Qt apps).
Today we have documentation covering how to develop for Android mobile phone target and how to develop on RTOS or Embedded Linux. We need to add similar sections for both Qt for Android Embedded and its extensions Qt for Android Automotive (AAOS). We are currently assuming both variants can be covered in one, and the doc is partially shared / overlapping with Android mobile documentation.
We need to specify a way to deliver what is needed by developer through Qt Maintenance tool & Installer. Possibly use QBSP. Especially on Android OS itself, and HW specific firmware we may not be able to deliver so that part needs support through documentation, scripts etc other means.
We can already support Android on mobile phones, expect us to be able to document and explain how to do this on Android Embedded and AAOS, too. If Qt delivery is source code then that be it.
Android Embedded needs to be added to CI, RTA at some point, the sooner the better.
We must document and provide additional tools / scripts on how to setup Qt environment with Android SDK.
Not part of this work
Automotive add-on modules, IVI, AppMan, AAOS CarAPI support etc are totally outside of this work and baseline OS support. Those are handled and managed by the QAA team.
Qt 6.1 some Experimental or TP level support
Qt 6.2 LTS - Supported on reference hardwares
Related tickets need to be created by R&D.
- QAA implementation
- Platforms Area
- Releasing and Installer
Glossary for supported and non-supported Android flavours
- Consumer (off-the self device whether mobile phone or tablet or whatever)
- Vendor(Device creation license, AOSP, GMS or non-GMS, GAS or non-GAS)
- Supported: Android NDK with JNI on embedded use cases (with or without GAS)
- Technically this is the same as targeting mobile phones but Qt licensing is different, apps will run on Kiosk mode and Qt has verified this to work on a non-mobile-phone HW (iMX8 today)
- Supported: Android Automotive Operating System native development without GAS
- Unsupported as not used: development on Native Android Kernel without JNI, Dalvik or GAS
- Unsupported as not used: Android Kernel dev without JNI, Dalvik or GAS
- Covered elsewhere: Android based mobile phones and tablets support
- Covered elsewhere: Android desktop partial support (part of the mobile phone support)
- Qt for Android with mobile phones and tablets
- Qt for Android with Devices (as defined in qt LA 4)
- is required for
QTBUG-90022 Qt 6.2 development targets
QTBUG-96224 Qt for Android Embedded support in 6.3
- mentioned in