Introduction
Before building and optimizing your apps for the Kindle Fire tablets, it's important to consider the differences in device and feature specifications. This article provides device and feature specifications for each of the Kindle Fire tablets.Specifications
The following are specifications for each of the Kindle Fire tablets.
| Item | Kindle Fire (2nd Gen) | Kindle Fire HD 7" | Kindle Fire HD 8.9" Wi-Fi | Kindle Fire HD 8.9" WAN | Kindle Fire (1st Gen) |
|---|---|---|---|---|---|
| Screen size | 7-inch screen | 7-inch screen | 8.9-inch screen | 8.9-inch screen | 7-inch screen |
| Screen resolution | 1024px x 600px | 1280px x 800px (supports 720p "HD" resolution) | 1920px x 1200px (supports 1080p "HD" resolution) | 1920px x 1200px (supports 1080p "HD" resolution) | 1024px x 600px |
| Status bar (top) | 27px | 35px | 40px | 40px | 27px |
| Soft keys bar (when toolbar is visible) | 60px | 78px | 90px | 90px | 60px |
| Fullscreen handle (when toolbar is collapsed) | 51px x 29px | 67px x 38px | 67px x 38px | 67px x 38px | 51px x 29px |
| Abstracted LCD density | “mdpi” | “hdpi” | "hdpi" | "hdpi" | “mdpi” |
| RAM | 1024 MB | 1024 MB | 1024 MB | 1024 MB | 512 MB |
| CPU | Dual Core TI OMAP4 (4430) HS, 1.2 GHz | Dual Core TI OMAP4 (4460) HS, 1.2 GHz | Dual Core TI OMAP4 (4470) HS, 1.5 GHz | Dual Core TI OMAP4 (4470) HS, 1.5 GHz | Dual Core TI OMAP4 (4430) HS, 1.0 GHz |
| GPU | Imagination PowerVR | Imagination PowerVR | Imagination PowerVR | Imagination PowerVR | Imagination PowerVR |
| WiFi | 802.11 b/g/n | 802.11 a/b/g/n | 802.11 a/b/g/n | 802.11 a/b/g/n | 802.11 b/g/n |
| Bluetooth | Not available | BT 3.0 + EDR (HID and A2DP profiles only) | BT 3.0 + EDR (HID and A2DP profiles only) | BT 3.0 + EDR (HID and A2DP profiles only) | Not available |
| Location services | WiFi-based | WiFi-based | WiFi-based | WiFi-based, GPS and aGPS | Not available |
| Device software | Based on Android 4.0.3, API level 15 | Based on Android 4.0.3, API level 15 | Based on Android 4.0.3, API level 15 | Based on Android 4.0.3, API level 15 | Based on Android 2.3.3, API level 10 |
Heap size (default)android:largeHeap="false" |
48 MB | 48 MB | 64 MB | 64 MB | 64 MB |
Heap size (large)android:largeHeap="true" |
256 MB | 256 MB | 256 MB | 256 MB | 64 MB (android:largeHeap is ignored) |
| Front-facing camera | Not available | Yes | Yes | Yes | Not available |
| Microphone | Not available | Yes | Yes | Yes | Not available |
| android.os.Build.MANUFACTURER | Amazon | Amazon | Amazon | Amazon | Amazon |
| android.os.Build.MODEL | KFOT | KFTT | KFJWI | KFJWA | Kindle Fire |
In general, apps optimized for a tablet experience will work on Kindle Fire tablets. To improve compatibility with the Kindle tablets, we recommend you use APIs that are backwards compatible with the Android 4.0.3 platform (Ice Cream Sandwich API 15) for the Kindle Fire (2nd Generation), Kindle Fire HD 7", and Kindle Fire HD 8.9"; and with the Android 2.3.3 platform (Gingerbread API 10) for Kindle Fire (1st Generation).
Feature Detection vs. Device Detection
When developing on the Android platform, the apps you'll write may be run on an extensive array of devices that differ in screen sizes, hardware features, and software implementations. There are two different methods to determine the requirements for the different devices; feature detection and device detection.
- Feature detection refers to making queries about features of the device hardware or software.
- Device detection refers to making a query that reveals the device on which the app is currently running.
We recommend you develop your apps to use feature detection first and only perform device detection when absolutely necessary.
Before performing device detection in your app, please note: you are introducing code that may be difficult to maintain—proceed with caution.
Feature detection can be performed in several different ways, such as querying
the package manager, performing reflection, or checking the result of convince methods.
For instance, an app may want to determine if a camera intent is available.
In this case, the PackageManager would be the best way to determine if
the appropriate software is installed on the device to make the request.
/**
* Determines if the current device can handle an image capture action.
* @return true if the device can handle an image capture action. False if it cannot.
*/
protected boolean canHandleCameraIntent() {
final Intent intent = new Intent(android.provider.MediaStore.ACTION_IMAGE_CAPTURE);
final List<ResolveInfo> results = getPackageManager().queryIntentActivities(intent, 0);
return (results.size() > 0);
}
To perform device detection, you can use the Android.os.Build object to query the MANUFACTURER and MODEL properties.
Supported Technologies
Kindle Fire tablets provide support for the following technologies.
-
Amazon In-App Purchasing
Amazon provides its own In-App Purchasing API that allows you to make digital content and subscriptions available for sale in your app. Because Google's in-app purchasing technology requires access to Google Mobile Services, it will not work on Kindle tablets. -
GameCircle
Amazon provides a set of services designed to make it easier for you to create more engaging gaming experiences. Learn more about GameCircle. -
Maps
Learn more about the Amazon Maps API. Note: Kindle Fire (1st Generation) does not support the use of the Maps API. -
E-Mail Support
Kindle Fire tablets have a pre-installed e-mail client that will respond to both mailto links and e-mail intents. -
SD Card Support
Kindle Fire tablets have an internal SD card that your app can write to. Kindle Fire tablets' SD card is internal and is not removable. You should not have to change your app for Kindle Fire tablets if it currently stores data on the SD card. To write to the internal SD card on Kindle Fire, usegetExternalStorageDirectory(). -
Audio Formats
Kindle Fire tablets support the following audio formats natively: AAC LC/LTP, HE-AACv1 (AAC+), HE-AACv2 (enhanced AAC+), AMR-NB, AMR-WB, MP3, MIDI, Ogg Vorbis, and PCM/WAVE. - Video Formats
MP4, VPS, HLS. Note: Kindle Fire (1st Generation) does not support HLS. -
Adobe AIR
Adobe AIR version 2.7.1 is pre-installed on Kindle Fire (1st Generation); Adobe AIR version 3.1 is pre-installed on the Kindle Fire (2nd Generation) and Kindle Fire HD tablets. You can publish Adobe AIR 3 apps for the Kindle Fire tablets by packaging them as "captive runtime" apps. However, these captive runtime apps will not support on-device debugging.
User Agent Strings
The Kindle Fire tablets include the Amazon Silk browser and android.webkit.WebView, which send user agent strings as identification. For example, the browser may provide the version of the host operating system, the version of the browser, and other information.
An app or web page can read the user agent string to detect a Kindle Fire tablet and then provide a specific user experience.
The following table shows the Kindle Fire user agent strings for the Silk browser and android.webkit.WebView. The user's browser settings, specifically the preference for desktop website view or mobile website view, can affect which user agent string Silk sends.
In the following table:
<locale>indicates the chosen language and country or region for the tablet. Locale is in hyphenated lowercase format. For Kindle Fire (1st Generation),<locale>is alwaysen-us.-
<state>indicates the cloud browsing state, which can betrueorfalse. Users can change the state. -
<version>indicates the version of the Silk browser. For the Kindle Fire (2nd Generation) and Kindle Fire HD tablets, the version is in the formatmajor.minor, for example2.1. When Amazon updates the software on the Kindle Fire tablets, the browser version can change. For Kindle Fire (1st Generation), the table shows a specific Silk browser version. -
<webkit>and<safari>indicate the versions for WebKit and Safari, for example535.19. When Amazon updates the software on the Kindle Fire tablets, these versions can change. For Kindle Fire (1st Generation), the table shows specific WebKit and Safari versions.
| Tablet | User agent | String |
|---|---|---|
| Kindle Fire (2nd Generation) | Silk, desktop view | Mozilla/5.0 (Linux; U; <locale>; KFOT Build/IML74K) AppleWebKit/<webkit> (KHTML, like Gecko) Silk/<version> Safari/<safari> Silk-Accelerated=<state> |
| Silk, mobile view | Mozilla/5.0 (Linux; U; Android 4.0.3; <locale>; KFOT Build/IML74K) AppleWebKit/<webkit> (KHTML, like Gecko) Silk/<version> Mobile Safari/<safari> Silk-Accelerated=<state> |
|
android.webkit.WebView |
Mozilla/5.0 (Linux; U; Android 4.0.3; <locale>; KFOT Build/IML74K) AppleWebKit/<webkit> (KHTML, like Gecko) Version/4.0 Safari/<safari> |
|
| Kindle Fire HD 7" | Silk, desktop view | Mozilla/5.0 (Linux; U; <locale>; KFTT Build/IML74K) AppleWebKit/<webkit> (KHTML, like Gecko) Silk/<version> Safari/<safari> Silk-Accelerated=<state> |
| Silk, mobile view | Mozilla/5.0 (Linux; U; Android 4.0.3; <locale>; KFTT Build/IML74K) AppleWebKit/<webkit> (KHTML, like Gecko) Silk/<version> Mobile Safari/<safari> Silk-Accelerated=<state> |
|
android.webkit.WebView
| Mozilla/5.0 (Linux; U; Android 4.0.3; <locale>; KFTT Build/IML74K) AppleWebKit/<webkit> (KHTML, like Gecko) Version/4.0 Safari/<safari> |
|
| Kindle Fire HD 8.9" Wi-Fi | Silk, desktop view | Mozilla/5.0 (Linux; U; <locale>; KFJWI Build/IML74K) AppleWebKit/<webkit> (KHTML, like Gecko) Silk/<version> Safari/<safari> Silk-Accelerated=<state> |
| Silk, mobile view | Mozilla/5.0 (Linux; U; Android 4.0.3; <locale>; KFJWI Build/IML74K) AppleWebKit/<webkit> (KHTML, like Gecko) Silk/<version> Mobile Safari/<safari> Silk-Accelerated=<state> |
|
android.webkit.WebView |
Mozilla/5.0 (Linux; U; Android 4.0.3; <locale>; KFJWI Build/IML74K) AppleWebKit/<webkit> (KHTML, like Gecko) Version/4.0 Safari/<safari> |
|
| Kindle Fire HD 8.9" WAN | Silk, desktop view | Mozilla/5.0 (Linux; U; <locale>; KFJWA Build/IML74K) AppleWebKit/<webkit> (KHTML, like Gecko) Silk/<version> Safari/<safari> Silk-Accelerated=<state> |
| Silk, mobile view | Mozilla/5.0 (Linux; U; Android 4.0.3; <locale>; KFJWA Build/IML74K) AppleWebKit/<webkit> (KHTML, like Gecko) Silk/<version> Mobile Safari/<safari> Silk-Accelerated=<state> |
|
android.webkit.WebView |
Mozilla/5.0 (Linux; U; Android 4.0.3; <locale>; KFJWA Build/IML74K) AppleWebKit/<webkit> (KHTML, like Gecko) Version/4.0 Safari/<safari> |
|
| Kindle Fire (1st Generation) | Silk, desktop view | Mozilla/5.0 (Macintosh; U; Intel Mac OS X 10_6_3; en-us; Silk/1.0.22.79_10013310) AppleWebKit/533.16 (KHTML, like Gecko) Version/5.0 Safari/533.16 Silk-Accelerated=<state> |
| Silk, mobile view | Mozilla/5.0 (Linux; U; Android 2.3.4; en-us; Silk/1.0.22.79_10013310) AppleWebKit/533.1 (KHTML, like Gecko) Version/4.0 Mobile Safari/533.1 Silk-Accelerated=<state> |
|
android.webkit.WebView |
Mozilla/5.0 (Linux; U; Android 2.3.4; en-us; Kindle Fire Build/GINGERBREAD) AppleWebKit/533.1 (KHTML, like Gecko) Version/4.0 Safari/533.1 |
Unsupported Technologies
If your app takes advantage of an unsupported API or hardware technology, we recommend that you either remove the features that require these services or modify them to degrade gracefully when invoked (for example with an error message such as "This feature is not currently available on this device.").
In addition, your app must not be a theme, wallpaper, screen saver, or home screen widget that attempts to manipulate the user interface of the device. Kindle Fire tablets do not support apps that use disable_keyguard permissions or customize the lock screen. Your app must also comply with our Content Guidelines. For information about criteria we use to assess Kindle Fire apps for publication on Amazon.com, see our Kindle Fire Pre-Submission Assessment Guide.

