Back to work

Porting an Android application

products ALT

Updating the Android system

We were contracted to join our customer's development team to help port an existing suite of Android applications from a system using Android 6 to a new SoC running Android 11.

Our initial tasks involved updating the various Open Source libraries the customer was using as a part of their native application, including the GStreamer Cerbero build and Qt.

Some of the update process wasn't entirely troublefree: in the case of the Qt libraries we ended up debugging a tricky C++ exception unwinding issue exposed by updates to the Android C++ libraries in combination with link ordering in the build process.

Reworking framework integration

As the project progressed we moved from systems-level porting activities to focus on the Android Java framework.

In particular, the framework classes dealing with GPS had changed a lot between Android 6 and 11, meaning we had to rework the application's integration around these classes.

We worked on the application itself, both in the Java code and in C++ native code, and on the HAL, to integrate the required functionality before testing and verifying on both Android 6 and Android 11 to ensure the shared codebase continued to work well in both environments.


Alongside our porting work we also debugged a wide range of issues arising from the update to the new Android release. These included kernel-level issues, low level toolchain/build issues, and troubleshooting both native C++ and Java framework-level code.