Motivation and Background
Everybody knows Android as the dominant platform for smartphones and tablets. Under the shiny surface of Apps there is a world-class software platform with lots of reusable components and frameworks. The scalability of Android architecture makes it a very versatile platform for a wide range of applications. We have used Android for everything from small connected, headless devices to full-blown automotive infotainment systems. Android is supported by nearly every SOC vendor. Nevertheless these solutions are mostly very generic and not optimized for specialized use cases. Startup time is one example which is a non issue for smartphones, but crucial for other embedded systems.
The following Case Studies show our ability to adapt the Android platform:
The Android Transporter is a technology study similar to the Miracast standard. The goal of this project was to find the most efficient way of implementing real-time screensharing between smartphones and other embedded devices. We quantified our results using the following three key parameters:
- maximum framerate
- CPU usage
Results and in-depth analysis can be found in a series of blog posts:
To achieve these results we had to change some core components of the Android platform, e.g. the SurfaceFlinger and the MediaFramework, in a significant way. The Android Transporter was ported to a couple of Nexus devices and showcases our deep understanding of the Android platform.
AVB (Audio Video Broadcasting)
AVB (Audio Video Broadcasting) is a standard to allow time-synchronized low-latency streaming services for video and audio through ethernet. In an advance-development project for a German car OEM we integrated an AVB-capable sound driver into an Android platform. The streaming solution consists of two components: * A Linux driver which streams audio data via IEEE 1722 * A PTPv2 stack The Linux driver was connected to the Android audio subsystem.
More details can be found in an upcoming blog post.