Video Delivery

Google TV vs Android TV: Key Differences for App Developers

A developer-focused comparison of Google TV and Android TV covering UI layers, Leanback APIs, Compose for TV, discovery integration, and how to handle both in a single codebase.

March 25, 2026

Android TV and Google TV interfaces side by side showing launcher and app integration differences

Google TV is Android TV — sort of. It runs on the same Android TV OS base, uses the same media APIs, and your APK ships to both through the Google Play Store. But the user experience layer on top is fundamentally different, and that difference affects how your app appears in recommendations, how deep links work, how the home screen interacts with your content catalog, and what UI patterns you should follow.

This guide covers what actually differs for developers shipping apps to Google TV devices versus legacy Android TV devices, and how to manage both from a single codebase.

The architecture difference

Android TV is an Android variant optimised for the 10-foot UI. It ships with the stock Android TV launcher, which shows a grid of installed apps and a recommendations row. The Leanback support library provides UI components designed for TV navigation: browse fragments, detail fragments, guided step fragments, and the playback transport row.

Google TV is a UI layer built on top of Android TV. It replaces the stock launcher with a content-forward home screen that aggregates content from installed apps. The user sees recommendations organised by genre, watchlist items, and trending content — not a grid of app icons. Under the hood, it is still Android TV. The same APIs, the same media pipeline, the same APK.

The key implication: your app’s APK is the same for both. But how the user discovers and enters your app differs.

Version and device landscape

As of 2026, Google TV runs on Chromecast with Google TV, various Sony and TCL smart TVs, Hisense Google TV models, and other OEM devices. Android TV without the Google TV layer still exists on some older Sony TVs, Nvidia Shield, and various third-party boxes.

New devices are shipping with Google TV almost exclusively, but the installed base of older Android TV devices is significant. You need to support both.

Home screen and content discovery

Android TV: recommendations row

On stock Android TV, your app can push content to the recommendations row on the home screen using NotificationCompat.BigPictureStyle notifications or the Recommendations API. These show up as cards in a horizontal row, and the user can click through to your app.

The recommendations row is straightforward but limited. You control the card title, image, and a deep link URI. The system does not understand your content catalog semantically.

Google TV: Watch Next and content aggregation

Google TV’s home screen is content-aggregated. It pulls content metadata from your app through the Watch Next API and content provider integration. When a user adds a show to their watchlist or pauses a movie, it appears on the Google TV home screen alongside content from other apps.

This integration requires:

  1. Watch Next channel. Populate the TvContractCompat.WatchNextPrograms content provider with items the user has started watching, has in their watchlist, or that you want to recommend.
  2. Preview channels. Create one or more preview channels with curated content rows (e.g., “New Releases,” “Continue Watching”) using TvContractCompat.PreviewPrograms.
  3. Deep link URIs. Every item must include a deep link that opens directly to playback or the detail page in your app. The URI must work even if your app is not running.

The quality of your home screen presence on Google TV depends on how well you integrate with these APIs. An app that only has a static icon in the app drawer is significantly disadvantaged compared to one that surfaces content on the home screen.

Practical difference

On Android TV, users launch your app first and browse within it. On Google TV, users browse content on the home screen and may enter your app directly at a specific title. Your app needs to handle both patterns: full cold-start to home screen, and deep-link directly to playback.

Leanback vs Compose for TV

Leanback library (legacy)

The Leanback library has been the standard TV UI toolkit since Android TV launched. It provides:

  • BrowseSupportFragment for the main browse grid
  • DetailsSupportFragment for content detail pages
  • PlaybackSupportFragment for the transport controls overlay
  • GuidedStepSupportFragment for sign-in and settings flows

Leanback works, but it is opinionated and inflexible. Customising the browse layout beyond its built-in patterns requires fighting the framework. The visual style feels dated compared to modern TV interfaces.

Compose for TV

Compose for TV (part of Jetpack Compose) is the modern replacement. It provides:

  • TV-specific composables for focus management, navigation, and large-screen layouts
  • TvLazyRow and TvLazyColumn for virtualised lists
  • Focus handling primitives that work with D-pad and remote navigation
  • Material Design 3 for TV components

Compose for TV gives you full control over the UI while handling the hard parts (focus management, spatial navigation) for you. If you are starting a new app in 2026, use Compose for TV. If you have an existing Leanback app, the migration path is incremental — you can mix Leanback fragments and Compose screens.

Focus management

Focus management is the most critical UI concept for TV apps. The user navigates with a D-pad (up, down, left, right, select), not a pointer. Every interactive element must be focusable, and the focus movement must be predictable.

In Leanback, focus is managed automatically within the framework’s components but becomes unpredictable when you mix custom views.

In Compose for TV, focus is explicit. You declare focus traversal order and handle focus events. This is more work but gives you deterministic behavior. Use FocusRequester and Modifier.focusProperties to control navigation paths.

Media playback: same pipeline, different context

The media playback APIs are identical on Google TV and Android TV. ExoPlayer (now part of Jetpack Media3) is the standard player. The hardware decode pipeline, DRM handling via MediaDrm, and audio routing are all the same.

The differences are contextual:

Picture-in-picture (PiP). Google TV supports PiP, allowing your app to continue playing video in a small window while the user browses the home screen. Implement onPictureInPictureModeChanged and size your player surface appropriately. Not all Android TV devices support PiP.

Media session integration. Google TV uses your MediaSession to show playback controls on the home screen and in the system media notification. Keep your MediaSession updated with accurate metadata, playback state, and transport actions.

Background playback. Both platforms support audio-only background playback via a foreground service, but Google TV’s media session integration makes it more visible to the user.

Handling both in one codebase

Since the APK is the same, you do not need separate codebases. But you do need runtime detection to adjust behaviour:

Detect Google TV vs Android TV

Check for the Google TV feature flag:

val isGoogleTV = packageManager.hasSystemFeature("com.google.android.feature.GOOGLE_EXPERIENCE")

Or check the system launcher package:

val isGoogleTVLauncher = try {
    packageManager.getPackageInfo("com.google.android.apps.tv.launcherx", 0)
    true
} catch (e: PackageManager.NameNotFoundException) {
    false
}

Conditional behavior

  • On Google TV: invest more in Watch Next integration, preview channels, and deep link handling. The home screen is the primary discovery surface.
  • On Android TV: ensure your recommendations row content is current and your app icon is prominent. The user will launch your app directly more often.
  • On both: handle deep links gracefully. If the user arrives via a home screen recommendation, go directly to the content. If they launch the app icon, go to the browse screen.

Testing across device types

Test on actual hardware. The Google TV emulator in Android Studio does not perfectly replicate real device behavior, especially for home screen integration, DRM playback, and focus navigation edge cases.

Priority test devices in 2026:

  • Chromecast with Google TV (4K and HD): the reference Google TV device
  • Nvidia Shield TV Pro: Android TV without Google TV, high-end hardware
  • TCL or Hisense Google TV: real TV hardware with integrated Google TV
  • Budget Android TV box: low-end hardware that exposes performance issues

For a structured approach to device testing, see our device QA and release solutions. For Google TV-specific platform details, see our Google TV platform notes.

More resources

Browse the full set of guides and platform notes.

All Guides