Since Akademy a few things have happened regarding bringing our applications to Android. Here are some of the highlights I’m aware of.

Build System

Deployment Infrastructure

  • The Docker image used on our CI and CD systems as well as used by many people for local development has been updated to Qt 5.15.1. This is crucial as Qt 5.15.0 has had severe issues around content: URL I/O, which essentially prevented opening of files that weren’t application-internal.

  • There has been regular maintenance on several external dependencies we need, such as adjusting to upstream changes, dealing with build and build system issues, etc. (Discount, Eigen, FreeType, GStreamer, libxml2, QtZeroConf, etc). This is necessary as we are essentially a distributor when it comes to Android.

  • F-Droid metadata generation for the nightly build repository had been stuck and is now running again thanks to Ben, so we see up-to-date application information in the F-Droid app again. Additionally, the application license information is now added there based on the application AppStream file.

  • There’s a proposal on how to further improve the F-Droid metadata generation so that it becomes reusable for F-Droid release builds and can contain also screenshots already present in the AppStream file. Implementation of this is also underway already.

Libraries

  • While Qt 5.15.1 fixed the most content: URL related I/O issues, QSaveFile is still broken in this context, a fix for 5.15.2 addresses that. This fixes file I/O via KArchive for example.

  • There’s a number of hardware abstraction APIs that still has to find their way into frameworks. Nico has been pushing this for screen server inhibition, other candidates are network status monitoring which partly exists in Qt 5 but has been removed for Qt 6, or screen brightness control. Volunteers welcome :)

  • Another candidate for becoming a framework on its own are the JNI helpers/wrappers in KAndroidExtras. Review and feedback would help here, in preparation of moving this to KF5.

Applications

  • Kontrast and Neochat have been added to the nightly builds.

  • Gabriel figured out how we can adjust our application icons so they show up in the proper shapes depending on the settings on Android, and implemented that for KDE Itinerary.

  • Sharaf is pushing Krita on Android forward, with changes in both the application and the deployment infrastructure.

Contribute

If you are interested in bringing KDE software to Android, make sure to join the #kde-android channel on Matrix or IRC, as well as the kde-android mailing list. There is a large amount of users that we can reach on this platform, so your contribution can have a big impact here!