<?xml version="1.0" encoding="UTF-8"?><rss xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:atom="http://www.w3.org/2005/Atom" version="2.0" xmlns:cc="http://cyber.law.harvard.edu/rss/creativeCommonsRssModule.html">
    <channel>
        <title><![CDATA[Stories by Mandapati Bhargava on Medium]]></title>
        <description><![CDATA[Stories by Mandapati Bhargava on Medium]]></description>
        <link>https://medium.com/@bhargavamandapati?source=rss-fe0a73470223------2</link>
        <image>
            <url>https://cdn-images-1.medium.com/fit/c/150/150/1*wMrr6fC8Hq2rAxl_DbKzHA.jpeg</url>
            <title>Stories by Mandapati Bhargava on Medium</title>
            <link>https://medium.com/@bhargavamandapati?source=rss-fe0a73470223------2</link>
        </image>
        <generator>Medium</generator>
        <lastBuildDate>Wed, 11 Nov 2026 21:35:17 GMT</lastBuildDate>
        <atom:link href="https://medium.com/@bhargavamandapati/feed" rel="self" type="application/rss+xml"/>
        <webMaster><![CDATA[yourfriends@medium.com]]></webMaster>
        <atom:link href="http://medium.superfeedr.com/" rel="hub"/>
        <item>
            <title><![CDATA[The Complete Guide to Moving from Android Apps to Android Automotive]]></title>
            <link>https://medium.com/cross-commit/the-complete-guide-to-moving-from-android-apps-to-android-automotive-3b6096bd80f2?source=rss-fe0a73470223------2</link>
            <guid isPermaLink="false">https://medium.com/p/3b6096bd80f2</guid>
            <category><![CDATA[automotive]]></category>
            <category><![CDATA[android]]></category>
            <category><![CDATA[programming]]></category>
            <category><![CDATA[learning]]></category>
            <category><![CDATA[android-development]]></category>
            <dc:creator><![CDATA[Mandapati Bhargava]]></dc:creator>
            <pubDate>Wed, 11 Nov 2026 03:51:47 GMT</pubDate>
            <atom:updated>2026-11-11T03:51:47.438Z</atom:updated>
            <content:encoded><![CDATA[<figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*ZAwGPWli-J3aQGNP1QP3NA.png" /></figure><p>Your phone app runs on top of the world. A car app runs on top of a world that also has wheels, brakes, a battery, and a driver who must not look at the screen for long. If you are an Android developer today, you already own about sixty percent of what you need to build for cars. This guide shows you the other forty percent, in the order you should learn it.</p><p>The cars on the road are changing fast. Carmakers no longer want a locked, closed infotainment system. They want Android running as the operating system of the vehicle itself, called Android Automotive OS, or AAOS. That is different from Android Auto, which only mirrors your phone on the car screen. With AAOS the car runs Android natively, and that creates a huge need for people who understand both Android and the car.</p><p>This article walks you through four roles. First the automotive app developer, then the framework developer, then the middleware developer, and finally the VHAL developer, who sits closest to the vehicle. You do not need to learn all four at once. Each step builds on the one before it, and by the end you will know exactly what to study and why.</p><h3>The Big Picture, Android as a Building</h3><p>Think of the Android system as a building with floors. As an app developer you live on the top floor and rarely visit the basement. In automotive you will take the lift down, floor by floor.</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*xX-6t6HNMCEoeZH7qA4v0w.png" /></figure><ol><li>Apps, the top floor. Media, navigation, climate screens, launcher, settings. This is where you start.</li><li>Framework, the second floor. Java and Kotlin services inside the system. Car Service lives here. It decides what apps are allowed to know about the car.</li><li>Middleware and native services, the third floor down. C plus plus code that talks to audio, camera, display, power and communication.</li><li>HAL and VHAL, the ground floor. The Hardware Abstraction Layer is a clean doorway between Android and the hardware. VHAL, the Vehicle HAL, is the doorway for vehicle data such as speed, gear, fuel, door state and HVAC.</li><li>Kernel and the car network, the basement. Linux drivers, the CAN bus and the control units that sit in the car.</li></ol><p>A simple example makes this real. When the driver changes gear to reverse, the gear sensor sends a message on the CAN bus. The kernel receives it, VHAL converts it into a vehicle property, Car Service passes it to apps that asked for it, and your app shows the rear camera. One tap of a lever travels through every floor. A good automotive developer understands the whole journey, even if they work on only one floor.</p><h3>Step 1, Build Automotive Apps and Learn What Changes</h3><p>Start where you are comfortable. Your Kotlin, Jetpack, coroutines and lifecycle knowledge all carry over. What changes is the rules of the road, literally.</p><p>First, learn the app categories the car supports. Media apps use MediaBrowserService and MediaSession, so you must know them well. Navigation, charging, parking and messaging apps use the Car App Library, which gives you ready made templates instead of free form screens. Free form layouts are mostly reserved for system apps built by the carmaker.</p><p>Second, learn driver distraction rules. When the car moves, the system restricts what your screen can show. Text input, long lists and video may be blocked. The Car UX Restrictions API tells your app when the car is parked or moving, and you must design for both. Buttons are bigger, text is shorter and every flow must work in two or three taps.</p><p>Third, learn the car specific APIs. The android.car package gives apps access to vehicle data through managers such as CarPropertyManager for speed, gear and fuel, CarAudioManager for audio zones, and CarUxRestrictionsManager for driving restrictions. Learn how permissions work here, because many car permissions are granted only to system or privileged apps.</p><p>Fourth, get used to the car environment. Screens are large and come in odd shapes. There can be several displays, such as a main screen, an instrument cluster and a passenger screen. Several users can share one car, and the system switches between them. Your app must survive all of this without crashing.</p><p>A good first project is a simple media player or a vehicle data viewer app that shows speed and gear from the emulator. When this feels easy, move down one floor.</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*OXx0OdAlMmGO5np0N17c8Q.png" /></figure><h3>Step 2, Learn to Build and Read AOSP</h3><p>This is the biggest mindset change. An app developer downloads libraries. A platform developer downloads the entire operating system, which is the Android Open Source Project, or AOSP, and builds it from source.</p><p>Begin with the basics of the source tree. Learn how to sync the code using repo and git, how the folders are arranged, and where packages, frameworks, system, hardware and device folders live. Then learn the build system. Modern Android uses Soong, driven by Android.bp files, while older parts still use Android.mk. Learn the lunch command, which selects a target such as an automotive emulator build, and learn how to build only one module instead of the whole system, because a full build can take hours.</p><p>Next, learn to run what you built. Use the automotive emulator or Cuttlefish, a virtual device that runs full AOSP builds on a Linux machine. Learn adb deeply, including adb shell, adb push, adb remount, logcat, dumpsys and service list. Dumpsys is a superpower. It lets you ask any system service what it is thinking right now, including Car Service.</p><p>Finally, learn to read code more than you write it. Platform work is ninety percent reading and ten percent writing. Practice finding where a feature lives, following a call from an app down into the framework, and changing one small thing to see the effect. Your machine also matters. Plan for a strong Linux computer with plenty of memory and fast storage, because AOSP builds are heavy.</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*NT2F-7vHVyn7CqDYiEkLNw.png" /></figure><h3>Step 3, Become a Framework Developer</h3><p>The framework is the brain of the system. It is where Java and Kotlin system services run, and where Car Service lives. Car Service is a privileged service that manages everything car related, including vehicle properties, audio, power, user switching, occupant zones and driving restrictions. Apps never talk to hardware directly. They talk to Car Service, and Car Service talks down.</p><p>Here is what to learn, in order.</p><ol><li>Binder and AIDL. Binder is how processes talk to each other in Android. AIDL is the language you use to describe those conversations. Almost every framework and HAL interface in modern Android is written in AIDL, so this is your most important tool.</li><li>How system services start. Learn SystemServer, how services register with ServiceManager, and how a manager class such as CarPropertyManager wraps a service for apps to use.</li><li>Android permissions and security. Learn signature permissions, privileged apps, and above all SELinux. When a change you made works on a developer build but fails on a real build, SELinux is usually the reason. Read denial messages in the log and learn how to write a policy rule that fixes them correctly.</li><li>Car Service internals. Study how it handles power states such as suspend, resume and garage mode, how it enforces driver distraction rules, how it manages users and displays, and how audio focus and audio zones work in a car with many speakers.</li><li>Customization. Carmakers rarely use AOSP untouched. Learn runtime resource overlays, which let you change values without editing the source, and learn how to add a new system service or a new manager API for your own feature.</li></ol><p>A good practice project is adding a small custom service to Car Service, exposing it through AIDL, and calling it from a test app. If you can do that, you already think like a framework developer.</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*cxOgy1yK4JpzLv8Dov1luQ.png" /></figure><h3>Step 4, Grow into Middleware</h3><p>Middleware is the glue between the framework and the hardware. It is mostly native code written in C plus plus, running as separate processes, and it is where many automotive features are really built. Think of the rear camera, the audio engine, the instrument cluster data feed, voice services, and the gateway that connects Android with other computers in the car.</p><p>The first skill is C plus plus itself. You do not need to be a wizard, but you must be comfortable with pointers, memory ownership, smart pointers, threads, mutexes and the standard library. Most bugs in this layer come from memory and threading mistakes, and they crash the whole system instead of one app.</p><p>The second skill is how native services fit into Android. Learn how a native process is started by an init rc file, how it registers a Binder service using the NDK Binder library, how it calls up into Java through JNI when needed, and how its interface is declared in the VINTF manifest. Learn Treble too, the architecture that separates the vendor part of the system from the Android part so that each can be updated on its own.</p><p>The third skill is the car specific subsystems. Study the Exterior View System, called EVS, which shows camera feeds very early at boot so the driver can reverse even before Android is fully ready. Study the audio HAL and audio routing, since cars have many zones and many sound sources. Study the display and cluster path, and how a second screen is driven.</p><p>The fourth skill is talking to other vehicle computers. Learn the idea of service oriented communication in cars, protocols such as SOME IP, and how an Android head unit exchanges data with the rest of the vehicle. You will often write a small bridge service that listens on one side and publishes on the other.</p><p>Good habits for this layer are strong logging, careful startup order and clean error handling, because a middleware service that crashes in a moving car is a serious problem.</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*sd4U1BkDXxlyxqyDoTdH4g.png" /></figure><h3>Step 5, Master VHAL, the Doorway to the Vehicle</h3><p>VHAL is where Android finally meets the car, and it is the most automotive specific part of the whole stack. Everything the car knows, such as speed, gear, fuel level, door open, seat belt, outside temperature and air conditioning, is described as a vehicle property.</p><p>Each property has a few simple parts. A property ID says what it is. An area ID says where it applies, for example which seat or which door. A type says whether the value is an integer, a float, a string or a list. An access mode says whether it can be read, written or both. A change mode says how updates arrive. A static property never changes, an on change property reports when the value changes, and a continuous property reports at a steady rate. Properties come in two families. System properties are defined by Android, and vendor properties are defined by the carmaker for their own features.</p><p>Learn the VHAL interface itself, which is now written in AIDL. The main actions are getting a value, setting a value, and subscribing to changes. Understand how a request from CarPropertyManager reaches Car Service, then the VHAL service, and how the answer comes back. Study the reference implementation that comes with AOSP, including the fake hardware used for emulators, because it shows you a complete working example before you touch a real vehicle.</p><p>Then learn the connection to the real car. Most VHAL work is about mapping car messages to properties. That means understanding the CAN bus, how a message has an identifier and a payload, and how a DBC file describes which bits inside a message mean which signal, with scale and offset. A VHAL developer reads a DBC file and writes code that turns raw bits into clean properties, and does the reverse for writes. Be careful with units, timing and safety, because wrong values on a dashboard are not a small bug.</p><p>A wonderful practice project is building a simulated VHAL that feeds changing speed and gear values into the emulator, then watching your own app react. Once that works, you have touched every floor of the stack.</p><figure><img alt="" src="https://cdn-images-1.medium.com/max/1024/1*u9ifdj8i_ED1LfN35JWxbQ.png" /></figure><h3>Skills Beyond Android That Make You Stand Out</h3><p>Some of the most valuable skills are not Android at all.</p><ol><li>Linux basics. Comfort with the shell, processes, permissions, file systems and scripting. Know how the kernel boots and what a device driver does, even if you never write one.</li><li>Hardware bring up awareness. Know what a BSP is, what a bootloader does, and how an Android image is flashed to a board.</li><li>Automotive basics. Know what an ECU is, why cars contain many of them, how CAN and Ethernet carry data, and what diagnostics are. Learn the language of ignition states, wake up, sleep and power modes.</li><li>Safety and quality awareness. Learn why automotive software follows strict processes, why driver distraction rules exist, and why testing is far heavier here than in phone apps.</li><li>Debugging like a detective. Master logcat filtering, dumpsys, bugreports, tombstones, trace tools and reading kernel logs. When a head unit fails to wake from sleep, the log is your only witness.</li><li>Git and code review habits. Platform changes are small, careful and reviewed by several people. Learn to write clean commit messages and to explain why a change is needed.</li></ol><h3>Your Six Month Roadmap</h3><p>You can follow this plan with a few hours a day alongside a job.</p><ol><li>Month one. Automotive apps. Build a media app and a vehicle data app on the emulator. Learn Car App Library basics, driver distraction rules and the android.car managers.</li><li>Month two. AOSP foundations. Sync, build and boot AOSP. Master adb, logcat and dumpsys. Make one tiny change in the system and see it run.</li><li>Month three. Framework. Learn Binder and AIDL properly, study Car Service, understand SELinux, and add a custom service.</li><li>Month four. C plus plus and native services. Refresh the language, write a native Binder service, start it from init, and call it from Java.</li><li>Month five. Middleware subsystems. Explore EVS, audio, power management and display paths. Read the code, trace one full feature from app to native.</li><li>Month six. VHAL. Study properties, the AIDL interface and the reference implementation. Learn CAN and DBC, then build a simulated VHAL and a small end to end demo.</li></ol><h3>Mistakes to Avoid</h3><p>Do not try to learn the whole stack at once. Depth on one floor beats shallow knowledge of five. Do not skip C plus plus, because it is the price of entry below the framework. Do not ignore SELinux, because it will stop you at the worst moment. Do not only read theory. Build something every week, even if it is tiny, because platform knowledge only sticks when you break the system and fix it yourself. And do not fear the size of the code. Nobody understands all of AOSP. Strong engineers simply know how to find their way.</p><h3>Final Words</h3><p>Moving from phone apps to automotive is not starting over. It is going deeper. Every layer you learn makes you more valuable, because few engineers can follow a single signal from a car sensor all the way to a pixel on the screen. If you can, you will never be short of interesting work. Pick the first step tonight, open the emulator, and start.</p><h3>Thanks for reading Cross Commit</h3><p>Before you go:</p><figure><img alt="Follow Cross Commit: practical Swift, Kotlin and mobile AI stories from engineers who ship real apps" src="https://cdn-images-1.medium.com/max/1024/1*aojKTaZmGnisRaGyAL1g0g.png" /><figcaption>Follow Cross Commit on Medium: <a href="https://medium.com/cross-commit">medium.com/cross-commit</a></figcaption></figure><p>👉 <strong>Clap</strong> and <strong>follow</strong> <a href="https://medium.com/u/fe0a73470223">Mandapati Bhargava</a> so their next story lands in your feed 👏</p><p>👉 Want their stories by email? After you follow, tap <strong>Following</strong> on their profile and choose <strong>Email notifications on</strong> 📩</p><p>👉 <strong>Follow </strong><a href="https://medium.com/cross-commit"><strong>Cross Commit</strong></a> for practical iOS, Android and mobile AI stories from engineers who ship real apps</p><p>👉 Writing about Swift, Kotlin or mobile AI? Cross Commit is open to writers worldwide. Leave a response below and we’ll get in touch ✍️</p><img src="https://medium.com/_/stat?event=post.clientViewed&referrerSource=full_rss&postId=3b6096bd80f2" width="1" height="1" alt=""><hr><p><a href="https://medium.com/cross-commit/the-complete-guide-to-moving-from-android-apps-to-android-automotive-3b6096bd80f2">The Complete Guide to Moving from Android Apps to Android Automotive</a> was originally published in <a href="https://medium.com/cross-commit">Cross Commit</a> on Medium, where people are continuing the conversation by highlighting and responding to this story.</p>]]></content:encoded>
        </item>
        <item>
            <title><![CDATA[Linux IPC Explained Part 2: Shared Memory, Synchronization, Signals and Choosing the Right Tool]]></title>
            <description><![CDATA[<div class="medium-feed-item"><p class="medium-feed-image"><a href="https://medium.com/@bhargavamandapati/linux-ipc-explained-part-2-shared-memory-synchronization-signals-and-choosing-the-right-tool-e4dee4ce7215?source=rss-fe0a73470223------2"><img src="https://cdn-images-1.medium.com/max/1600/1*Am5Qm83ve3fUxb6jYeFd9w.png" width="1600"></a></p><p class="medium-feed-snippet">From Passing Notes to Breaking the Wall</p><p class="medium-feed-link"><a href="https://medium.com/@bhargavamandapati/linux-ipc-explained-part-2-shared-memory-synchronization-signals-and-choosing-the-right-tool-e4dee4ce7215?source=rss-fe0a73470223------2">Continue reading on Medium »</a></p></div>]]></description>
            <link>https://medium.com/@bhargavamandapati/linux-ipc-explained-part-2-shared-memory-synchronization-signals-and-choosing-the-right-tool-e4dee4ce7215?source=rss-fe0a73470223------2</link>
            <guid isPermaLink="false">https://medium.com/p/e4dee4ce7215</guid>
            <category><![CDATA[ipc]]></category>
            <category><![CDATA[programming]]></category>
            <category><![CDATA[kernel]]></category>
            <category><![CDATA[android-development]]></category>
            <category><![CDATA[android]]></category>
            <dc:creator><![CDATA[Mandapati Bhargava]]></dc:creator>
            <pubDate>Fri, 06 Nov 2026 12:31:02 GMT</pubDate>
            <atom:updated>2026-11-06T12:31:02.499Z</atom:updated>
        </item>
        <item>
            <title><![CDATA[Linux IPC Explained Part 1: How Processes Pass Data to Each Other]]></title>
            <description><![CDATA[<div class="medium-feed-item"><p class="medium-feed-image"><a href="https://medium.com/@bhargavamandapati/linux-ipc-explained-part-1-how-processes-pass-data-to-each-other-35a837a9ab05?source=rss-fe0a73470223------2"><img src="https://cdn-images-1.medium.com/max/1600/1*Dio-Kn7Q2wGWlQkBKhIZBg.png" width="1600"></a></p><p class="medium-feed-snippet">Why Two Processes Cannot Simply Talk</p><p class="medium-feed-link"><a href="https://medium.com/@bhargavamandapati/linux-ipc-explained-part-1-how-processes-pass-data-to-each-other-35a837a9ab05?source=rss-fe0a73470223------2">Continue reading on Medium »</a></p></div>]]></description>
            <link>https://medium.com/@bhargavamandapati/linux-ipc-explained-part-1-how-processes-pass-data-to-each-other-35a837a9ab05?source=rss-fe0a73470223------2</link>
            <guid isPermaLink="false">https://medium.com/p/35a837a9ab05</guid>
            <category><![CDATA[android-development]]></category>
            <category><![CDATA[programming]]></category>
            <category><![CDATA[ipc]]></category>
            <category><![CDATA[kernel]]></category>
            <category><![CDATA[android]]></category>
            <dc:creator><![CDATA[Mandapati Bhargava]]></dc:creator>
            <pubDate>Wed, 04 Nov 2026 12:31:01 GMT</pubDate>
            <atom:updated>2026-11-04T12:31:01.858Z</atom:updated>
        </item>
        <item>
            <title><![CDATA[Android System Services Explained: Why Your App Needs a Manager to Talk to Them]]></title>
            <description><![CDATA[<div class="medium-feed-item"><p class="medium-feed-image"><a href="https://medium.com/@bhargavamandapati/android-system-services-explained-why-your-app-needs-a-manager-to-talk-to-them-438dd851f7e0?source=rss-fe0a73470223------2"><img src="https://cdn-images-1.medium.com/max/2600/1*9jep6YpzGiZ-Gvd-tHkEww.png" width="2800"></a></p><p class="medium-feed-snippet">Almost every Android developer has typed a line like this without thinking much about it:</p><p class="medium-feed-link"><a href="https://medium.com/@bhargavamandapati/android-system-services-explained-why-your-app-needs-a-manager-to-talk-to-them-438dd851f7e0?source=rss-fe0a73470223------2">Continue reading on Medium »</a></p></div>]]></description>
            <link>https://medium.com/@bhargavamandapati/android-system-services-explained-why-your-app-needs-a-manager-to-talk-to-them-438dd851f7e0?source=rss-fe0a73470223------2</link>
            <guid isPermaLink="false">https://medium.com/p/438dd851f7e0</guid>
            <category><![CDATA[android]]></category>
            <category><![CDATA[service-design]]></category>
            <category><![CDATA[car-service]]></category>
            <category><![CDATA[programming]]></category>
            <category><![CDATA[android-development]]></category>
            <dc:creator><![CDATA[Mandapati Bhargava]]></dc:creator>
            <pubDate>Sun, 01 Nov 2026 00:31:01 GMT</pubDate>
            <atom:updated>2026-11-01T00:31:01.570Z</atom:updated>
        </item>
        <item>
            <title><![CDATA[Zygote in Android Automotive: The Cell Every App Is Born From]]></title>
            <description><![CDATA[<div class="medium-feed-item"><p class="medium-feed-image"><a href="https://medium.com/@bhargavamandapati/zygote-in-android-automotive-the-cell-every-app-is-born-from-1e3a2eef9127?source=rss-fe0a73470223------2"><img src="https://cdn-images-1.medium.com/max/1400/1*UBXlnjyegLQot9FLgt0org.png" width="1400"></a></p><p class="medium-feed-snippet">You sit in the driver seat and press the start button. A second or two later the instrument cluster lights up, the center display shows a&#x2026;</p><p class="medium-feed-link"><a href="https://medium.com/@bhargavamandapati/zygote-in-android-automotive-the-cell-every-app-is-born-from-1e3a2eef9127?source=rss-fe0a73470223------2">Continue reading on Medium »</a></p></div>]]></description>
            <link>https://medium.com/@bhargavamandapati/zygote-in-android-automotive-the-cell-every-app-is-born-from-1e3a2eef9127?source=rss-fe0a73470223------2</link>
            <guid isPermaLink="false">https://medium.com/p/1e3a2eef9127</guid>
            <category><![CDATA[programming]]></category>
            <category><![CDATA[linux]]></category>
            <category><![CDATA[zygote]]></category>
            <category><![CDATA[android-development]]></category>
            <category><![CDATA[android]]></category>
            <dc:creator><![CDATA[Mandapati Bhargava]]></dc:creator>
            <pubDate>Thu, 29 Oct 2026 12:31:02 GMT</pubDate>
            <atom:updated>2026-10-29T12:31:02.160Z</atom:updated>
        </item>
        <item>
            <title><![CDATA[Kernel Space and User Space in Android Automotive OS Explained Simply]]></title>
            <description><![CDATA[<div class="medium-feed-item"><p class="medium-feed-image"><a href="https://medium.com/@bhargavamandapati/kernel-space-and-user-space-in-android-automotive-os-explained-simply-e35464acd1e0?source=rss-fe0a73470223------2"><img src="https://cdn-images-1.medium.com/max/1500/1*Rgvipm3C7AGs992MpmrGQg.png" width="1500"></a></p><p class="medium-feed-snippet">If you work on Android Automotive OS, you hear these two terms all the time. A bug is in kernel space. That service runs in user space&#x2026;</p><p class="medium-feed-link"><a href="https://medium.com/@bhargavamandapati/kernel-space-and-user-space-in-android-automotive-os-explained-simply-e35464acd1e0?source=rss-fe0a73470223------2">Continue reading on Medium »</a></p></div>]]></description>
            <link>https://medium.com/@bhargavamandapati/kernel-space-and-user-space-in-android-automotive-os-explained-simply-e35464acd1e0?source=rss-fe0a73470223------2</link>
            <guid isPermaLink="false">https://medium.com/p/e35464acd1e0</guid>
            <category><![CDATA[android]]></category>
            <category><![CDATA[android-development]]></category>
            <category><![CDATA[android-app-development]]></category>
            <category><![CDATA[kernel]]></category>
            <category><![CDATA[programming]]></category>
            <dc:creator><![CDATA[Mandapati Bhargava]]></dc:creator>
            <pubDate>Mon, 26 Oct 2026 13:48:06 GMT</pubDate>
            <atom:updated>2026-10-26T13:48:06.738Z</atom:updated>
        </item>
        <item>
            <title><![CDATA[Build Your Own Android Automotive VHAL, Part 2: Code, Build and Test]]></title>
            <description><![CDATA[<div class="medium-feed-item"><p class="medium-feed-image"><a href="https://medium.com/@bhargavamandapati/build-your-own-android-automotive-vhal-part-2-code-build-and-test-2e731404753e?source=rss-fe0a73470223------2"><img src="https://cdn-images-1.medium.com/max/1400/1*UCEG2WKKcR_xl64K003gAA.png" width="1400"></a></p><p class="medium-feed-snippet">In Part 2 you turn the design from Part 1 into a running VHAL: you write the code, build it, start it on a device and prove it works from&#x2026;</p><p class="medium-feed-link"><a href="https://medium.com/@bhargavamandapati/build-your-own-android-automotive-vhal-part-2-code-build-and-test-2e731404753e?source=rss-fe0a73470223------2">Continue reading on Medium »</a></p></div>]]></description>
            <link>https://medium.com/@bhargavamandapati/build-your-own-android-automotive-vhal-part-2-code-build-and-test-2e731404753e?source=rss-fe0a73470223------2</link>
            <guid isPermaLink="false">https://medium.com/p/2e731404753e</guid>
            <category><![CDATA[android-app-development]]></category>
            <category><![CDATA[hardware]]></category>
            <category><![CDATA[vhal]]></category>
            <category><![CDATA[android]]></category>
            <category><![CDATA[programming]]></category>
            <dc:creator><![CDATA[Mandapati Bhargava]]></dc:creator>
            <pubDate>Sat, 24 Oct 2026 12:01:43 GMT</pubDate>
            <atom:updated>2026-10-24T12:01:43.880Z</atom:updated>
        </item>
        <item>
            <title><![CDATA[Build Your Own Android Automotive VHAL, Part 1: Concepts and Design]]></title>
            <description><![CDATA[<div class="medium-feed-item"><p class="medium-feed-image"><a href="https://medium.com/@bhargavamandapati/build-your-own-android-automotive-vhal-part-1-concepts-and-design-3dc04413f591?source=rss-fe0a73470223------2"><img src="https://cdn-images-1.medium.com/max/1400/1*kxuFMdwgNaGJYkTzLKy-MQ.png" width="1400"></a></p><p class="medium-feed-snippet">By the end of this two part series you will have a working Vehicle HAL, called VHAL, running inside an Android Automotive build. It will&#x2026;</p><p class="medium-feed-link"><a href="https://medium.com/@bhargavamandapati/build-your-own-android-automotive-vhal-part-1-concepts-and-design-3dc04413f591?source=rss-fe0a73470223------2">Continue reading on Medium »</a></p></div>]]></description>
            <link>https://medium.com/@bhargavamandapati/build-your-own-android-automotive-vhal-part-1-concepts-and-design-3dc04413f591?source=rss-fe0a73470223------2</link>
            <guid isPermaLink="false">https://medium.com/p/3dc04413f591</guid>
            <category><![CDATA[android-development]]></category>
            <category><![CDATA[android]]></category>
            <category><![CDATA[automotive]]></category>
            <category><![CDATA[programming]]></category>
            <category><![CDATA[android-aidl]]></category>
            <dc:creator><![CDATA[Mandapati Bhargava]]></dc:creator>
            <pubDate>Sat, 24 Oct 2026 01:22:17 GMT</pubDate>
            <atom:updated>2026-10-24T01:22:17.404Z</atom:updated>
        </item>
        <item>
            <title><![CDATA[How Vehicle Data Travels From an ECU to Your Android Automotive App]]></title>
            <description><![CDATA[<div class="medium-feed-item"><p class="medium-feed-image"><a href="https://medium.com/@bhargavamandapati/how-vehicle-data-travels-from-an-ecu-to-your-android-automotive-app-c265853a3697?source=rss-fe0a73470223------2"><img src="https://cdn-images-1.medium.com/max/2400/1*2DYDlwfcbOH9fz3OG5n4Xw.png" width="2400"></a></p><p class="medium-feed-snippet">When your Android Automotive app shows 80 kilometres per hour, that number has just crossed a wire, a kernel, a native service, a system&#x2026;</p><p class="medium-feed-link"><a href="https://medium.com/@bhargavamandapati/how-vehicle-data-travels-from-an-ecu-to-your-android-automotive-app-c265853a3697?source=rss-fe0a73470223------2">Continue reading on Medium »</a></p></div>]]></description>
            <link>https://medium.com/@bhargavamandapati/how-vehicle-data-travels-from-an-ecu-to-your-android-automotive-app-c265853a3697?source=rss-fe0a73470223------2</link>
            <guid isPermaLink="false">https://medium.com/p/c265853a3697</guid>
            <category><![CDATA[android]]></category>
            <category><![CDATA[programming]]></category>
            <category><![CDATA[productivity]]></category>
            <category><![CDATA[coding]]></category>
            <category><![CDATA[android-app-development]]></category>
            <dc:creator><![CDATA[Mandapati Bhargava]]></dc:creator>
            <pubDate>Wed, 14 Oct 2026 16:00:24 GMT</pubDate>
            <atom:updated>2026-10-14T16:09:25.866Z</atom:updated>
        </item>
        <item>
            <title><![CDATA[Hypervisors in Automotive: A Complete Guide from Basics to Advanced]]></title>
            <description><![CDATA[<div class="medium-feed-item"><p class="medium-feed-image"><a href="https://medium.com/@bhargavamandapati/hypervisors-in-automotive-a-complete-guide-from-basics-to-advanced-14a0cf661af7?source=rss-fe0a73470223------2"><img src="https://cdn-images-1.medium.com/max/2400/1*yETSbG-WRBn7GE9UIiUEqA.png" width="2400"></a></p><p class="medium-feed-snippet">How a single chip runs your speedometer, navigation, and music safely at the same time, and why this technology sits at the heart of the&#x2026;</p><p class="medium-feed-link"><a href="https://medium.com/@bhargavamandapati/hypervisors-in-automotive-a-complete-guide-from-basics-to-advanced-14a0cf661af7?source=rss-fe0a73470223------2">Continue reading on Medium »</a></p></div>]]></description>
            <link>https://medium.com/@bhargavamandapati/hypervisors-in-automotive-a-complete-guide-from-basics-to-advanced-14a0cf661af7?source=rss-fe0a73470223------2</link>
            <guid isPermaLink="false">https://medium.com/p/14a0cf661af7</guid>
            <category><![CDATA[operating-systems]]></category>
            <category><![CDATA[automotive]]></category>
            <category><![CDATA[hypervisors]]></category>
            <category><![CDATA[programming]]></category>
            <dc:creator><![CDATA[Mandapati Bhargava]]></dc:creator>
            <pubDate>Thu, 08 Oct 2026 15:43:00 GMT</pubDate>
            <atom:updated>2026-10-08T15:53:07.383Z</atom:updated>
        </item>
    </channel>
</rss>