Viktor Mukha
Paradox Cat GmbH, Principal Software Architect
Munich, Germany
Actions
Viktor Mukha has spent years deep in the Android Open Source Project (AOSP), specializing in Automotive — shipping BMW and MINI head-units built on AAOS. He contributes to COVESA's Automotive AOSP App Framework standardization and sits on the steering committee at aosp-devs.org. Off the clock, he plays guitar in an award-winning melodic death metal band and quietly conspires with Home Assistant and ESPHome to outsmart his own house.
Area of Expertise
Topics
AOSP Development Environment: best practices, tips, and tricks.
There are so many people around the world working on the AOSP codebase and yet there is no common development environment has been defined.
In this talk, we want to start the discussion by showing what tools we use and how we use them.
We will take a look at Google's minimum hardware requirements and compare working locally to working remotely on another machine. For both of these options, we will discuss the pros, cons, and state-of-the-art tools best suited for the job.
Different types of AOSP work can benefit from different tools and approaches. To provide some examples, we will talk about changing the boot animation, changing the Android framework configuration, and working on a system service within the AOSP codebase.
The talk will be full of practical advice.
Custom Launcher – Why and How do I build one?
What is the very first thing you see when you unlock your android device? In most cases you would be presented with a launcher. The UI of this launcher is crucial to providing the right user experience. Android is running on a vast variety of hardware: smartphones, tablets, TVs, cars, etc.
Have you ever wondered what it takes to implement a custom launcher? Let us take you on a ride with us and play around. Who knows, maybe you will see how to create a launcher for a spacecraft?
AIDL HAL by Example: Using Hardware from Android Application
As Android application developers, we get a nice set of abstractions via Android SDK to communicate with the underlying hardware. Have you ever wondered how your application code can run on so many different devices without any modifications?
The Android OS defines a set of standard interfaces for hardware vendors to implement. This layer between the hardware and the high-level Android framework is called the Hardware Abstraction Layer (HAL).
We will start our journey as an application developer who wants to use a particular radar sensor by plugging it directly into the USB port of their Android device. Although this radar uses serial protocol internally, this is not the way developers should use it. The only thing we get is a rather complex SDK written in C.
We will try to use this C SDK at the application level via the Android NDK, but we will fail due to SELinux policies restricting raw socket "open" calls.
This is how we end up writing our own AIDL HAL, a corresponding set of SELinux policies, a system service, and an application that consumes the data via an SDK addon.
This talk serves as an overview of current Android System Architecture, describing all the layers one needs to implement within AOSP to expose hardware to applications.
Key Takeaways:
* Why would I, as an application developer, ever need to write a custom HAL?
* The "Android way" of talking to hardware and how it differs from typical Linux.
* There will be links to GitHub with sample code.
* There will be a demo.
#AOSP #HAL #AIDL #SELinux #SDKAddon #AAOS #C++ #Radar #Sensor
Please note that Sessionize is not responsible for the accuracy or validity of the data provided by speakers. If you suspect this profile to be fake or spam, please let us know.
Jump to top