
Welcome!#
Hello, Servus, Ciao, Bună ziua, Namaste, Salut, Olá, Привет!
We’re the Android Automotive Team at Accenture Industry X — a diverse, multinational crew based in Germany and Romania with a shared passion for all things Android in cars.
Our work centers on the Android Open Source Project (AOSP) and Android Automotive OS (AAOS), building the next generation of in-vehicle infotainment systems.
Curious to learn more about Accenture Industry X? Check out our website.
Our Blog Posts#
After migrating our AOSP code base to Android 15 we started to have some issues while running our tests on user builds. Unfortunately this was discovered quite late since we initialled tested on user-debug builds, so another topic for the lessons-learned call. Some of the instrumentation tests were failing and the logs showed they were missing a permission. The suprise came from the fact that the tests were signed with the same key as the platform, and the permission was a signature permission, so the expectation was that everything will work, just as it did for Android 14 and older builds.
...
In Android development, building reliable apps and platforms requires efficient tools and environment. Instead of relying solely on physical hardware, developers can use virtual environments like the AOSP Emulator or AAOS Trout for development and testing, choosing the platform that best fits their specific use case. Virtual devices provide additional flexibility and speed for experimentation.
The Android Emulator is widely used by app developers for testing and development. AAOS Trout, on the other hand, is an automotive-focused extension of Cuttlefish, designed specifically for Android Automotive OS (AAOS) and running as a guest VM on a hypervisor to provide a production-like environment for automotive engineers.
...
Introduction The Templatized C++ Command Line Parser is a c++ header library that is used to parse command line arguments. The developers of this library maintain a manual (https://tclap.sourceforge.net/manual.html) that is easy to use, so be sure to check it out. You can use it for any c++ component that can be debugged with “dumpsys”.
Setup In order to use TCLAP, first we must:
copy the sources to extern/tcalp (https://sourceforge.net/projects/tclap/files/) create the Android.bp file cc_library_headers { name: "tclap", export_include_dirs: [ "include" ], host_supported: true, device_supported: true, product_specific: true, vendor_available: true } Usage In order to use this library to parse your dumpsys commands, you can just copy the following code and adapt the todos to fit your needs
...
Android running in a virtualized environment normally has no access to the hardware of the host machine, most of the hardware it “works” with is instead emulated.
But sometimes one wants a way to attach external hardware to their custom Android without working with an actual physical Android device with a USB port. In our case we needed to attach a serial device.
In this article we will demonstrate how one can expose a serial port to Trout.
...
I had to work quite a lot with device configuration in Android and one big question that I had was what is the difference between “include” and “inherit-product” a device makefile. This post will try to answer that, but I will tell you it’s a long story.
Including a device makefile works just as you would expect: it’s basically like copying the entire code from the included file into the current makefile. This means that all the variables are taken into account, and we need to make sure that the included file does not override any important variables for us (always pay attention on using := operator).
...
Interested in joining Accenture Industry X’s Android Automotive Team…where innovation, creativity, and cutting-edge technology converge?
If you’re passionate about solving complex problems, pushing the boundaries of technology, and working in a dynamic and collaborative environment, we want to hear from you!
Our open positions can be found on Accenture’s Career Portal:
Android Platform Developer Android App Developer Software Architect for Android Automotive
Recently, I had to remove a couple of device features from an Android 12 build.
Some reasons why we wanted to remove them:
they were actually not supported by our device we didn’t want to expose them to the user they were causing unnecessary CTS failures In this post, I want to guide you through the steps I took to trim down the list of declared device features.
What are Device Features? Any android devices declares a list of device features it supports. For example, in the early years of Android, there where phones with and without a built in compass sensor.
...