loader
Generating audio...

arxiv

Paper 2503.04003

Understanding and Detecting Compatibility Issues in Android Auto Apps

Authors: Moshood Fakorede, Umar Farooq

Published: 2025-03-06

Abstract:

Mobile platforms now power not only smartphones but also in-vehicle systems like Android Auto and CarPlay. Despite an ecosystem of over 3.5 million Android apps and more than 200 million Android Auto-compatible vehicles, only a few hundred apps have been adapted for automotive use. To better understand this gap, we studied 147 reported issues related to Android Auto and identified their root causes. We found that more than 70% of issues result from UI incompatibilities, 24% from media playback errors, and around 5% from failures in voice command handling, showing a lack of effective tools for developers. We introduce CarCompat, a static analysis framework that detects compatibility problems in Android Auto apps. CarCompat constructs a Car-Control Flow Graph (CCFG) to capture interactions among app components, lifecycle methods, and platform-specific callbacks. It applies specialized checkers to detect UI violations, media playback errors, and issues with voice command handling. We evaluated CarCompat on a dataset of 54 Android Auto apps and detected 25 new issues, 4 of which were confirmed by developers, and 2 developers have already released their fixes. The results show that CarCompat helps developers identify and fix compatibility issues, improving the in-vehicle experience.

Paper Content:
Page 1: Understanding and Detecting Compatibility Issues in Android Auto Apps Moshood Fakorede Louisiana State University Baton Rouge, LA, USA mfakor1@lsu.eduUmar Farooq Louisiana State University Baton Rouge, LA, USA ufarooq@lsu.edu ABSTRACT Mobile platforms now power not only smartphones but also in- vehicle systems like Android Auto and CarPlay. Despite an ecosys- tem of over 3.5 million Android apps and more than 200 million Android Auto-compatible vehicles, only a few hundred apps have been adapted for automotive use. To better understand this gap, we studied 147 reported issues related to Android Auto and identified their root causes. We found that more than 70% of issues result from UI incompatibilities, 24% from media playback errors, and around 5% from failures in voice command handling, showing a lack of effective tools for developers. We introduce CarCompat , a static analysis framework that detects compatibility problems in Android Auto apps. CarCom- patconstructs a Car-Control Flow Graph (CCFG) to capture inter- actions among app components, lifecycle methods, and platform- specific callbacks. It applies specialized checkers to detect UI vi- olations, media playback errors, and issues with voice command handling. We evaluated CarCompat on a dataset of 54Android Auto apps and detected 25new issues, 4of which were confirmed by developers, and 2developers have already released their fixes. The results show that CarCompat helps developers identify and fix compatibility issues, improving the in-vehicle experience. CCS CONCEPTS •Software and its engineering →Software testing and de- bugging ;Software reliability ;•Human-centered computing → Ubiquitous and mobile computing . KEYWORDS Car Apps, Compatibility Issues, Static Analysis, Android Auto ACM Reference Format: Moshood Fakorede and Umar Farooq. 2025. Understanding and Detect- ing Compatibility Issues in Android Auto Apps. In Proceedings of ACM Conference (Conference’17). ACM, New York, NY, USA, 12 pages. https: //doi.org/XXXXXXX.XXXXXXX 1 INTRODUCTION The proliferation of mobile platforms has revolutionized the inter- action of users with technology, extending the influence of mobile devices in various domains, including the automotive sector. Cur- rently, the Google Play Store hosts more than 3.5million mobile apps [ 14] and there are more than 200million Android Auto com- patible vehicles as of 2024 [ 64], reflecting the vast and growing Conference’17, July 2017, Washington, DC, USA 2025. ACM ISBN 978-x-xxxx-xxxx-x/YY/MM. . . $15.00 https://doi.org/XXXXXXX.XXXXXXX (a) On Phone(b) On Car ScreenFigure 1: Example Android Auto compatibility issue in an app, (a) app works fine on the phone. (b) Due to compati- bility issues with Android Auto, the app does not appear as intended on the car screen. ecosystem of apps available to users. However, despite this ex- tensive collection of apps, only a small fraction – a few hundred apps1– are compatible with Android Auto. This stark contrast highlights a critical gap in the mobile app ecosystem and raises important questions about the barriers that hinder the development and deployment of car-compatible apps. Android Auto Platform. Introduced in 2015, Android Auto en- ables the integration of Android apps into the vehicle’s infotainment system [ 19]. It provides a simplified interface optimized for in-car use, focusing on minimizing distractions through voice commands, and simplified touch inputs. Figure 2 presents an example of an Android phone connected to a vehicle’s infotainment system while running a navigation and a media player app. Specifically, Android- Auto compatible apps run on the vehicle using Car Manager, Car service (running on the Phone ), Vehicle’s hardware abstraction layer (HAL), and Vehicle’s multiple electronic control units (ECUs). Even though these component help to deploy and streamline the interfacing for the apps, still developers required to (i)handle UI optimizations for vehicle’s screen since car screens are quite different in sizes and aspect ratio, (ii)handle voice commands to provide distraction-free experience while driving on the road. To ensure that app developers implement them properly, Google Play performs a manual review for compliance before approving apps for distribution [23]. Formative Study. Given the vast number of apps available on the broader Android platform, the fact that only 163 apps (as of Septem- ber 2024) are Android Auto-compatible suggests that developers face substantial challenges when adapting their apps for this envi- ronment. This led us to conduct a formative study to investigate 1There are only 368 apps for Android Auto on Google Play as of Sept. 2024; Sources in- clude https://www.android.com/auto/ and https://play.google.com/store/apps?device= cararXiv:2503.04003v1 [cs.SE] 6 Mar 2025 Page 2: Conference’17, July 2017, Washington, DC, USA Moshood Fakorede and Umar Farooq Android-Auto AppCar Manager (android.car.*)Car ServiceVehicle HAL(IvehicleHIDL Interface)Vehicle ECUs(Vehicle bus (e.g., CAN)) Figure 2: An illustration of an Android Phone and a Vehicle connection while running Google Maps. and understand these challenges in detail. We wanted to uncover the specific technical, procedural and conceptual barriers that have resulted in such a limited number of automotive-compatible apps. To conduct this investigation, we focus on open-source apps from F-Droid [ 25] by collecting 4,378apps in total. We filter for those with Android Auto features in their AndroidManifest.xml files, identifying 42apps with developers’ intent to add Auto support. We subsequently analyzed the repositories of these apps, identifying 147Android Auto related issues across 19repositories. Our analysis reveals that these issues fall primarily into three categories: (i) UI incompatibilities (as shown in Figure 1), (ii)media playback challenges, and (iii)difficulties with voice command integration. This provided valuable insights into the challenges developers face in building car-compatible apps. State of The Art. Recent work [ 83] has focused on testing message synchronization and UI inconsistencies between an Android phone and a vehicle’s screen. However, this study primarily addresses messaging functionality and overlooks broader challenges such as UI compatibility, media playback, and voice command integration. Beyond this, Android Lint [ 34] includes some rules for media play- back but does not cover the full range of issues. Although existing tools, such as FicFinder [ 75], Cider [ 37], and Pivot [ 78], address some of the compatibility issues in Android apps, these tools are not designed to handle Android Auto’s requirements. Cider focuses on detecting callback API evolution issues, FicFinder identifies fragmentation-induced compatibility problems, and Pivot learns API-device correlations, yet none of these tools account for Android Auto’s compatibility requirements. In addition, other static analysis efforts have focused on security and vulnerability detection in An- droid Auto apps [ 49,50]. Nonetheless, existing solutions fall short in offering developers automated tools for detecting compatibility issues in Android Auto apps. Overview of CarCompat .Our work builds on this by conduct- ing a more comprehensive analysis and introducing CarCompat , which detects and resolves a wider range of compatibility issues in Android Auto apps. CarCompat is a static analysis designed to detect compatibility issues in Android Auto apps. While exist- ing tools primarily focus on general Android app compatibility, CarCompat specifically addresses UI constraints, media playback failures, and voice command handling - key challenges unique to the Android Auto ecosystem. The analysis builds a Car-Control Flow Graph (CCFG) to model interactions between app compo- nents, lifecycle methods, and platform-specific callbacks, enabling precise detection of compatibility violations. To evaluate CarCompat , we applied it to a diverse set of 54 Android Auto apps and detected 25compatibility issues, identify- ing 12X more issues than Android Lint [ 34] (baseline tool) whilemaintaining no false positives. The tool efficiently analyzes apps of varying complexity, demonstrating its applicability to both open- source and commercial Android Auto apps. Additionally, we re- ported the detected issues to developers, with four acknowledging the problems and two already issuing fixes. By accurately iden- tifying real-world compatibility violations, CarCompat provides developers with actionable insights to improve platform compliance and the in-vehicle user experience. To summarize, this work makes the following key contributions. •We present the first comprehensive study focused on un- derstanding the challenges faced by developers in creating Android Auto-compatible apps. •We propose Car Control Flow Graph (CCFG), which models the control flow specific to Android Auto apps based on the available features in the apps. •We developed a novel static analysis specifically designed to identify compatibility issues in Android Auto apps, includ- ing UI issues and problems with media playback and voice commands. •We evaluate our CarCompat on real-world apps, demon- strating its effectiveness by detecting 25issues related to Android Auto compatibility. The rest of this paper is organized as follows: Section 2 provides background on Android Auto development. Section 3 describes our empirical study methodology. Section 4 introduces CarCompat , detailing its static analysis techniques. Section 5 presents the evalu- ation, discussing effectiveness and limitations, followed by threats to validity in Section 6. Section 7 covers related work, and Section 8 concludes this work. 2 BACKGROUND This section provides background on programming models for An- droid and Android Auto apps, followed by a discussion of Android Auto app types. 2.1 App Programming Model The Android app programming model is built on a component- based architecture, where activities, services, broadcast receivers, and content providers define the core structure of an app [ 4]. Ac- tivities are used for user interactions through UI, while services handle background operations like media playback and messaging. For user interface design, XML-based layouts or Jetpack Com- pose [ 5] allow developers to define the app’s visual structure. App logic is typically written in Kotlin or Java. Handling tasks asyn- chronously, especially those related to network or media, is essential for delivering smooth user experiences. This event-driven model is effective for mobile environments, but when extended to more constrained platforms like Android Auto, developers need to ac- count for additional factors such as safety, minimal interaction, and hands-free operation. 2.2 Android Auto App Model The Android Auto app model adapts traditional Android apps for in-vehicle use, emphasizing safety and minimal driver distraction [22]. Figure 3 presents the lifecycle for the Android Auto app, which Page 3: Understanding and Detecting Compatibility Issues in Android Auto Apps Conference’17, July 2017, Washington, DC, USA onCreateSession()CarAppServiceonCreate()onCreateScreen()onStart()onResume()Car App RunningonPause()onStop()onDestroy()NewIntent()User opens another appApp InvisibleOS destroys the appUser re/opens the car appApp visibleUser caninteractuser opens the car app again Figure 3: Lifecycle of an Android Auto app, showing callbacks for screen, session, and user interaction. is centered around the CarAppService , which manages the interac- tion between the app and the vehicle’s head unit. The app lifecycle begins with onCreateSession() , which establishes a session for user interaction followed by onCreate() . Once the session is active, onCreateScreen() sets up the UI, and onStart() andonResume() ensure the app is running and visible to the user. During user inter- action, the app remains active until the user switches to another app, triggering onPause() andonStop() . If the app is reopened, it resumes from onStart() , and if necessary, the app lifecycle concludes with onDestroy() , if the OS needs to free resources or terminate the app. Next, we provide a brief description of all the key components, including the Auto library, host system, templates, template restrictions, CarAppService, and session management. Car App Library. The car app library provides developers with pre-built templates and APIs optimized for Android Auto, abstract- ing complexities related to vehicle hardware [ 21]. By adhering to the library’s guidelines, developers can ensure compliance with safety requirements, enabling consistent UI and interaction patterns across diverse car systems. Host System. Android Auto apps run on the user’s phone, while the vehicle’s infotainment acts as the host. The host renders the app’s UI and handles inputs such as touch or voice commands, ensuring a seamless integration between the app’s logic on the phone and the in-car display. Templates. Apps must use predefined templates for UI compo- nents, ensuring a safe, glanceable interface suitable for driving. Templates are tailored for specific app types, such as media play- back, messaging, and navigation, providing large touch targets and simplified designs to minimize distractions. Template Restrictions. Android Auto imposes strict limitations on customization to maintain safety. Developers are restricted to using specific templates that limit information display and interaction complexity, ensuring that drivers are not overwhelmed by excessive content or controls. CarAppService. The CarAppService serves as the entry point for all Android Auto apps, managing the connection between the app and the vehicle’s head unit. It handles the app’s lifecycle, including starting and stopping based on vehicle events, and provides access to APIs that allow interaction with the vehicle’s hardware. Sessions. Android Auto apps operate within sessions, which rep- resent the ongoing interaction between the user and the app. The CarAppService manages these sessions, ensuring proper resource handling and responsiveness during in-car use.Voice Interaction. Voice commands, a core interaction method in Android Auto, are supported through Google Assistant [ 17] or custom voice APIs. These allow drivers to control apps hands-free, enhancing safety by reducing the need for manual input. Surface Rendering. Unlike standard Android apps, the vehicle’s system renders the UI for Android Auto apps, ensuring consistency across different vehicle models and reducing the performance de- mands on the phone. The Android Auto app model, built around these components, makes sure that apps maintain a safe, consistent, and user-friendly experience while minimizing driver distraction. 2.3 Android Auto App Types Android Auto initially supported four app categories – Media, Mes- saging, Navigation, and Point of Interest (POI) Apps – to ensure a distraction-free in-vehicle experience [ 20]. In the summer of 2024, Google announced additional categories, including the Internet of Things (IoT), Weather, Video, Games, and Browsers, which are being gradually rolled out [60]. Media apps provide audio playback services, such as music and podcasts, and must integrate with the MediaBrowserService API to enable hands-free control via voice commands. Messaging apps facilitate voice-based communication by reading incoming mes- sages aloud and allowing users to reply using the MessagingStyle API. Navigation apps offer turn-by-turn directions and traffic up- dates while adhering to Android Auto’s UI and map rendering guidelines. POI apps assist users in locating businesses, parking locations, and other destinations while ensuring a seamless search and filtering experience. The newly introduced categories extend Android Auto’s func- tionality beyond traditional infotainment. IoT apps enable users to monitor and control smart devices remotely, ensuring minimal driver interaction. Weather apps provide real-time updates and may integrate with navigation features to assist in route planning. Video, game, and browser apps are restricted to use only when the vehicle is parked to prevent driver distraction. While these additional categories expand Android Auto’s capa- bilities, developers must adapt their apps to meet evolving platform constraints and compliance requirements, presenting new compati- bility challenges. 3 FORMATIVE STUDY Our formative study on Android Auto issues aims to address two fundamental questions: Page 4: Conference’17, July 2017, Washington, DC, USA Moshood Fakorede and Umar Farooq Table 1: Category distribution of Android Auto Apps discov- ered in Corpus-L . Categories Description # of apps Media Allows users to access audio content like music, radio, and audiobooks.21 (50.0%) Messaging Enables message notifications, text-to- speech, and voice-activated replies.18 (42.9%) Navigation Offer turn-by-turn navigation to guide dri- vers to their destinations.2 (4.8%) POI Apps for discovering and navigating to points of interest, including parking.1 (2.3%) RQ1 (Landscape) :Which apps are attempting to incorporate Android Auto features? What are the common categories? RQ2 (Common Issues & Causes) :What are the basic types of Android Auto compatibility issues? Are there any common causes? For each question, we first present the corpus and methodology, then discuss the results and implications. 3.1 RQ1: Landscape First, we analyze the prevalent approaches employed to integrate Android Auto compatibility in real-world Android apps. Corpus-L. We collect Android apps from F-Droid [ 25] and GitHub [30], mainly for two reasons. First, F-Droid hosts one of the largest collections of open-source Android apps, including several widely used apps such as K-9 Mail [ 40], Spotube [ 41], AntennaPod [ 6]. Second, the availability of source code enables our formative study to offer a detailed analysis of change history and issues. We col- lected all available apps from F-Droid, resulting in a dataset of 4,378 Android apps, which we refer to as Corpus-L . Methodology. To analyze the presence of Android Auto support for the large volume of apps in Corpus-L we developed an automatic binary analysis tool to detect the availability of Android Auto fea- tures – CarFeat . For each app in the corpus, CarFeat first parses its manifest file (i.e., AndroidManifest.xml ) to check if there is a metadata entry that declares support for Android Auto, and what Android-Auto capabilities the app supports by checking the car app category [20] declared in the intent-filter of the car service. Results. Table 1 presents the statistical findings from the first phase of our study. Out of 4,378apps in Corpus-L , only 42 apps were found that support Android Auto. As expected, the majority of these apps belong to the media category, reflecting the dominant role that car infotainment systems play in media consumption. The messaging apps account for 32.2% of the total, which are useful for the communication needs during driving. In contrast, navigation and POI apps are the least represented categories, indicating a limited development focus in these areas. As mentioned in Sec. 2.3, the remaining categories were announced very recently (summer 2024), hence, we did not find apps from those categories. 3.2 RQ2: Common Issues and Causes Corpus-R. To investigate the issues in more detail, we focus on the subset of apps that have explicitly added support for Android Auto and have reported issues in their repositories. This refined dataset is referred to as Corpus-R . We focus exclusively on repositories hosted on source code man- agement platforms (e.g., GitHub [ 30], GitLab [ 31]), as these plat- forms offer transparent issue tracking and detailed reports. TheTable 2: Breakdown of Android Auto App Issues in Different Categories for Corpus-R . Issue Category Number of Issues Media Playback functionality 104 (70.7%) User Interface problems 36 (24.4%) Voice Command problems 7 (4.8%) Total 147 traceability of these reports allows us to closely analyze the specific challenges developers face when integrating Android Auto. Corpus- Rconsists of 27Android repositories, including several popular projects available on the Google Play Store, such as Retro Music Player [ 62](with over a million downloads on Google Play and 3.9K stars on GitHub) and Spotube [ 41] (with over a million downloads on Google Play and 28K stars on GitHub). Methodology. We manually examine each Android Auto issue and classify them based on their manifestation. Following analysis and discussion, all authors reached a consensus on three primary categories: T1- Media Playback, T2- User Interface, and T3- Voice Commands. Table 2 provides a summary of the analyzed issues, with media playback accounting for the largest share, aligning with its prominence among Android Auto apps. These categories capture the most common challenges developers face, particularly in adapt- ing app functionality to meet Android Auto’s unique constraints. T1: Media Playback. Media playback issues relate to the handling of audio content within the Android Auto environment. These problems can affect the user experience by causing interruptions, synchronization problems, or crashes. Table 3 summarizes several examples of media playback issues identified across prominent repositories. These issues highlight common failures, such as in- correct playback behavior and app instability, which impede the reliability of media functionality in Android Auto apps. Table 3: Example Media Playback Issues in Android Auto Apps. App Issue IDIssue Description InnerTune [82] 1412 Performing a search on Android Auto causes a brief flash of the home screen, and then the app displays a blank screen. Antennapod [6] 2965 After completing a podcast episode and moving on to play the next podcast in Android Auto, the app displays the list of available episodes instead of showing infor- mation about the next podcast being played. VinylMusicPlayer [73]348 The app crashes when a song is liked using Android Auto. Causes: The primary causes of media playback issues in Android Auto apps stem from API misuse and handling large media files. Improper use of Android Auto’s media playback APIs, or limita- tions within these APIs, can lead to suboptimal performance, such as audio dropouts, delays, or unexpected behavior during play- back. Additionally, managing large media files or streaming con- tent efficiently presents significant challenges. Inadequate resource allocation when handling these large files can result in playback in- terruptions, crashes, or degraded performance, making it essential for developers to carefully manage resources in these scenarios. T2: User Interface. User interface issues are related to adapting an app’s UI to meet the specific requirements of Android Auto. This includes ensuring that the interface is simple, clear, and safe to use while driving. UI-related problems can significantly impact the Page 5: Understanding and Detecting Compatibility Issues in Android Auto Apps Conference’17, July 2017, Washington, DC, USA Table 4: Example UI issues when Apps used in Android Auto. App Issue IDIssue Description Harmony- Music [3]111 No user interface in Android-Auto. Podcini [79] 57 The Android Auto UI has been broken for several re- leases. RiMusic [28] 2796 The app lacks a quick selection home menu, and the ability to display or search for new music. Ultrasonic [72] 1256 In the “Artists” view, nested directories are not dis- played, resulting in empty lists when accessing directo- ries containing subfolders, preventing music playback from those folders. user experience by causing navigation difficulties or preventing access to essential features. Table 4 highlights several examples of UI issues encountered in popular Android Auto-compatible apps. These examples illustrate the common problems, such as broken interfaces (also shown in Figure 1 for Harmony-Music [ 3]), missing navigation elements, and incomplete views, which complicate the user experience and hinder the app’s usability within the Android Auto environment. Causes: The strict limitations on UI customization and the need to ensure that the interfaces are safe to use while driving can make it difficult for developers to maintain the branding and functionality of their app. Also, the limited support in third-party UI libraries in- cluding React-Native [ 51] and Flutter [ 33], pose a major restriction for developers utilizing these packages, often leading to them not adding a usable interface to their Android Auto supported app [ 1]. T3: Voice Commands. These are issues concerning the integration and functionality of voice commands with Android Auto. Given that voice control is the primary interaction method while driving, problems with recognizing or executing custom voice commands can significantly obstruct the usability of the app. Moreover, dif- ficulties in integrating with Google Assistant can cause further complications, as many apps rely on this integration for voice- based navigation and control [ 17]. Table 5 presents examples of voice command-related issues identified in popular Android Auto- compatible apps. These problems include failure to support essential voice commands, improper app behavior when using the micro- phone, and failure to execute requested tasks, all of which diminish the overall reliability of voice control functionality within the An- droid Auto environment. Causes: Implementing robust voice control can be challenging due to the need for precise command recognition, and the need for seamless integration with the Android Auto environment. Google provides high level APIs with Google Assistant to handle voice commands, which are designed to simplify the integration process. However, developers may face challenges due to a lack of familiar- ity with these APIs, leading to implementation difficulties. While the APIs abstract away much of the complexity, integrating voice commands effectively still requires a solid understanding of the API capabilities, constraints, and proper implementation practices. Misuse or incomplete implementation can result in unreliable or inconsistent voice command functionality. Discussion on Common Causes. A common theme among these three issues is an oversight by developers when implement- ing all the necessary requirements defined by the car app quality guidelines, depending on the app category, when adding support for Android Auto. The absence of automated testing tools furtherTable 5: Example Voice Command problems in Android Auto Apps. App Issue IDIssue Description Ultrasonic [72] 827 App fails to support all required voice commands, such as not switching to the requested audio track when a voice command is issued. VinylMusicPlayer [73]376 Required voice commands not supported, such as failing to start the requested track after recognizing the com- mand. Jellyfin- Android [39]226 Improper app performance (silent audio when the mi- crophone is inactive), and driver distraction features, such as not pausing or lowering audio volume during microphone use. exacerbates the prevalence of these issues, compounding the chal- lenges in both the development and deployment phases of Android Auto-compatible apps. 4 CAR COMPATIBILITY ANALYSIS To address the challenges developers face in ensuring Android Auto compatibility, we introduce CarCompat , a novel static analysis framework designed to systematically detect and analyze issues in Android Auto apps. CarCompat focuses on the three primary issue types identified in our study: T1: Media Playback Issues ,T2: User Interface Issues , and T3: Voice Command Issues . For each issue type, CarCompat employs dedicated checkers — C1, C2, and C3 — to detect specific compatibility problems. In the following, we describe the architecture of CarCompat , the construction of the Car-Control Flow Graph (CCFG), and the compatibility checks. 4.1 Overview of CarCompat Figure 4 illustrates the overview of CarCompat . The analysis starts by analyzing of the app’s configuration files (i.e., AndroidMani- fest.xml ), to extract metadata related to Android Auto features. This metadata includes declared app categories (e.g., media, mes- saging, navigation) and associated services or intent filters. Using this metadata, CarCompat constructs the Car-Control Flow Graph (CCFG) , which models the unique control flow and interactions within Android Auto apps. The CCFG captures critical components, methods, and callbacks required for Android Auto functionality. With the CCFG in place, CarCompat applies issue-specific check- ers (C1, C2, C3) to evaluate the app’s compatibility with Android Auto requirements. The analysis results provide actionable insights for developers, enabling them to identify and address compatibility issues effectively. 4.2 Car-Control Flow Graph Construction The CCFG builds on the inter-procedural control flow graph (ICFG) as described in FlowDroid [ 9]. It incorporates additional edges and nodes specific to Android Auto apps, which rely heavily on callback APIs triggered by the infotainment system. These callbacks, such as those for media playback, voice commands, and UI interactions, often lack direct invocation points in the app’s code, making them challenging to detect with traditional static analysis tools. To address this, CarCompat extracts metadata from configura- tion files (e.g., automotive_app_desc.xml ) and identifies compo- nents such as MediaBrowserService ,IntentService , and custom UI templates. The CCFG links these components to their lifecycle methods and callbacks, ensuring a comprehensive representation of Page 6: Conference’17, July 2017, Washington, DC, USA Moshood Fakorede and Umar Farooq <application>….<meta-data android:name="com.google.android.gms.car.application"android:resource="@xml/app_desc"/>…</application> AndroidManifest.xmlAndroid Auto features & Metadata⎯Media Playback Checker⎯User Interface Checker⎯Voice Command Checker Android AutoCompatibility ResultsStatic Analysisapp_desc.xmlConfiguration Analysismore.xml….…Car-Control Flow GraphAndroid AutoApp Figure 4: Overview of CarCompat : the process starts from configuration analysis to extract Android Auto features and metadata, followed by static analysis, and generating Android Auto compatibility results. the app’s control flow. Consider the example in Code 1, where a me- dia service is declared in the app’s manifest file. The CCFG identifies theSomeMediaBrowserService class as responsible for handling media browsing. It adds edges to its callbacks (e.g., onGetRoot() , onLoadChildren() ) and validates their proper implementation for Android Auto compatibility. Code 1: Example AndroidManifest.xml of an Android Auto App with Media Player support. 1<application> 2 ... 3 <meta-data android:name="com.google.android.gms.car.application" android:resource="@xml/automotive_app_desc"/> 4 ... 5 <service android:name=".SomeMediaBrowserService" android:exported ="true"> 6 <intent-filter> 7 <action android:name="android.media.browse. MediaBrowserService"/> 8 </intent-filter> 9 </service> 10 ... 11</application> 4.3 Compatibility Checkers CarCompat employs three specialized checkers: C1– Media Play- back Checker, C2– User Interface Checker, and C3– Voice Com- mand Checker, to address the specific issue types identified in our study (Sec. 3.2). C1 – Media Playback Checker. This check focuses on ensuring that media playback functionality complies with Android Auto requirements. This checker analyzes the implementation of the MediaSession to verify that critical callbacks, such as onPlay() , onPause() ,onSkipToNext() , and onSeekTo() , are properly in- voked and handle user-initiated playback commands correctly. It also evaluates the implementation of MediaBrowserService meth- ods, including onGetRoot() and onLoadChildren() , to ensure that the app’s media catalog is accessible and navigable through Android Auto. Furthermore, the checker validates voice-driven play- back functionality by analyzing the onPlayFromSearch() callback, which enables safe and hands-free media control. Additionally, it inspects the app’s resource management practices to detect po- tential issues related to handling large media files, API misuse, or insufficient resource allocation, which could degrade playback performance or cause crashes. C2 – User Interface Checker. The UI Checker addresses com- patibility issues in Android Auto apps by evaluating compliancewith strict UI guidelines designed for safety and usability. It en- sures that apps adhere to predefined templates, such as MediaTem- plate ,NavigationTemplate , and PlaceListMapTemplate , which enforce distraction-free and glanceable interfaces. The checker ver- ifies proper implementation of critical methods like onGetRoot() andonLoadChildren() within the MediaBrowserService class. These methods are essential for defining the app’s root menu struc- ture and populating the media catalog in a navigable format. Ad- ditionally, it evaluates the handling of hierarchical UI elements, ensuring that nested directories in the media catalog are rendered correctly. Issues such as blank screens or empty lists are flagged as critical compatibility problems. C3: Voice Command Checker. This compatibility check ensures seamless integration of voice commands within Android Auto apps. It analyzes the implementation of callbacks like onPlayFrom- Search() to verify that essential voice commands are supported and executed as intended. The checker also evaluates the app’s integration with Google Assistant APIs, which facilitate hands-free operation. This includes the ability to issue voice commands and receive voice-guided responses. Additionally, it inspects the app’s audio management practices to ensure that playback is paused or volume is lowered appropriately during voice interactions, thereby minimizing distractions for the driver. Furthermore, the checker detects missing or incorrect fallback mechanisms for unsupported or unrecognized commands, ensuring that the app behaves robustly and reliably under all conditions. 5 EVALUATION This section evaluates CarCompat on real-world Android Auto apps to demonstrate its applicability, effectiveness, comparisons with existing tools, and usefulness in detecting issues. Specifically, we aim to answer the following questions. RQ3 (Applicability): CanCarCompat be applied to real-world apps and find issues? RQ4 (Effectiveness): CanCarCompat effectively and precisely detect Android Auto compatibility issues? RQ5 (Comparison with Existing Tools): How does CarCom- patcompare with existing Android Auto analysis tools in terms of issue coverage and accuracy? RQ6 (Distribution): What is the distribution of compatibility issues across these categories in real-world Android Auto apps? RQ7 (Usefulness): Do developers agree with the compatibility issues detected by CarCompat , and how often are these issues acknowledged or addressed? Page 7: Understanding and Detecting Compatibility Issues in Android Auto Apps Conference’17, July 2017, Washington, DC, USA 5.1 Methodology To evaluate compatibility issues in Android Auto apps, we compiled a dataset of open-source apps from GitHub by searching reposito- ries with Android Auto related declarations in their AndroidMan- ifest.xml . This dataset, Corpus-G , consists of 54 Android Auto apps with a total of 22 .8million lines of code. The availability of source code enables a direct comparison between CarCompat and Android Lint [ 34], facilitating a comprehensive assessment of their detection capabilities. The collected apps differ in functionality, size, and complexity- a well-rounded sample- for analyzing compatibility challenges in Android Auto development. Our experiments were conducted on an Apple MacBook Pro equipped with Intel Core i7 2.7 GHz Quad-Core processors and 16GB of memory, reflecting a typical system configuration acces- sible to most app developers. For testing on a physical device, we utilized a Google Pixel 7a running Android version 14.0. 5.2 RQ3: Applicability To evaluate the applicability of CarCompat , we analyzed its per- formance on two datasets: Corpus-G , consisting of open-source Android Auto apps, and Corpus-P , comprising proprietary com- mercial apps. The results demonstrate that CarCompat effectively analyzes different types of Android Auto apps while maintaining reasonable analysis times. Table 6: Summary of CarCompat results on Corpus-G . Number of of Apps in Corpus-G 54 Number of Lines of Code 22.8M GeoMean CarCompat Analysis Time 9.5 Seconds Number of Apps with Issues 14 (25%) Analysis on Open-Source Apps (Corpus-G). Table 6 summa- rizes CarCompat ’ performance on Corpus-G, which includes 54 open-source Android Auto apps with a total of 22.8 million lines of code. The tool maintained a geometric mean analysis time of 9.5 seconds per app, demonstrating its scalability to large code- bases. Notably, CarCompat detected compatibility issues in 14 apps (25%), highlighting the prevalence of compliance challenges even in open-source projects. Results on Google Play Apps. To evaluate CarCompat on widely used commercial apps, we applied it to Corpus-P , a dataset of 13 apps from Google Play. The results, summarized in Table 7, indicate that CarCompat maintains an efficient analysis time, with a geometric mean of 7.2 seconds per app. Compatibility issues were identified in 7 of the 13 commercial apps, suggesting that even professionally developed apps face compliance challenges. Among the tested apps, Audiomack [ 11] exhibited the highest number of detected issues, while others, such as Amazon Music [ 2] and Pandora [ 57], also showed violations. These findings reinforce the need for automated compatibility analysis in commercial app development. Answer 3: CarCompat is applicable to both open-source and commercial Android Auto apps, detecting compatibility issues ef- ficiently. Its scalability allows analysis across diverse codebases, enabling early issue detection and compliance with platform requirements.Table 7: Summary of CarCompat results on Corpus-P . #App Name Size (MB) Issues Time (s) 1 Amazon Music: Songs & Podcasts [2] 79 1 8 2 Audiobooks.com: Books [10] & More 29.4 0 6 3 Audiomack: Music Downloader [11] 44.5 4 10 4 Deezer: Music & Podcast Player [15] 40.5 0 7 5 Pandora - Music & Podcasts [57] 68.3 1 17 6 Poweramp: Music Player [58] 16.5 1 2 7 Radio FM [29] 44.1 1 7 8 SiriusXM: Music, Sports & News [65] 77.8 0 11 9 SoundCloud: Play Music & Songs [67] 74.6 1 8 10 Spotify: Music and Podcasts [68] 26.5 0 5 11 TIDAL Music: HiFi sound [69] 77.4 1 15 12 TuneIn Radio: Music & Sports [71] 48.6 1 7 13 YouTube Music [32] 48.3 0 4 Total Issues/GeoMean Time (s) 11 7.2 5.3 RQ4: Effectiveness of CarCompat To evaluate the effectiveness of CarCompat , we assessed its ac- curacy on 14 Android Auto apps where either Android Lint or CarCompat detected at least one compatibility issue in RQ3. The evaluation followed a two-step process. First, we performed static analysis on the selected apps to identify potential compatibility violations. Next, we tested these apps in Car mode to verify the detected issues in a real execution environment. All identified issues were manually validated, confirming their impact on app behavior. As discussed later in this paper, the verified issues were also reported to developers, reinforcing the practical rel- evance of CarCompat . This evaluation examines the tool’s ability to detect Auto compatibility violations accurately while minimizing incorrect detections. The results are summarized in Table 8, under theCarCompat columns. Issue Detection Accuracy. Across the evaluated apps, CarCom- patcorrectly identified 25 compatibility issues without reporting any false positives or missing any expected violations. The ab- sence of false negatives shows that the tool successfully captures all relevant compatibility issues, while the lack of false positives indi- cates that its detections are highly reliable. These results highlight CarCompat ’s strong detection capabilities, providing developers with precise and actionable findings. Discussion. As mentioned previously, cross-platform apps may implement Android Auto func- tionality differently, requiring additional support in CarCompat to handle such variations. Similarly, apps incorporating C/C++ may in- troduce compatibility-related logic outside the primary Java/Kotlin codebase, necessitating further enhancements. While CarCompat performs exceptionally well for Java/Kotlin- based Android Auto apps, its applicability to multi-language projects requires further evaluation. Many modern Android Auto apps inte- grate JavaScript (e.g., React-Native), C/C++ for functionalities such as UI rendering or media playback. Since CarCompat primarily analyzes Java/Kotlin code, it may not detect compatibility-related logic implemented in other languages, potentially leading to false positives in hybrid apps. Answer 4: CarCompat achieves high accuracy in detecting Android Auto compatibility issues, correctly identifying 25 vio- lations with no false positives or false negatives. Its detections were verified in Car mode, confirming their real-world impact on app behavior. These results demonstrate that CarCompat provides reliable and actionable insights for developers. Page 8: Conference’17, July 2017, Washington, DC, USA Moshood Fakorede and Umar Farooq Table 8: Detailed static analysis results when Android Lint and CarCompat applied on selected Android Auto apps. Stars: Number of GitHub stars, Downloads: Number of downloads on Google Play, KLOC: Source code size in thousands of lines, Commit: Latest commit hash, TP: True Positives, FP: False Positives, Time(s): Analysis time in seconds for respective tool. #App Name Stars Downloads KLOC CommitAndroid Lint CarCompat TP FP Time(s) TP FP Time(s) 1anandnet/Harmony-Music [3] 1.4K - 35 ff91d19 0 0 1 3 0 2 2antoinepirlot/Satunes [7] 38 - 138.8 24e3933 0 0 1 2 0 8 3DJDoubleD/refreezer [24] 433 49K 34.7 aecf242 0 0 1 1 0 5 4jellyfin/jellyfin-android [39] 1.7K 1M+ 158.9 7886df9 0 0 140 2 0 9 5KRTirtho/spotube [41] 33.9K - 68.2 8c1337d 0 0 1 3 0 2 6LISTEN-moe/android-app [45] 258 - 90.4 4194aeb 0 0 30 2 0 3 7namidaco/namida [53] 2.9K 289K 92.9 675dc79 0 0 1 2 0 3 8nextcloud/news-android [54] 705 5K+ 223.5 9636d61 0 0 18 1 0 5 9nt4f04uNd/sweyer [55] 209 - 27.5 e5abe5a 0 0 1 3 0 2 10 OxygenCobalt/Auxio [56] 2.3K - 47.9 fce77ec 1 0 198 1 0 6 11 quran/quran_android [59] 2.1K 50M+ 58.2 f5bd3dc 0 0 138 1 0 6 12 sosauce/CuteMusic [66] 363 4K 30.4 97bb20b 1 0 119 1 0 2 13 timusus/Shuttle2 [70] 208 - 295.5 6fd520f 0 0 315 1 0 11 14 yaxim-org/yaxim [81] 487 100k+ 41.9 ead71a2 0 0 1 2 0 17 Total Issues/Geomean Time (s) 2 0 9.8 25 0 4.6 5.4 RQ5: Comparison with Existing Tools To evaluate CarCompat against existing Android Auto analysis tools, we compare it with Android Lint [ 34], which, to the best of our knowledge, is the only tool that includes built-in checks for Android Auto compatibility violations. Due to its native support for Android Auto-related analysis, we use Android Lint as the baseline for comparison. Issue Coverage and Detection Accuracy. The results in Table 8 demonstrate that CarCompat provides significantly broader is- sue coverage than Android Lint. While Android Lint detected only 2compatibility issues, CarCompat identified 25issues across the same set of 14 apps - an over 12X increase. This suggests that Android Lint’s built-in compatibility checks, which focus only on media playback issues, may overlook many real-world problems. In contrast, CarCompat is specifically designed to capture An- droid Auto-related constraints, including UI constraints and voice command handling, which are critical for compliance. Both tools reported zero false positives, meaning that every detected issue was a valid compatibility violation. However, Car- Compat ’s ability to detect a broader range of issues demonstrates its higher sensitivity to real compatibility problems that Android Lint does not identify. Performance Efficiency. CarCompat achieves significantly better performance, analyzing apps in a geometric mean of 4.6seconds, compared to 9.8seconds for Android Lint- a more than 2X speed improvement. This efficiency makes CarCompat more practical for real-world use, allowing developers to detect issues quickly with minimal overhead. This performance gain is due to fundamental differences in how the tools operate. Android Lint analyzes source code and requires processing to multiple source files, which increases processing time. In contrast, CarCompat operates directly on APK files and lever- ages the Car-Control Flow Graph (CCFG) to model app execution more efficiently. This enables faster and more precise detection of compatibility issues, making CarCompat both more effective and computationally efficient.Answer 5: CarCompat significantly outperforms Android Lint by detecting 25 issues compared to only 2, while both tools report zero false positives. Additionally, CarCompat runs 3X faster, making it a more comprehensive and efficient solution for Android Auto compatibility analysis. 5.5 RQ6: Distribution of Issues The distribution of the detected issue is summarized in Table 9. Among the 25 detected compatibility issues, the most prevalent category is voice command problems (10 issues, 40%). These issues primarily stem from developers struggling to integrate Google Assistant properly, leading to failures in recognizing or executing voice commands within Android Auto. User interface problems (8 issues, 32%) form the second-largest category, indicating challenges in adapting UI components to meet Android Auto’s design and interaction constraints. Finally, media playback problems (7 issues, 28%) highlight difficulties in ensuring seamless audio playback and handling media controls effectively. Media Playback Problems. Proper implementation requires cor- rectly extending the MediaBrowserService class and declaring it in the Android Manifest file. These components are essential for handling user commands invoked by Android Auto. However, our analysis revealed several missing required callbacks across differ- ent apps. Specifically, 5 apps do not implement the appropriate callbacks which are necessary for media playback controls. Ad- ditionally, 3 apps ( antoinepirlot/Satunes ,nt4f04uNd/sweyer , and timusus/Shuttle2 ) do not implement onStop , potentially causing issues with properly stopping media playback when the user exits Android Auto. Furthermore, LISTEN-moe/android-app was missing both onSkipToNext andonSkipToPrevious , which could lead to unexpected behavior when users attempt to navigate between tracks. UI Problems. Android Auto establishes specific requirements for media apps to display content on vehicle infotainment systems. Central to this functionality is the implementation of key methods Page 9: Understanding and Detecting Compatibility Issues in Android Auto Apps Conference’17, July 2017, Washington, DC, USA Table 9: Categories of detected Issues with CarCompat . Type of Issue # of Issues # of Apps Media Playback Problems 7 5 User Interface Problems 8 4 Voice Command Problems 10 9 within the MediaBrowserService class, particularly onGetRoot() andonLoadChildren() , which support the discovery and hierar- chical organization of available media content [ 16]. These methods are essential for enabling the Android Auto interface to navigate properly and display an app’s media library. Our analysis identified 4 apps ( KRTirtho/spotube ,anandnet/Harmony-Music ,namida- co/namida , and nt4f04uNd/sweyer ) with UI issues. These apps fail to properly adapt their user interfaces for the in-car environ- ment, resulting in media content that does not display correctly. Voice Command Issues. To enable hands-free control in the auto- motive environment, apps must support voice actions, providing drivers with a safe and convenient experience that minimizes dis- tractions [ 18]. This capability is essential for maintaining driver attention on the road while still allowing interaction with media content. However, CarCompat identified 9 apps with voice com- mand issues, preventing users from controlling these apps through Google Assistant [ 17]. As a result, drivers are unable to use voice commands, forcing them to interact manually with the app, which increases distraction while driving. Our analysis revealed that the largest category of the detected issues is related to voice command functionality, highlighting a critical gap in compliance with An- droid Auto’s hands-free interaction requirements. Answer 6: The most common Android Auto compatibility issues are voice command problems (40%), UI issues (32%), and media playback issues (28%). These findings confirm that the categories identified in our study (Sec. 3) apply to real-world apps. 5.6 RQ7: Usefulness of CarCompat To evaluate the usefulness of CarCompat , we reported the 25 true compatibility issues it detected to the respective app developers for their feedback. Each report included (1) the issue location, (2) the root cause, and (3) links to related documentation. To avoid overwhelming developers, we submitted a single bug report per app, consolidating all detected issues. So far, we have received responses for four reports, with devel- opers acknowledging the reported issues. Notably, two developers have already issued fixes, demonstrating the practical impact of CarCompat in improving Android Auto compatibility. Namida. Our analysis detected missing required callbacks in the MediaBrowserService , which prevented media content from dis- playing properly, resulting in a blank screen on the Android Auto UI. We reported issue #503 documenting this problem, including links to official guidelines explaining how Android Auto builds the content hierarchy, along with a reference to a working app in Corpus-G that uses the same library but was properly implemented as validated by CarCompat . The developer acknowledged the issue and released a patch resolving the issue just one week later by implementing the necessary callback methods to properly expose their media content hierarchy.CuteMusic. Our analysis identified the absence of required intent filters needed for Google Assistant voice integration in their An- droid Auto implementation. We submitted issue #72 detailing how this prevents users from controlling the app via voice commands while driving, a critical safety feature for automotive apps. The report included documentation links to the Android Auto voice integration guidelines and code samples showing the proper imple- mentation of the MEDIA_PLAY_FROM_SEARCH intent. The developer responded a week later with a fix implementing the missing intent filters in their next release. Auxio. Similar to App 2, we discovered missing voice command intent filters that prevented Google Assistant integration. Issue #971 was filed detailing how this limitation impacts hands-free usage in the vehicle, and with specific examples of how the MEDIA_- PLAY_FROM_SEARCH intent should be declared in the manifest. The report included links to documentation guidelines. The developer acknowledged the report but indicated they are currently too busy to implement the fix, though it is a work in progress. Satunes. Similar to Apps 2 and 3, we discovered missing voice command intent filters that prevented Google Assistant integration. Issue #1127 was filed detailing how this limitation impacts hands- free usage in the vehicle, with specific examples of how the MEDIA_- PLAY_FROM_SEARCH intent should be declared in the manifest and links to documentation guidelines. The developer acknowledged the issue and added it to the milestone for a future release. These results indicate that CarCompat provides actionable in- sights that developers find useful for addressing real-world com- patibility problems. Answer 7: The issues reported by CarCompat have proven useful to Android developers. Among the reported issues, four developers acknowledged the problems, and two have already issued fixes. Additionally, insights gained from our empirical study can be generalized to help improve the software quality of other Android Auto apps. 6 THREATS TO VALIDITY Several factors may affect the validity of the findings produced by CarCompat , and it is important to consider these potential threats when interpreting the results. External Validity. The external validity of the study is influenced by the scope of apps analyzed. CarCompat was primarily evaluated on apps developed using Java and Kotlin. However, its applicability to cross-platform apps developed with Flutter, React-Native, or apps utilizing native C/C++ code is limited since many of these platforms do not currently support Android Auto. Construct Validity. The construct validity could be threatened by the criteria used to evaluate compliance with Android Auto standards. The analysis focuses on specific components related to media, messaging, navigation, and POI, but does not cover all possible aspects of Android Auto app behavior, such as runtime performance and user interaction patterns. As a result, CarCompat may not detect certain issues that emerge only during runtime or in specific hardware configurations. Page 10: Conference’17, July 2017, Washington, DC, USA Moshood Fakorede and Umar Farooq Conclusion Validity. The time spent for analysis varied across apps, particularly with more complex apps taking longer to pro- cess. Complex apps require additional time to initialize analysis and complete preliminary tasks, such as constructing the control flow graph and performing pointer analysis, resulting in longer overall analysis times. While the variation in analysis time did not appear to affect the accuracy of the results, longer analysis times for more complex apps could affect developers’ workflow, poten- tially introducing biases in real-world adoption. Additionally, the size and complexity of the apps in our corpus may not be fully representative, although we include several commercial and highly used apps, which could influence the broader applicability of our conclusions. 7 RELATED WORK This section summarizes relevant work on mobile app reliability, with a focus on app compatibility and Android Auto. Compatibility issues have been a focal point of research in the Android com- munity [ 13,38,42,46,63,74,76]. Wei and others [ 76] conducted an empirical study on fragmentation-induced compatibility issues, characterizing their symptoms and root causes. They proposed FicFinder, a static analysis tool to detect such issues. In a follow-up study [ 77], they introduced Pivot, which leverages API-device corre- lations to identify compatibility problems across different Android versions and devices. Huang et. al [ 38] investigated compatibility issues stemming from callback API evolution. Their tool, CIDER, uses a graph-based model to detect callback compatibility issues, focusing on problems that arise when apps are run on newer An- droid versions with modified API behaviors. Li et al. [ 42] developed CiD, a static analysis tool that detects incompatibilities caused by API changes across different Android versions. CiD analyzes app bytecode to identify potential compatibility issues and suggests fixes to developers. These studies collectively contribute to both the detection and resolution of Android compatibility issues, aiding de- velopers in creating more robust and widely compatible apps. Our work is complementary to these works and focuses on detecting Android Auto compatibility issues. Recent research has addressed various aspects of Android Auto compatibility and security. Zhang and others [ 83] developed tech- niques to test message synchronization and UI issues between Android phones and vehicle dashboards. While their work pro- vides valuable insights into messaging functionality, it does not cover broader challenges such as UI compatibility across differ- ent vehicle infotainment systems, media playback issues, or voice command integration, which is the focus of this work. In terms of static analysis for Android Auto, several studies have focused on security and vulnerability detection in Android Auto apps. Mandal et al. [ 50] developed a static analysis framework to identify poten- tial security vulnerabilities in Android Auto apps. In a subsequent study [ 49], they further explored vulnerability detection techniques specific to the Android Auto ecosystem. Our research, while not directly addressing security and privacy concerns in Android Auto, complements existing work in these areas. The compatibility and functionality improvements we propose can serve as a founda- tion for more robust security and privacy measures. By ensuring apps function correctly across various Android Auto environments,our work potentially reduces vulnerabilities that might arise from inconsistent app behavior or incomplete feature implementation. Thus, our approach synergizes with security and privacy-focused research, contributing to a more comprehensive framework for developing safe and reliable Android Auto apps. Research on mobile app evaluation, validation, and refactoring has encompassed a diverse range of topics distinct from our focus. These include identifying race conditions and energy bugs through dynamic analysis [ 35,36,48], detecting network and GPS location issues [ 43], uncovering app quality problem [ 8,12,44,47,52], con- figuration changes handling [ 26,27,61] and memory leaks [ 80]. Unlike prior work, our work aims for an automated solution to detect compatibility issues in Android Auto apps. While these stud- ies have significantly contributed to mobile app development and maintenance, our work diverges by focusing specifically on the automated detection of compatibility issues in Android Auto apps. This approach addresses a unique challenge in the evolving land- scape of automotive software integration, complementing existing research while targeting a specific topic in mobile app reliability and user experience. 8 CONCLUSION Despite the vast number of Android apps available – numbering in the millions – the number of apps compatible with Android Auto remains remarkably small. This disparity highlights the sig- nificant challenges that developers face in adapting their apps for automotive platform. In this paper, we conducted a comprehen- sive investigation into these challenges. Our study revealed that UI issues, media playback errors, and voice command integration errors are often causes for incompatibility, and developers are left to carry out manual issue detection. To address these challenges, we introduced CarCompat , a novel static analysis designed to detect compatibility issues in Android Auto apps. CarCompat applies static analysis techniques to identify potential problems, provid- ing developers with actionable insights to enhance the reliability of their apps. Our evaluation of CarCompat on 54 Android apps demonstrated its effectiveness, identifying 25 compatibility issues. This work contributes to the limited body of research on Android Auto development by providing a practical solution for detecting compatibility issues early in the development process. Moving for- ward, we aim to extend the capabilities of CarCompat to cover additional features and improve for a broader range of automotive apps as new categories appear in the future. REFERENCES [1]Android auto support. https://github.com/KRTirtho/spotube/issues/623, 2023. Accessed: 2024. [2]Amazon. Amazon music: Songs & podcasts. https://play.google.com/store/apps/ details?id=com.amazon.mp3. Accessed: 2024-09-12. [3]anandnet. A cross platform app for streaming music. https://github.com/ anandnet/Harmony-Music/, 2023. Accessed: 2024-08-14. [4]Android. Android app fundamentals. https://developer.android.com/guide/ components/fundamentals, 2008. Accessed: 2024-09-03. [5]Android. Jetpack compose. https://developer.android.com/compose, 2022. Ac- cessed: 2024-09-03. [6]AntennaPod. A podcast manager for android. https://github.com/AntennaPod/ AntennaPod, 2014. Accessed: 2024-08-14. [7]Antoinepirlot. Modern mp3 player to listen to your local music files on android lollipop 5.1.1+ & compatible with android auto. https://github.com/antoinepirlot/ Satunes, 2024. Accessed: 2024-08-14. Page 11: Understanding and Detecting Compatibility Issues in Android Auto Apps Conference’17, July 2017, Washington, DC, USA [8]Niaz Arijo, Reiko Heckel, Mirco Tribastone, and Stephen Gilmore. Modular performance modelling for mobile applications. In ACM SIGSOFT Software Engineering Notes , volume 36, pages 329–334. ACM, 2011. [9]Steven Arzt, Siegfried Rasthofer, Christian Fritz, Eric Bodden, Alexandre Bartel, Jacques Klein, Yves Le Traon, Damien Octeau, and Patrick McDaniel. Flowdroid: Precise context, flow, field, object-sensitive and lifecycle-aware taint analysis for android apps. In Proceedings of the 35th ACM SIGPLAN Conference on Program- ming Language Design and Implementation , PLDI ’14, pages 259–269, New York, NY, USA, 2014. ACM. ISBN 978-1-4503-2784-8. doi: 10.1145/2594291.2594299. URL http://doi.acm.org/10.1145/2594291.2594299. [10] Audiobooks. Audiobooks.com: Books & more. https://play.google.com/store/ apps/details?id=com.audiobooks.androidapp. Accessed: 2024-09-12. [11] Audiomack. Audiomack: Music downloader. https://play.google.com/store/apps/ details?id=com.audiomack. Accessed: 2024-09-12. [12] Luca Berardinelli, Vittorio Cortellessa, and Antinisca Di Marco. Performance modeling and analysis of context-aware mobile software systems. Fundamental Approaches to Software Engineering , pages 353–367, 2010. [13] Haipeng Cai, Ziyi Zhang, Li Li, and Xiaoqin Fu. A large-scale study of application incompatibilities in android. In Proceedings of the 28th ACM SIGSOFT International Symposium on Software Testing and Analysis , pages 216–227, 2019. [14] L. Ceci. Number of apps available in leading app store. https://www.statista. com/statistics/276623/number-of-apps-available-in-leading-app-stores/, 2023. Accessed: 2023-11-06. [15] Deezer. Deezer: Music & podcast player. https://play.google.com/store/apps/ details?id=deezer.android.app. Accessed: 2024-09-12. [16] Android Developers. Build your content hierarchy. https://developer.android. com/training/cars/media#build_hierarchy, . Accessed: 2024-02-16. [17] Android Developers. Google assistant. https://developer.android.com/media/ implement/assistant, . Accessed: 2024. [18] Android Developers. Support voice actions. https://developer.android.com/ training/cars/media#support_voice, . Accessed: 2024-02-16. [19] Android Developers. Android auto. https://www.android.com/auto/, 2015. Ac- cessed: 2024-09-03. [20] Android Developers. Supported app categories. https://developer.android.com/ training/cars#supported-app-categories, 2015. Accessed: 2024-09-03. [21] Android Developers. Car app library - key terms and concepts. https://developer. android.com/training/cars/apps#key-terms-concepts, 2015. Accessed: 2024-09- 03. [22] Android Developers. Use the android for cars app library. https://developer. android.com/training/cars/apps#before-you-begin, 2015. Accessed: 2024-09-03. [23] Android Developers. Car ready mobile apps program. https://developer.android. com/training/cars/car-ready-mobile-apps, 2024. Accessed: 2024-09-03. [24] DJDoubleD. An alternative deezer music streaming & downloading client, based on freezer. https://github.com/DJDoubleD/refreezer. Accessed: 2024-08-14. [25] F-Droid. F-droid. https://f-droid.org/en/packages/, 2010. Accessed: 2024. [26] Umar Farooq and Zhijia Zhao. Runtimedroid: Restarting-free runtime change han- dling for android apps. In Proceedings of the 16th Annual International Conference on Mobile Systems, Applications, and Services , MobiSys ’18, page 110–122, New York, NY, USA, 2018. Association for Computing Machinery. ISBN 9781450357203. doi: 10.1145/3210240.3210327. URL https://doi.org/10.1145/3210240.3210327. [27] Umar Farooq, Zhijia Zhao, Manu Sridharan, and Iulian Neamtiu. Livedroid: Identifying and preserving mobile app state in volatile runtime environments. Proc. ACM Program. Lang. , 4(OOPSLA), nov 2020. doi: 10.1145/3428228. URL https://doi.org/10.1145/3428228. [28] fast4x. A multilingual android application for streaming music from youtube music. https://github.com/fast4x/RiMusic/, 2023. Accessed: 2024-08-14. [29] Radio FM. Radio fm. https://play.google.com/store/apps/details?id=com.radio. fmradio. Accessed: 2024-09-12. [30] Github. https://github.com, 2016. Accessed: 2024. [31] Github. https://gitlab.com, 2018. Accessed: 2024-09-03. [32] Google. Youtube music. https://play.google.com/store/apps/details?id=com. google.android.apps.youtube.music. Accessed: 2024-09-12. [33] Google. Flutter – build for any screen. https://flutter.dev/, 2016. Accessed: 2024-09-01. [34] Google. Android lint rules. https://googlesamples.github.io/android-custom-lint- rules/, 2025. Accessed: 2025-02-10. [35] Chun-Hung Hsiao, Jie Yu, Satish Narayanasamy, Ziyun Kong, Cristiano L Pereira, Gilles A Pokam, Peter M Chen, and Jason Flinn. Race detection for event-driven mobile applications. ACM SIGPLAN Notices , 49(6):326–336, 2014. [36] Cuixiong Hu and Iulian Neamtiu. Automating gui testing for android applications. InProceedings of the 6th International Workshop on Automation of Software Test , pages 77–83. ACM, 2011. [37] Huaxun Huang, Lili Wei, Yepang Liu, and Shing-Chi Cheung. Understanding and detecting callback compatibility issues for android applications. In Proceedings of the 33rd ACM/IEEE International Conference on Automated Software Engineering , ASE ’18, page 532–542, New York, NY, USA, 2018. Association for Computing Machinery. ISBN 9781450359375. doi: 10.1145/3238147.3238181. URL https: //doi.org/10.1145/3238147.3238181.[38] Huaxun Huang, Lili Wei, Yepang Liu, and Shing-Chi Cheung. Understanding and detecting callback compatibility issues for android applications. In Proceedings of the 33rd ACM/IEEE International Conference on Automated Software Engineering , pages 532–542, 2018. [39] Jellyfin. Android client for jellyfin. https://github.com/jellyfin/jellyfin-android/, 2020. Accessed: 2024-08-14. [40] K9Mail. K-9 mail. https://github.com/k9mail/k-9, 2020. Accessed: 2024-09-01. [41] KRTirtho. An open source cross-platform spotify client. https://github.com/ KRTirtho/spotube, 2021. Accessed: 2024-08-14. [42] Li Li, Tegawendé F Bissyandé, Haoyu Wang, and Jacques Klein. Cid: Automating the detection of api-related compatibility issues in android apps. In Proceedings of the 27th ACM SIGSOFT International Symposium on Software Testing and Analysis , pages 153–163, 2018. [43] Chieh-Jan Mike Liang, Nicholas D Lane, Niels Brouwers, Li Zhang, Börje F Karls- son, Hao Liu, Yan Liu, Jun Tang, Xiang Shan, Ranveer Chandra, et al. Caiipa: Automated large-scale mobile app testing through contextual fuzzing. In Pro- ceedings of the 20th annual international conference on Mobile computing and networking , pages 519–530. ACM, 2014. [44] Max Lillack, Christian Kästner, and Eric Bodden. Tracking load-time configu- ration options. In Proceedings of the 29th ACM/IEEE international conference on Automated software engineering , pages 445–456. ACM, 2014. [45] Listen-moe. Official listen.moe android app. https://github.com/LISTEN-moe/ android-app, 2021. Accessed: 2024-08-14. [46] Pei Liu, Li Li, Yichun Yan, Mattia Fazzini, and John Grundy. Identifying and characterizing silently-evolved methods in the android api. In 2021 IEEE/ACM 43rd International Conference on Software Engineering: Software Engineering in Practice (ICSE-SEIP) , pages 308–317. IEEE, 2021. [47] Yepang Liu, Chang Xu, and Shing-Chi Cheung. Characterizing and detecting performance bugs for smartphone applications. In Proceedings of the 36th Inter- national Conference on Software Engineering , pages 1013–1024. ACM, 2014. [48] Pallavi Maiya, Aditya Kanade, and Rupak Majumdar. Race detection for android applications. In ACM SIGPLAN Notices , volume 49, pages 316–325. ACM, 2014. [49] Amit Kr Mandal, Agostino Cortesi, Pietro Ferrara, Federica Panarotto, and Fausto Spoto. Vulnerability analysis of android auto infotainment apps. In Proceedings of the 15th ACM International Conference on Computing Frontiers , pages 183–190, 2018. [50] Amit Kr Mandal, Federica Panarotto, Agostino Cortesi, Pietro Ferrara, and Fausto Spoto. Static analysis of android auto infotainment and on-board diagnostics ii apps. Software: Practice and Experience , 49(7):1131–1161, 2019. [51] Meta. React-native – learn once, write anywhere. https://reactnative.dev/, 2016. Accessed: 2024-09-01. [52] Henry Muccini, Antonio Di Francesco, and Patrizio Esposito. Software testing of mobile applications: Challenges and future research directions. In Proceedings of the 7th International Workshop on Automation of Software Test , pages 29–35. IEEE Press, 2012. [53] Namidaco. A beautiful and feature-rich music & video player with youtube support, built in flutter. https://github.com/namidaco/namida. Accessed: 2024- 08-14. [54] Nextcloud. Android client for the nextcloud news/feed reader app. https://github. com/nextcloud/news-android, 2013. Accessed: 2024-08-14. [55] nt4f04uNd. Music player built with flutter. https://github.com/nt4f04uNd/sweyer. Accessed: 2024-08-14. [56] OxygenCobalt. A simple, rational music player for android. https://github.com/ OxygenCobalt/Auxio, 2020. Accessed: 2024-08-14. [57] Pandora. Pandora - music & podcasts. https://play.google.com/store/apps/details? id=com.pandora.android. Accessed: 2024-09-12. [58] Poweramp. Poweramp: Music player. https://play.google.com/store/apps/details? id=com.maxmpz.audioplayer. Accessed: 2024-09-12. [59] Quran. A quran reading application for android. https://github.com/quran/ quran_android. Accessed: 2024-08-14. [60] Vivek Radhakrishnan. Android for cars: Bringing more apps to cars. https://android-developers.googleblog.com/2024/05/android-for-cars- bringing-more-apps-to-cars.html, 2024. Accessed: 2025-02-10. [61] Sydur Rahaman, Umar Farooq, Iulian Neamtiu, and Zhijia Zhao. Detecting potential user-data save & export losses due to android app termination. In 2023 IEEE/ACM International Conference on Automation of Software Test (AST) , pages 152–162, 2023. doi: 10.1109/AST58925.2023.00019. [62] RetroMusicPlayer. Retro music player. https://github.com/RetroMusicPlayer/ RetroMusicPlayer, 2015. Accessed: 2024-09-03. [63] Simone Scalabrino, Gabriele Bavota, Mario Linares-Vásquez, Michele Lanza, and Rocco Oliveto. Data-driven solutions to detect api compatibility issues in android: an empirical study. In 2019 IEEE/ACM 16th International Conference on Mining Software Repositories (MSR) , pages 288–298. IEEE, 2019. [64] Ben Schoon. Over 200 million cars have android auto, a decade after its debut. https://9to5google.com/2024/05/16/android-auto-number-of-cars-2024/, 2024. Accessed: 2024-09-03. [65] SiriusXM. Siriusxm: Music, sports & news. https://play.google.com/store/apps/ details?id=com.sirius. Accessed: 2024-09-12. Page 12: Conference’17, July 2017, Washington, DC, USA Moshood Fakorede and Umar Farooq [66] Sosauce. Cutemusic is a simple,lightweight and open-source offline music player app for android. https://github.com/sosauce/CuteMusic. Accessed: 2024-08-14. [67] SoundCloud. Soundcloud: Play music & songs. https://play.google.com/store/ apps/details?id=com.soundcloud.android. Accessed: 2024-09-12. [68] Spotify. Spotify: Music and podcasts. https://play.google.com/store/apps/details? id=com.spotify.music. Accessed: 2024-09-12. [69] TIDAL. Tidal music: Hifi sound. https://play.google.com/store/apps/details?id= com.aspiro.tidal. Accessed: 2024-09-12. [70] Timusus. Shuttle music player 2.0. https://github.com/timusus/Shuttle2. Ac- cessed: 2024-08-14. [71] TuneIn. Tunein radio: Music & sports. https://play.google.com/store/apps/details? id=tunein.player. Accessed: 2024-09-12. [72] Ultrasonic. Free and open-source music streaming android client for subsonic api compatible servers. https://gitlab.com/ultrasonic/ultrasonic, 2018. Accessed: 2024-08-14. [73] VinylMusicPlayer. A material designed music player for android. https://github. com/VinylMusicPlayer/VinylMusicPlayer, 2017. Accessed: 2024-08-14. [74] Haoyu Wang, Hongxuan Liu, Xusheng Xiao, Guozhu Meng, and Yao Guo. Char- acterizing android app signing issues. In 2019 34th IEEE/ACM International Conference on Automated Software Engineering (ASE) , pages 280–292. IEEE, 2019. [75] Lili Wei, Yepang Liu, and Shing-Chi Cheung. Taming android fragmentation: characterizing and detecting compatibility issues for android apps. In Proceedings of the 31st IEEE/ACM International Conference on Automated Software Engineering , ASE ’16, page 226–237, New York, NY, USA, 2016. Association for Computing Machinery. ISBN 9781450338455. doi: 10.1145/2970276.2970312. URL https: //doi.org/10.1145/2970276.2970312.[76] Lili Wei, Yepang Liu, and Shing-Chi Cheung. Taming android fragmentation: Characterizing and detecting compatibility issues for android apps. In Proceedings of the 31st IEEE/ACM International Conference on Automated Software Engineering , pages 226–237, 2016. [77] Lili Wei, Yepang Liu, Shing-Chi Cheung, Huaxun Huang, Xuan Lu, and Xuanzhe Liu. Understanding and detecting fragmentation-induced compatibility issues for android apps. IEEE Transactions on Software Engineering , 46(11):1176–1199, 2018. [78] Lili Wei, Yepang Liu, and Shing-Chi Cheung. Pivot: learning api-device correla- tions to facilitate android compatibility issue detection. In Proceedings of the 41st International Conference on Software Engineering , ICSE ’19, page 878–888. IEEE Press, 2019. doi: 10.1109/ICSE.2019.00094. URL https://doi.org/10.1109/ICSE.2019. 00094. [79] XilinJia. Open source podcast instrument for android supporting contents from youtube and yt music as well as normal podcasts. https://github.com/XilinJia/ Podcini/, 2024. Accessed: 2024-08-14. [80] Dacong Yan, Shengqian Yang, and Atanas Rountev. Systematic testing for re- source leaks in android applications. In Software Reliability Engineering (ISSRE), 2013 IEEE 24th International Symposium on , pages 411–420. IEEE, 2013. [81] yaxim org. Yaxim - a lean xmpp/jabber client for android. https://github.com/ yaxim-org/yaxim. Accessed: 2024-08-14. [82] z huang. A material 3 youtube music client for android. https://github.com/z- huang/InnerTune, 2021. Accessed: 2024-08-14. [83] Yu Zhang, Xi Deng, Jun Yan, Hang Su, and Hongyu Gao. Testing the message flow of android auto apps. In 2019 IEEE 26th International Conference on Software Analysis, Evolution and Reengineering (SANER) , pages 559–563, 2019. doi: 10. 1109/SANER.2019.8667973.

---