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.