An oft-discussed topic is reducing the gap between Android and mainline Linux, particularly through the graphics stack. As both systems have grown and matured, Android has donated some of its graphical capabilities to mainline Linux systems, and equally Android has itself evolved to take advantage of new mainline Linux developments. This co-development of both systems allows hardware vendors to confidently develop a mainline-focused BSP for their platforms, supporting mass-volume Android as well as the broad long-tail capability of generic Linux, with a single development effort.
Over the years, Collabora has invested in this effort, including the upstreaming of Android's explicit-fencing support, and the opening of drm_hwcomposer. Last year, we released SPURV to the community: a system which runs Android P applications in a container, displaying on to a Wayland-based generic Linux host system. Though SPURV was developed for a commercial client seeking to run Android applications inside their generic-Linux UI, SPURV is not an out-of-the-box polished product: rather, it is a continuation of our effort to bring the two worlds together.
The surface area and interactions of the Android APIs, and the difficulty of integrating them with a mainline Linux system, are well understood. This talk will not cover the ground of higher-level Android APIs such as contact management. This talk will focus on the issues specific to the graphics stack and low-level hardware enablement, focused on bridging the gap between Android and mainline-Linux systems. The differences between the two will be analysed and compared, and potential roadmaps for continued convergence discussed.
Collabora Graphics Lead (Collabora)
Daniel is the graphics lead at Collabora, working with Wayland/Weston, Mesa (including EGL/OpenGL ES/Vulkan), the Linux kernel DRM/KMS display and modesetting, GStreamer, and more. We improve the upstream open-source graphics experience, and help our customers make the most of it.