Developer Console

Developer Tools Menu (Fire TV)

The Developer Tools Menu provides a number of options that provide real-time metrics and other information about your app. This information can assist you in troubleshooting, development, and testing.

Invoke the Developer Tools Menu

You can invoke the Developer Tools menu in several ways:

  • Remote Control: On the directional pad, press and hold the Center button for a second; then (still holding down Center), press the Down button too. Hold both buttons for about 3-4 seconds. Then release both buttons and press the remote's Menu button. (If this doesn't work, try holding Center and Down simultaneously instead of staggered.)
  • Amazon Game Controller: Press and hold A and Y buttons together (simultaneously) for 5 seconds; then release the buttons and press the controller's menu button.
  • Android Debug Bridge: If adb is enabled on the Fire TV and a computer is connected, you can run the following command to invoke the dialog box: adb shell am start com.amazon.ssm/com.amazon.ssm.ControlPanel

    To use the adb command, you'll need to enable adb debugging in the Fire TV Settings, have Android Studio installed, and know your Fire TV's IP address (go to Settings> My Fire TV (or Device & Software) > About > Network). Open a terminal window on your computer and connect through ADB with this command: adb connect 123.456.7.89:5555, replacing 123.456.7.89 with your own IP address. Leave 5555 as the port. Read more details here: Connect to Fire TV Through ADB.

The following screenshot shows the options on the Developer Tools menu:

The various panels are explained below:

System X-Ray

System X-Ray gathers instantaneous system metrics and displays on top of the screen as an overlay. When toggled on, the overlay will always be visible on the screen.

The System X-Ray overlay contains details about the following:

  • Display
  • CPU
  • Memory
  • Network

For deep-dive into System X-Ray, see System X-Ray.

Advanced Options

Advanced Options enables multimedia information to appear when Android MediaCodec APIs are in use. When you switch this option on and then play media, an additional display (titled "MUL" for Multimedia (audio and video) and "AUD" for Audio Focus) appears on the right.

Information displayed in the Multimedia panel is divided into three sections: Audio, Video, and Audio Focus.

AUDIO

Property Description
Codec Audio codec format
Hardware Accelerated If audio playback is hardware accelerated
Input Bitrate Audio input bitrate
Secure If secure or not

VIDEO

Property Description
Codec Video Codec Format
Hardware Accelerated If video playback is hardware accelerated
Input Bitrate Video Input Bitrate
Secure If video secure or not
Frames Dropped Frame drop count
Resolution Playback resolution
Frame Rate Playback frame rate
Color Standard

AUDIO FOCUS

Property Description
Package Package name of the audio playback
Gain Audio focus gain implication
Loss Audio focus loss implication
F/U/C Flag / Usage / Content

Audio Focus values are shortened as following:

  • AUDIOFOCUS_NONE: none
  • AUDIOFOCUS_GAIN: gain
  • AUDIOFOCUS_GAIN_TRANSIENT: g_tr
  • AUDIOFOCUS_GAIN_TRANSIENT_MAY_DUCK: gtmd
  • AUDIOFOCUS_GAIN_TRANSIENT_EXCLUSIVE: gtre
  • AUDIOFOCUS_LOSS: loss
  • AUDIOFOCUS_LOSS_TRANSIENT: l_tr
  • LOSS_TRANSIENT_CAN_DUCK: ltcd
  • UNKNOWN: unkn

Snapshot

Snapshot provides a way for users to gather instantaneous all metrics information through adb command. Whenever you input the following command, metric information will display in the command line.

adb shell dumpsys activity service com.amazon.ssm/.OverlayService

System X-Ray must be running for this command to function.

Here's a sample output:

SERVICE com.amazon.ssm/.OverlayService 3dde6680 pid=10820
  Client:
    [com.amazon.ssm.timestamp]: [2017-02-07 15:11:53]
    [com.amazon.ssm.display.resolution]: [1080]
    [com.amazon.ssm.display.refreshrate]: [60]
    [com.amazon.ssm.display.hdcpversion]: [1.0]
    [com.amazon.ssm.cpu.core0]: [30]
    [com.amazon.ssm.cpu.core1]: [29]
    [com.amazon.ssm.cpu.core2]: [0]
    [com.amazon.ssm.cpu.core3]: [0]
    [com.amazon.ssm.memory.appname]: [tv.twitch.android.viewer]
    [com.amazon.ssm.memory.appmemory]: [56.8 MB]
    [com.amazon.ssm.memory.activememory]: [1.3 GB]
    [com.amazon.ssm.memory.availablememory]: [231.3 MB]
    [com.amazon.ssm.network.rssi]: [-56]
    [com.amazon.ssm.network.systemdownloadspeed]: [2.2 Mbps]
    [com.amazon.ssm.network.appdownloadspeed]: [2.1 Mbps]

Record & Share

Record & Share stores instantaneous metrics about CPU, memory, network, and multimedia into a database as historical data. Although the same information is displayed graphically in real-time through the System X-Ray overlay, Record & Share takes this information and stores it into a history that you can dump to the command line.

To use Record & Share, first toggle the Record & Share setting in the Developer Tools Menu to On. You're then prompted to select the Record Settings:

These properties control the following:

  • Interval: The time between two recordings: 2 seconds, 4 seconds, 8 seconds, 16 seconds, or 32 seconds.
  • Duration: How long the data gets stored in the database: 1 hour, 2 hours, 4 hours, 8 hours, or 16 hours.

The default (2s interval, 1 hr duration) means that every 2 seconds, statistics will be recorded and stored in the database. The recording will be stored in the database for a total of 1 hour.

After playing media to gather some recorded information, you can dump all historical metrics to the command line using the following::

adb shell dumpsys activity service com.amazon.ssm/.OverlayService -all

The response includes the following information:

CPU:

  • Timestamp
  • cpu0
  • cpu1
  • cpu2
  • cpu3

Memory:

  • Timestamp
  • Total_Memory
  • Available_Memory
  • Active_Memory
  • Foreground_App_Memory
  • Foreground_App_PackageName

Network:

  • Timestamp
  • RSSI
  • Download_Speed
  • Foreground_App_Download_Speed
  • Foreground_App_PackageName

Multimedia:

  • Timestamp
  • AudioCodec
  • AudioInputBitrate
  • AudioAccelerated
  • AudioSecure
  • VideoCodec
  • VideoInputBitrate
  • VideoAccelerated
  • VideoSecure
  • VideoResolution
  • VideoFramerate
  • VideoFramedropped

Here's an example of the display on the command line:

 CPU
 Timestamp           cpu0 cpu1 cpu2 cpu3
 2016-10-31 11:40:22 19   16   13   18

 MEMORY
 Timestamp           Total_Memory Available_Memory Active_Memory Foreground_App_Memory Foreground_App_PackageName
 2016-10-31 11:40:23 919.3 MB     156.3 MB         731.8 MB      31.3 MB               com.amazon.ssm

 NETWORK
 Timestamp           RSSI Download_Speed Foreground_App_Download_Speed Foreground_App_PackageName
 2016-10-31 11:40:21 -41  14.4 kbps      0 bps                         com.amazon.ssm
 2016-10-31 11:40:23 -41  14.0 kbps      0 bps                         com.amazon.ssm

If you're interested in only part of the metrics, you can add different options in the command. For example, to dump memory and network historical metrics to command line:

adb shell dumpsys activity service com.amazon.ssm/.OverlayService -memory -network

The following table shows all available options:

Option Description
blank
(no option passed)
dump snapshot information
-snapshot dump snapshot information
-all dump all information from database
-memory dump memory information from database
-cpu dump CPU information from database
-network dump network information from database
-multimedia dump multimedia information from database

To check available options, pass the -help parameter:

adb shell dumpsys activity service com.amazon.ssm/.OverlayService -help

You can clear the recorded metrics stored in the database (before the duration time automatically clears the data). From the Developer Options Tools menu, select Record & Share, and then click the menu button on your remote.

Safezone

Some TVs use overscan with their display. Overscan means the TV displays some information off the edges of the visible screen (to accommodate discrepancies in monitors). You should not display important information in the overscan areas.

To make the overscan areas visible, you can turn the SafeZone switch to On. This will make the overscan areas apparent so you can avoid displaying any information in these areas.

Note that Fire TV Stick (2nd Gen) does not include screen size calibration. If the screen display doesn't fit correctly on the TV screen, the overscan area may not show accurately.

Developer Options

Currently, some third-party apps, such as Netflix and HBO Go, display recommendations on the Amazon Fire TV home screen in specific rows. For more information on recommendations, see Recommendations Overview.

Developer Options allows you to turn on a row called "Recommended By Your Apps" (displayed below the Netlix and HBO Go rows). This "Recommended By Your Apps" row will show recommendations sent from third-party apps.

Turning on this row shows recommendations from all third-party apps the user has installed (excluding some apps such as Netflix and HBO Go, which display recommendations on their own rows).

Network Proxy

If your app communicates with remote services or websites, it's often useful to inspect the HTTP or HTTPS traffic it generates. This includes requests initiated by your app and the responses it receives, as well as HTTP headers containing (among other things) cookies and caching information. See Network Proxy for more details.

Clear Credential Storage

This clears any credentials that have been set for apps on Fire TV.

Launch Network Advisor

Launches a network analysis window that checks your network connection strength, channel, and other details. If there are problems, the Network Advisor provides recommendations to fix the issues.

See Also

For more details, see the following:


Last updated: Oct 29, 2020