Knowledge Base Kindle
Contents |
Kindle
Summary of Kindle Device Types
Active Content Basics
File Size
The main binary file for the active content has an .azw2 extension. The file is just a JAR file that contains additional metadata necessary for the active content to run. The maximum allowed size is 100 MB. But it is better to keep the file size less than 1 MB; the vast majority of the published active content titles have a file size less than 1 MB.
Other Items
Here are several other important things to know about active content titles:
- They can store and access information only in their own home directories; no other resources on the device are accessible.
- They can open the online Kindle Store, but can't open an Internet browser.
- They can use HTTP or HTTPS network connections only. RMI, FTP, and other socket protocols are not allowed.
- They can't open certain file types (e.g., PDF).
- They must manage their own data structures; the KDK offers no database for active content titles to use.
- They can't display HTML content; the KDK doesn't include a component for this.
Kindle Device Types
Active content titles are available on the following E Ink Kindles:
- Kindle Touch
- Kindle
- Kindle Keyboard
- Kindle (2nd Generation)
- Kindle DX (Free 3G, 9.7", Graphite)
- Kindle DX (Free 3G, 9.7", White)
Note: Some of the devices are available with different networking options, in different colors, or with special offers. Although the different variations are not included in the preceding list, active content is available on those devices.
The following table shows basic characteristics of each Kindle type.
| Device | Screen Resolution | Keyboard Type | Network |
| Kindle Touch | 600 x 800 pixels overall 600 x 700 available to your title |
Onscreen, with different layouts | 3G (global) and Wi-Fi, or Wi-Fi only |
| Kindle | 600 x 800 pixels overall 600 x 760 available to your title |
Onscreen, with tabs | Wi-Fi |
| Kindle Keyboard | 600 x 800 pixels overall 600 x 760 available to your title |
Physical (no numbers) | 3G (global) and Wi-Fi, or Wi-Fi only |
| Kindle (2nd Generation) | 600 x 800 pixels overall 600 x 760 available to your title |
Physical | 3G |
| Kindle DX (Graphite or White) | 824 x 1200 pixels overall 824 x 1160 available to your title |
Physical | 3G (global) |
About the Kindle Names
The official names for the different Kindle devices have evolved as newer Kindles have been released. For example, the official name of what we commonly refer to as Kindle (3rd Generation) is now Kindle Keyboard; in the past it has been known as Kindle (Wi-Fi, 6") and Kindle (Free 3G + Wi-Fi, 6"). The currently available low-priced Kindle is simply called Kindle on Amazon.com; the other devices with different features are named Kindle Touch and Kindle Keyboard to distinguish them from the low-priced Kindle.
To clarify differences between Kindle device types please refer to
Kindle and E Ink Basics,
Active Content Basics,
Kindle Device Matrix pages of the KDK developer portal.
link title===Development Considerations for E Ink Displays===
Screen Updates
Latency of screen updates is one of the most important considerations to think about when designing the title.
LCD and other displays can change the contents of a screen in 30 milliseconds, whereas E Ink displays can take from 200 milliseconds to almost a full second, depending on the grayscale palette used.
Ghosting
Ghosting is a faint E Ink residue that remains visible when drawing over previously black or gray areas of the screen. Ghosting can look a little like screen burn-in, but it's easily fixed by flashing the display (see the next section for more information). A gray or black background causes more ghosting, so use a white background where possible. Black and white designs are more resistant to ghosting than gray designs. Ghosting is worse with fine checkerboard patterns or stippling (i.e., dithered images).
Flashing
You can update the screen with or without forcing a flash. Flashing is when the Kindle repaints the entire screen (or just a section you specify) black for a moment to fully clear the area before drawing the same (or newly updated) contents again. Flashing helps manage ghosting, which is the appearance of E Ink granules left behind over time after non-flashing changes to the screen (see the previous section). A region of the screen becomes noticeably dirty after six to ten updates in that same area without a flash . Also, the amount of time since the last flash plays a role in the amount of ghosting.
Flashing adds to the screen update latency and consumes additional power compared to a non-flashing screen update. Frequent flashing can also be distracting to the user. Therefore, it's important to devise a strategy for managing flashes in the application to give the overall best user experience. The device itself flashes the screen at certain times such as:
- When the application opens or closes
- When the screen saver turns on or off
- When the menu opens or closes (for Kindle Touch, this is the menu that's opened with the user presses the Menu button on the toolbar)
The developers of an application might insert their own flashes at certain points in your application.
Color Palette and Refresh Speed
The Kindle E Ink display supports 16 levels of gray (including black and white). However, it's faster to draw black and white on the screen than other shades of gray. Therefore, the grayscale color palette should be used very careful in UI of an application. It is recommended to use primarily black, white, 0xAA and 0x55 in an application. Here are more details about colors and refresh rates:
- Purely black and white regions refresh at 200 ms (about a quarter of a second). It is better to use black and white for fast moving elements such as cursors, highlighting, and push buttons.
- Regions that contain four shades of gray refresh at 560 ms (about half a second).
- A region containing all 16 grayscale levels refreshes at 780 ms (almost a full second).
- A gray region can move to black and white in 200 ms, but it leaves a trail at that speed. If the trail intersects several times, ghosting occurs, and two full-screen flashes are required to completely repair the region.
- The full 16-level palette should be used sparingly for JPEGs.
Correct Color Depth and Compression
For all images:
- The right color depth for the images must be used. Kindle supports 16 shades of gray, so it's a waste of space to use images that store more colors or shades of gray. It is better to convert any images to use an indexed color palette of 16 shades of gray. If it's just a black and white image, index to just those colors.
- If possible, using of alpha transparency should be avoided, because it results in slower performance.
It is better to use file compression if possible, i.e. to use GIF, JPEG, or PNG file formats for images. These different file formats have different characteristics, so the highest compression file format that meets the quality requirements for the specific image should be used.
Dithering
Drawing images in grayscale is typically slower than drawing them in black and white. One potential solution to this problem is to dither grayscale images. Dithering converts an image into black and white by spacing out black pixels on a white background to give the appearance of having different shades of gray. Dithering produces best results when used for images without gradual color transitions (gradients).
Quick Screen Updates
Any portion of the screen that need to be updated quickly should be pure black and white, with a 4-pixel margin to the nearest gray. This means that an anti-aliased font (which has gray elements) or have gray graphics can't be used too close to the area to be updated. For example, a pure black font on a white background is okay, but a gray frame around it could be a problem if the frame is too close to the font.
It is recommended to draw a black line on the selected white button. The worse cast scenario would be to repaint the button gray and the text white, which would result in a slow repaint and ghosting issues, and thus a poor user experience.
Best Practice: For areas on the screen that need to be quickly updated, better to use a pure black font without anti-aliasing on a pure white background. But no gray in the background within 4 pixels of the region to be repainted can be used.
Battery Usage
Long battery life is an important feature for Kindle users. As a result, when designing the title it's very important to pay attention to battery usage. Achieving long battery life is not simply about optimizing code; it is often that the entire user experience need to be crafted to enable great battery life..
Versioning
The first release of the title will always be 1.0. For subsequent updates, it is better to version the title as 1.1, 1.2, etc. It is recommended to add a version number and build number to the title
If the title has an About page, that's a good place to put the build number. If it doesn't, the version and build number should be putted at the end of any instructions the title may have.
For more information about versioning see Versioning Your Active Content Title page of the KDK developer portal.
To find more information about important considerations related to E Ink that need to be kept in mind when developing the title see the Title Development Best Practices page of the KDK developer portal.
How to design UI for Kindle and Previous Generations
For clarification on designing any element for Kindle and Previous Generations, please refer to the API 1.x: User Interface Guidelines for Kindle and Previous Generations page of the KDK developer portal.
Introduction to the Devices
For a summary of basic differences between Kindle devices, see the Kindle and E Ink Basics page of the KDK developer portal.
Screen Sizes and Orientation
All Kindle devices, except Kindle Touch, support API 1.x. The Kindle devices that API 1.x supports come with different screen sizes: either a 6" screen or the larger Kindle DX screen. Therefore, an API 1.x application must be prepared to handle two screen sizes. An application can determine whether the device has a 6" screen or the larger DX screen by checking the size of the root container.
In addition, for an API 1.x application must be decided how to handle orientation. Because Kindle is primarily a reading device, the default orientation is portrait. However, the user may rotate the device so the screen's orientation changes to landscape.
To get information on how the Kindle device controls should behave see the API 1.x: User Interface Guidelines for Kindle and Previous Generations page of the KDK developer portal.
General Design Guidelines for Kindle and Previous Generations
1. Follow the Native Kindle Experience
Kindle users are familiar with the reading experience on the device and expect the application to look similar and function in a similar manner. They'll also understand the application's interface more quickly if it feels familiar.
2. Make the UI Easy to Follow
When designing the application, it is recommended to think carefully about the different ways users can move through it, and what the user can and should do on each screen. Cluttering the screen with too many items should be avoided. The number of controls on each screen should be limited, and they need to be clearly and succinctly labeled.
3. Use Simple But Informative Labels, Text, and Symbols
To help users easily understand how the application works, it is better to use consistent, user-friendly terminology throughout the application. If the application uses any icons, they should to be intuitive and consistent in design, but easily distinguishable from each other.
4. Provide an Attractive but Simple Title Menu
Upon launch, applications typically display a title menu, often with graphics and a main set of options that includes things like Instructions, Options, etc.
This menu doesn't include items typically available during title use (i.e., during game play). Any usage-related menu items should be displayed when the user presses the Menu button.
5. Use Grayscale Appropriately
The Kindle E Ink display supports 16 levels of gray (including black and white). However, it's faster to draw black and white on the screen than other shades of gray. For more information on how Kindle devices reproduce colors and they refresh rates see Color Palette and Refresh Speed subsection of Development Considerations for E Ink Displays section.
6. Provide Tutorials and Help
Ideally users should be able to use the application without having to read help pages. However, if the application must have help pages, they should be kept succinct and not too dense. The content must be grammatically correct and free of spelling and punctuation errors.
UI Components for Kindle and Previous Generations
The Kindle user interface is built on top of the Personal Basis Profile (PBP), which is a subset of Java 1.4 designed for embedded devices. The PBP provides basic support for AWT, but does not provide any actual graphics components. For API 1.x applications, the KDK provides user interface components that are built as standard AWT Component and Container implementations.
Text Components
Text is used on many components of a KDK application, such as button labels, dialog box messages, contextual help, notifications, page content, and menu items.
Types of Text Components
The following table describes commonly used text components.
| Type of Text | Description |
| Labels | Read-only text. A text label can precede a text field (as in a confirmation dialog box), or simply be a one-line message inside a dialog box. Labels that are not full sentences should use initial capitalization ("Account Type";), but labels that are full sentences should use sentence capitalization ("Enter the name of Player 1:"). |
| Text input fields | Single-line area where the user can supply information by entering or modifying text. One example is in input dialog boxes (see Dialog Boxes). Text fields can be empty or contain hint text. |
| Text areas | Multi-line region of either read-only or editable text. These are found in contextual help (read-only) or in Notes & Marks (editable) when reading a book with Kindle. |
| Password fields | Text field that echoes a symbol character rather than the text being typed. |
Text Specifications
Here are some general specifications and recommendations for a text:
- All text fields and text areas must be labeled.
- User input into a text field should be large enough to read, but small enough to fit enough characters in the single line. The text should be sans serif, between 16 pt and 21 pt.
- For password fields, the default behavior is to set the echo character to a bullet or asterisk.
- Menu items should start with a capital letter.
- Button text can be all lowercase.
Buttons
Buttons are controls that perform an action when the user selects them. Buttons can be used to complete or acknowledge an action defined by a dialog box.
Buttons on the Kindle interface contain a brief command label on a black or white background.
Button Specifications
- Selected buttons have white text on a black background.
- Unselected buttons have black text on a white (clear) background. Icons are not used in Kindle buttons. Gray buttons are not recommended.
- Button labels generally use all lowercase letters, such as ok rather than OK or Ok.
- When possible, the button named after the action the user is performing. Instead of just "ok", it can say "go to settings", or "erase", or "save", or 'delete", or "reset".
- Button text is center-align.
Dialog Boxes
Dialog boxes and menus are the only types of software-instantiated pop-up components allowed. Dialog boxes on the Kindle display one at a time on the interface, rather than stacked or staggered. Dialog boxes display messages or options, either as part of the user flow, or to interrupt and block further interaction with the application until the user reads and dismisses the dialog box. The default, selected button in a dialog box is black.
There are three kinds of dialog boxes available:
- Message Dialog Boxes: Draw attention to vital information such as alerts or warnings. They have only one button: usually Close.
- Confirmation Dialog Boxes: Have a message (e.g., "Are you sure you want to quit?") and give two options, cancel and ok, which allow users to verify whether they want to continue.
- Input Dialog Boxes: Have a text box for collecting information from the user (e.g., "Enter the name of Player 1: ").
Pages of Content
Often, a user interface needs to display more information than fits on a single screen. The Kindle is designed to organize content into pages, and information that overflows a single screen is generally arranged into a series of pages that the user can switch between. The KDK does not provide any default containers to handle scrolling.
Color and Fonts
Note that anti-aliased fonts look best on black, white, light gray and dark gray backgrounds.
The recommended font sizes are 17, 19, 21, 25, 31, 36, 60, and 86 (in points). They've been optimized for the Kindle (3rd Generation) devices.
Important: Font sizes might vary between Kindle types.
How to design UI for Kindle Touch
For clarification on designing any element for Kindle Touch, please refer to the API 2.0: User Interface Guidelines for Kindle Touch page of the KDK developer portal.
Introduction to the Kindle Touch Interface
Overall Layout
- The screen size of Kindle Touch is 600 x 800 pixels.
- Status Bar. The status bar is always visible when your application is open. It shows basic information such as the name of the application, network status, battery usage, and the time. The status bar on Kindle Touch is 30 pixels high, and spans the width of the screen. Note that this bar on other generations of Kindles is 40 pixels high.
- Toolbar. Kindle Touch includes a toolbar at the top of the screen, just below the status bar. The toolbar is 70 pixels high and spans the width of the screen. The contents of the toolbar vary depending on the context. The preceding image shows the toolbar that displays when the application is open. This toolbar is always shown when the application is open. The status bar and toolbar take up a total of 100 pixels in height at the top of the screen, so the application has the remaining 600 x 700 pixels to work with.
The toolbar that is shown when the application is open includes these three items:
- Back button: The Back button provides navigation between applications on the device. An application can't use the button for in-application navigation.
- Shopping cart button: The shopping cart button exits the application and opens the Kindle Store.
- Menu button: The Menu button is available for an application to use. The menu has one or more default items (which can't be removed), and new items can be added. An application can also invoke the menu manually (i.e., not using the Menu button on the toolbar).
Onscreen Keyboard.
Kindle Touch has an onscreen keyboard that displays at the bottom of the screen when text input is required. The keyboard background is black, and the buttons are white with black text. The onscreen keyboard is 275 pixels high and spans the width of the screen.
Screen Orientation.
Currently KDK API 2.0 supports applications that use portrait orientation only.
Device Controls.
Kindles other than Kindle Touch have several physical buttons for navigation and other actions. Kindle Touch has only a Power switch and a Home button:
- The power button is not accessible with the KDK; however, toggling the power switch puts Kindle into sleep mode (i.e., screen saver mode).
- The Home button is also not accessible with the KDK. The Home button exits the application and returns the user to the Home screen.
For more information on the introduction to the Kindle Touch interface see the API 2.0: User Interface Guidelines for Kindle Touch page of the KDK developer portal.
General Design Guidelines for Kindle Touch
1. Follow the Native Kindle Touch Experience
Kindle users are familiar with the reading experience on the device and expect the application to look similar and function in a similar manner. They'll also understand the application's interface more quickly if it feels familiar.
2. Make the UI Easy to Follow
When designing the application, it is recommended to think carefully about the different ways users can move through it, and what the user can and should do on each screen. Cluttering the screen with too many items should be avoided. The number of controls on each screen should be limited, and they need to be clearly and succinctly labeled.
3. Exploit Touch in Your Application
Kindle Touch provides a more interactive experience than other generations of Kindle. Therefore, the touch screen interactivity should be embraced and exploited for the application.
4. Use Intuitive Gestures
Kindle Touch has a default set of gestures that users are familiar with. It is recommended to stick to those default gestures, and don't remap them to other actions. In general, defining new gestures should be avoided. However, if it is necessary to create new gestures, they should be made intuitive and correspond to the action in some way because users must learn and remember them. It's a bad experience if users must read the help content to determine the available gestures.
5. Use Simple but Informative Labels, Text, and Symbols
To help users easily understand how the application works, it is better to use consistent, user-friendly terminology throughout the application. If the application uses any icons, they should to be intuitive and consistent in design, but easily distinguishable from each other. If the user needs to tap or touch the icons for the purposes of navigation or game play, it is recommended to adhere to the touch target size guidelines.
6. Make Touch Targets Fingertip-Size
Users of the application must be able to accurately hit small UI elements such as buttons or icons. Note: Users of API 1.x applications (for other Kindles) are able to navigate and select items by using physical buttons instead of tapping the screen, therefore elements of API 1.x applications can be smaller and more closely spaced than on Kindle Touch.
Here are the guidelines for the touch target size for interactive UI elements in the application:
- Touch target size: 40 pixels
- Spacing between targets 10 pixels
If necessary, size of the visible UI element can be smaller than the element's touch target area. For example, a radio button is smaller than the 40 pixel minimum width, but the touch target area for the button would still be the full 40 pixels.
7. Make Text Input Efficient
Kindle Touch has an onscreen keyboard for input. The text input process should be as efficient for users as possible. It can be achieved by minimizing the number of taps that is required.
8. Provide an Attractive but Simple Title Screen
Upon launch, applications typically display a title screen, often with graphics and a main set of options that includes things like Instructions, Options, etc. The list of options should be short and simple, with fewer than seven items. The user simply taps one of the items to get started using the application.
9. Make Settings Simple to Understand and Use
If the application has settings or options, it is recommended to use controls that users are familiar with, such as radio buttons, check boxes, and toggles. It's rare that an application has a list of options longer than the screen; however, it is better to keep the settings to a single page, or two at the most.
10. Use Grayscale Appropriately
The Kindle E Ink display supports 16 levels of gray (including black and white). However, it's faster to draw black and white on the screen than other shades of gray. For more information on how Kindle devices reproduce colors and they refresh rates see Color Palette and Refresh Speed subsection of Development Considerations for E Ink Displays section.
11. Provide Tutorials and Help
IIdeally users should be able to use the application without having to read help pages. However, if the application must have help pages, they should be kept succinct and not too dense. The content must be grammatically correct and free of spelling and punctuation errors.
UI Components for Kindle Touch
The Kindle user interface is built on top of the Personal Basis Profile (PBP), which is a subset of Java 1.4 designed for embedded devices. The PBP provides basic support for AWT, but does not provide any actual graphics components. To implement the UI for Kindle Touch, the standard Java components are used, they were found in the Advanced Graphics and User Interface (AGUI), which is a subset of Swing.
1. Text Components
This section describes commonly used text components. Note: the tutorial on the KDK Developer Portal covers Swing, therefore some capabilities or components discussed in the tutorial and in this section might not be available to your API 2.0 application.
- Labels. Labels are for displaying read-only text, and can also be used to display images. A text label can precede a text field (as in a confirmation dialog box), or simply be a one-line message inside a dialog box. Labels that are not full sentences should use initial capitalization ("Account Type";), but labels that are full sentences should use sentence capitalization ("Enter the name of Player 1:").
- Text Fields. A text field is a single-line area where the user can supply information by entering or modifying text. As an example can be input dialog boxe. Text fields can be empty or contain hint text. They have sharp corners, unlike buttons and other components in the Kindle Touch UI.
- Text Areas. Text areas are multi-line regions of either read-only or editable text. These are found in contextual help (read-only) or in Notes & Marks (editable) when reading a book with Kindle. If the content is too large to fit inside the available area, scroll arrows appear at the bottom of the component. Users tap the arrows to scroll up and down through the content.
- Password Fields. A password field is a text field that echoes a symbol character rather that the text being typed.
- Text Selection. The user can still highlight part or all of the text, and tapping the component results in the cursor being displayed where the user tapped.
Text Specifications
Here are some general specifications and recommendations for the text:
- All text fields and text areas must be labeled.
- User input into a text field should be large enough to read, but small enough to fit enough characters in the single line. The text should be sans serif, between 16 pt and 21 pt.
2. Buttons
Buttons are controls that perform an action when the user taps them.
Button specifications:
- Buttons have black text on a white background, and rounded corners.
- When possible, the button should be named after the action the user is performing. Instead of just "OK", it can say "Go to Settings", or "Erase", or "Save", or "Delete", or "Reset", etc.
- Button text is center-align.
- Title capitalization should be used. In other words, every word should be capitalized except for articles, coordinating conjunctions, and prepositions of four or fewer letters. Note that in other Kindles, the button text is typically lowercase.
3. Dialog Boxes
Dialog boxes display messages or choices, either as part of the user flow, or to interrupt and block further interaction with the application until the user reads and dismisses the dialog box. They include a message in text and at least one button that dismisses the dialog box. Some dialog boxes can also take text inputs. All dialog boxes have rounded corners. There are three kinds of dialog boxes available:
- Message Dialog Boxes: These draw attention to vital information such as alerts or warnings. They have only one button: usually Close.
- Confirmation Dialog Boxes: These have a message (e.g., "Are you sure you want to quit?") and give two options, which allow users to verify whether they want to continue.
- Input Dialog Boxes: These have a text box for collecting information from the user (e.g., "Enter the name of Player 1: ").
4. Menus
The toolbar on Kindle Touch has a Menu button that invokes a menu of options. New items can be added to the menu.
Note: The KDK currently doesn't support the use of sub-menus in active content titles.
5. Lists
With a list, a user can select one or more objects from a group. Separators of the list can be turned off entirely, displayed in between the list items only, or displayed both in between the list items and at the top and bottom of the list.
6. Controls
This section covers several commonly used controls and what they look like on Kindle Touch.
| Type of Control | Description |
| Toggle Buttons | A toggle button is a button that has two possible states. |
| Radio Buttons | A radio button lets you create a group of options where a user can select only one option. |
| Progress Bars | A progress bar indicates the progress of some type of work. |
| Sliders | A slider lets the user specify a value by tapping a specific point within a bounded interval. |
| Spinners | A spinner lets users choose from a range of values that are in an obvious sequence (e.g., dates). |
7. Pages of Content
Often, a user interface needs to display more information than will fit on a single screen. The Kindle is designed to organize content into pages, and information that overflows a single screen is generally arranged into a series of pages that the user can switch between. This is a very different way of thinking than in many environments where the normal mode of interaction is scrolling.
SUBMIT: upload to Kindle Store
Here are some details about the steps of developing and submitting the title.
| Step | Description |
| 1 | Build and test on the Simulator and devices: Work on developing the title while iteratively testing on the Simulator and different types of Kindles. |
| 2 | Pass the pre-submission assessment tests: The title must pass all the tests described in the Pre-Submission Assessment Guide. |
| 3a | Submit your beta candidate:The beta candidate along with the merchandising assets can be submitted through the KDK developer portal. They'll take a first functional and editorial look at them and give the feedback. It might be needed to submit multiple builds to fully address the issues that is identified during this phase. Each time when submitting a build, it must pass the pre-submission assessment tests described in the Pre-submission Assessment Guide. Note: the title is not being fully tested during this phase of the submission/feedback cycle. |
| 3b | Submit your launch candidate: This is the version you feel is ready to go to customers. Full QA cycle will be done, which includes both technical and functional tests. The cycle of feedback/fix/test/resubmit will be repeated until the title passes QA. After the title passes QA, it will be putted through beta testing and once again the feedback provided. When any issues have been fixed, the title must pass (as usual) all the pre-submission assessment tests before it can be moved forward. |
| 4 | Publish your title: After everything is ready to go, the title can be made available for purchase. After the title is published, you can get sales reports and manage all your active content titles in the developer portal. |
There are multiple options for you to submit the title:
- we tell you how to do it or you do it following manuals from KDK developer portal (this is difficult for most clients).
- we go share screen with you and you log in from your computer, but we take control over it and submit everything while you watch.
- you give us your login and password for Your Active Content of the KDK developer portal and we do the submission.
The first phase in the publishing process is pre-submission assessment, which is a series of tests that must be done to make sure your title is ready for evaluation.
In general, the title is evaluated on these areas:
- Reliability: Does the title cause framework restarts (i.e., system reboots)? Does it perform well during state transitions (i.e., when the screen saver turns on and off)?
- Functional integrity: Does the title do what it's designed and expected to do? Do all the features work as they should? How is the overall user experience?
- Optimized for Kindle: Does the title perform well on E Ink? Do the Kindle buttons and keys work as they should in relation to your title?
For clarification on pre-submission assessment process, please refer to the Pre-submission Assessment Guide page of the KDK developer portal. Aside from giving details about the key evaluation areas, the guide also describes the tests that the title must pass each time when submitting a build.
When your title's test results are all PASS/NA, your active content title can be submitted for review, along with the required merchandising assets, etc. It can be done on the Your Active Content page of the KDK developer portal.
for the submission we need
- final bugtested version of the Kindle active content title - the Kindle active content title that passes all pre-submission assessment tests.
- Excel spreadsheet with the results of Pre-submission Assessment Tests and testing notes.
- language - this is to denote the language of your title. Default language is US English.
- name of your title - the name of your title as you would like it to appear in Kindle Store.
- price of your title - you are welcome to sell both paid and free titles in the Kindle Store.
- list of Kindle devices that can use your title.
- title support - the contact that KDK Developer Portal should work with to troubleshoot any problems with the title.
- merchandising assets:
- Main Product Image - the image customers see when they shop for your title.
- Screenshots - displayed on the product page in the Kindle Store.
- Product Description - displayed on the product page in the Kindle Store.
- Search Keywords - keywords that are relevant to your product.
- Video - displayed on the product page in the Kindle Store.
Note: To find information on how to prepare merchandising assets see SUBMIT: how to prepare Merchandising Assets section or Merchandising Assets Guide page of the KDK developer portal.
Submitting process
After the title binary has been received, KDK account manager will put it in the queue for an automated QA testing process that runs an extended battery of code and procedural tests. Because the pre-submission assessment tests have already been completed, the automated testing should be completed within 4 business days from title submission. KDK account manager will send a feedback on the tests results. If the title fails any of the tests, KDK account manager will provide information and guidance on possible solutions. Note: If changes to the title were made (based on the QA feedback), the pre-submission assessment tests must be re-run before resubmission of the title.
Securing Assets
Protecting digital assets is an important aspect of application development. When an active content JAR (.azw2) file is submitted through the developer portal, the compiled class files are encrypted with Amazon's digital rights management (DRM) scheme, which is intended to hinder unauthorized copying and distribution of files. However, non-class files are not encrypted with DRM and can be extracted from an active content JAR file simply by unzipping the JAR file. To prevent this, an active content non-class files must be encrypted prior to inclusion in the active content JAR file, and decrypted on the Kindle while executing. To this end, encryption credentials need to be secured. Encryption credentials stored in a class file will be encrypted with Amazon DRM.
TEST: Install the .azw2 file
While developing the application, the Kindle Simulator is commonly used for its testing. The Kindle Simulator is a Java application execution environment that approximates the behavior of the Java Virtual Machine found on Kindle devices and provides most of the same resources, restrictions, and characteristics.
To get more information about testing your application using the Kindle Simulator please refer to the Kindle Simulator User Guide page of the KDK developer portal.
The Kindle Simulator provides a convenient environment for testing, but it's important that your application was tested on Kindle itself. We highly recommend to test the application on all Kindle types that the application can run on.
To test your active content title on Kindle, the application must be signed with your private key, and the Kindle device must be registered for testing.
If your application is not signed with the private key or your Kindle device is not registered for testing please contact the developers of the application, or follow the instructions on the Testing Your Active Content on Kindle page of the KDK developer portal.
Testing on Kindle
Testing on the Kindle device consists primarily of running your signed application on the Kindle and observing that it behaves as you expected. To put your application on the Kindle device for testing:
- Using the supplied USB cable, connect the Kindle to the computer on which you built your application. The Kindle's file system will show up in a window on your computer.
- Place your application's .azw2 file into the Kindle's documents folder.
- Either disconnect the USB cable or eject the Kindle from your computer.
- Press the Home button on your Kindle and select your active content title on the Home screen. In the event of application failure, results are written to the Kindle's /developer/<application name>/work/crash.log.
- Proceed with your application testing.
Enjoy it!
SUBMIT: how to prepare Merchandising Assets
For more recommendations on how to prepare merchandising assets for your title and the examples please refer to the Merchandising Assets Guide page of the KDK developer portal.
Main Product Image
This is the image customers see when they shop for your title on Amazon.com. It plays an important role in selling your title, so create an attractive color image that stands out in the crowd and represents your product well. The same image is displayed on both the Amazon website (in color) and on Kindle (in grayscale), so it's critical that you create this image to look good both as a large color image and as a 75 x 75 pixel grayscale image.
The following image illustrates some of the main guidelines to follow.
Main Product Image Specifications
- Format: GIF, JPEG, or PNG
- Shape: Square
- Minimum Dimensions: 800 x 800 pixels
- Resolution: 72 dpi
- File Size: Max 1 MB
- Subtitle: Do NOT include "for Kindle" or "for Kindle devices" in the subtitle or other text. This is a new specification required of new titles as of March 2011, so you'll see product images and titles released before then that include the text (such as the preceding image).
Screenshots
A Kindle screenshot or screen capture is a static picture of your Kindle's display. You must provide three screenshots per general device type that the title supports. The screenshots are displayed on the product page in the Kindle Store (both on the Amazon.com website and on Kindle). These screenshots help customers visualize your product before purchase.
Rule of thumb: don't show the exact (or similar) screen more than once. Carefully review for written content that may not be suitable to share with customers. Don't forget to crop the Kindle status bar (and toolbar on Kindle Touch) out of your images.
Screenshot Specifications
- Number: Three per general device type the title supports (i.e., three for Kindle Keyboard, three for the new Kindle, three for Kindle Touch)
- Format: GIF, JPEG, or PNG
- Orientation: Portrait only
- Dimensions: 600 x 760 pixels for devices prior to Kindle Touch, 600 x 700 pixels for Kindle Touch (i.e., toolbar is cropped)
- File size: Max 1 MB
- Subject: Screenshots must be of the final product
Taking a Kindle Screenshot
Use the following procedures to take a screenshot. You can take many screenshots before downloading them to your computer; they will be saved under different file names on your Kindle.
To take a screenshot on devices other than Kindle Touch:
- While on the screen you want to capture, do one of the following depending on the type of Kindle:
- Kindle Keyboard or previous generation: Simultaneously press Alt+Shift+G.
- Kindle: Simultaneously press Keyboard+Menu.
- Connect your Kindle to your computer using USB.
- Find all the screenshots in the documents directory.
- Crop the status bar from the top of each screenshot.
To take a screenshot on Kindle Touch:
- Press and hold the Home button for two seconds.
- While still pressing the Home button, tap the screen (anywhere in the middle is fine).
- Release the Home button.
- Connect your Kindle to your computer using USB.
- Find all the screenshots in the device's root directory.
- Crop the status bar and the toolbar from the top of each screenshot.
Note: If you're not careful, the device might interpret the button press and the tap gesture as separate inputs, which means you might end up on the Home screen instead of taking a screenshot.
Product Description
To enable Kindle customers to make an educated decision about purchasing your product, you should provide a product description with the most complete but concise information possible. The tone should be trustworthy, fun, smart, casual, helpful, and intelligent. Before you write your product description, we suggest you review published examples at http://amazon.com/kindleactivecontent.
Product Description Specifications
- 1 description per product.
- 1000 characters max, including spaces. Try to use as many of the 1000 characters as possible—customers want to know what they get before they buy.
- Plain text only. No HTML or Rich Text formatting. Special formatting will not render correctly.
- Use proper grammar, case sensitivity, and punctuation.
- Use spell check.
- Avoid yelling in ALL CAPS.
- Avoid using exclamation points.
- Avoid references to other products or websites.
- Avoid comments on Kindle device type compatibility.
- Pass 'n' Play. Use the term Pass 'n' Play if your title supports single-device multiplayer activity. For example, a game like Checkers where the two players hand Kindle back and forth to take turns.
Note: We reserve the right to exercise editorial discretion in reference to all content submitted to us.
Search Keywords
To help customers find your title, provide search keywords that are relevant (these could include associated slang words, gaming vernacular, etc.). Amazon's search logic already includes generic terms specific to the Kindle store: Kindle, active content, etc. The publisher and product title are also automatically incorporated into search keywords, so you don't need to add those. Five keywords are allowed.
Note: We reserve the right to exercise editorial discretion in reference to all content submitted to us.
Videos
Videos are encouraged for all titles. Videos can be in the form of gameplay teasers or trailers, raw or unedited game play footage, or special highlights. Amazon is not allowed to use videos that display logos, watermarks, or other external identifiers. Video players on Amazon usually render videos at 320 x 240 or 368 x 276. However, since we allow customers to view videos at full screen, we generally encode to a higher quality than this to ensure videos still look good at full screen resolutions.
Note: If you create a video for your title, please provide it directly to your KDK account manager. The title submission page on the KDK developer portal does not accept video uploads.
Video Specifications
- Input Formats (in order of preference): MPEG-2, Windows Media Video, FLV (On2 VP6 or Spark codecs). MPEG-4; Quick Time is not preferred (videos perform poorly in our category page player).
- Minimum Video Quality: At least 720px wide, at least 872 kbps. Both 4:3 and 16:9 aspect ratios work equally well.
- Minimum Audio Quality: 128 kbps stereo, 44100 Hz sample rate.
- File Size: To help keep upload times down and encode errors to a minimum, we recommend a file that is under 300 MB. The max size is 500 MB.
- Age-Gating: Age-gating is supported. Please include the age for which your video must be age-gated (if any) in the file name, or let us know when you provide the video file.
Useful resources
For getting accesses to the documentation about Kindle devices please register into KDK developer portal: https://kdk.amazon.com/gp/vendor/kindlepubs/kdk/log-in?ie=UTF8&%2AVersion%2A=1&%2Aentries%2A=0
Useful documents on KDK developer portal:
Introduction to the KDK
Kindle and E Ink Basics
Active Content Basics
Kindle Device Matrix
Title Development Best Practices
API 1.x: User Interface Guidelines for Kindle and Previous Generations
API 2.0: User Interface Guidelines for Kindle Touch
Pre-Submission Assessment Guide
Merchandising Assets Guide
Testing Your Active Content on Kindle
Kindle Fire
Introduction to the Kindle Fire
This is a description of Kindle Fire for Injoit's clients to understarnd how their apps will be able to behave. Updated: 05 Dec 2011.
Supported formats
Kindle Fire supports the following formats:
- Document (AZW, TXT,PDF, MOBI, PRC, DOC, DOCX)
- Image (JPEG, GIF, PNG, BMP)
- Music (MP3, Non-DRM AAC, MIDI, OGG, WAV)
- Video (MP4, VP8)
- Audio (AAC LC/LTP, HE-AACv1 (AAC+), HE-AACv2 (enhanced AAC+), AMR-NB, AMR-WB, MP3, MIDI, Ogg Vorbis, PCM/WAVE)
- Audible.com (AA, AAX)
Specifications of Kindle Fire
For the app to work on Kindle Fire, it needs to be compatible with the device's specifications
- At a high level, it must be optimized for non-Google Mobile Services (GMS) Android 2.3.4 (Gingerbread) and a 7" screen with a resolution of 1024 x 600.
- It should specify support for large screens.
- The app cannot require a gyroscope, camera, WAN module, Bluetooth, microphone, GPS, or micro-SD to function.
- It must not be a theme or wallpaper that manipulates the user interface of the device.
- As with any other app submission to the Amazon Appstore for Android, the app is also need to comply with Amazon's Content Guidelines that you can find in the Approval Process and Content Guidelines section of the FAQ on the Amazon Appstore developer portal.
Dimensions of the status bar. The status bar is 40px high.
Google Mobile Services. Apps that run on Kindle Fire do not currently have access to Google Mobile Services (GMS).
Google's in-app purchasing technology. Because Google's in-app purchasing technology requires access to Google Mobile Services, it will not work on Kindle Fire.
E-mail client.
Kindle Fire has a pre-installed e-mail client that will respond to both mailto links and e-mail intents.
SD card. Kindle Fire has an internal SD card that your application can write to. Kindle Fire's SD card is internal and is not removable.
Third-party keyboards. Third-party keyboards are not compatible with Kindle Fire.
Root access. Kindle Fire does not support apps that require root access.
Adobe AIR. Adobe AIR is pre-installed on Kindle Fire. Adobe AIR 3 applications can be published for the Kindle Fire by packaging them as ‘captive runtime’ applications. However, these captive runtime applications will not support on-device debugging.
Specific features that Kindle Fire supports
Kindle Fire supports the features in the following list. To ensure your app is compatible with Kindle Fire, it should only use features found in this list.
| Feature | Type | |
| 1 | An accelerometer | Sensors |
| 2 | A light sensor | Sensors |
| 3 | Landscape mode | Screen |
| 4 | Portrait mode | Screen |
| 5 | Touchscreen capabilities that are more interactive than basic touch events | Touchscreen |
| 6 | Basic two-point multi-touch capabilities | Touchscreen |
| 7 | The ability to track two points fully independently | Touchscreen |
| 8 | The device or the app itself can behave as a USB device (and connects to USB hosts) | USB |
| 9 | 802.11b/g networking | Wi-Fi |
To learn more about making your apps available at the Amazon Appstore and on Kindle Fire please visit the Kindle Fire FAQs.
DESIGN: how to prepare resources for Kindle Fire apps
Kindle Fire is Android based device so for information on preparing UI elements for Kindle Fire please refer to the DESIGN: how to prepare resources for Android apps section of the Knowledge Base for Android Apps. Note: The Supporting multiple resolutions subsection is not applicable for Kindle Fire.
SUBMIT: upload to Amazon Appstore
There are multiple options for you to submit the application:
- we tell you how to do it or you do it following manuals from Amazon Appstore Developer Portal (this is difficult for most clients).
- we go share screen with you and you log in from your computer, but we take control over it and submit everything while you watch.
- you give us your login and password for Developer Portal Account into Amazon Appstore Developer Portal and we do the submission.
Note: If you submit an application for the first time you must open your Developer Portal Account. To open your Developer Portal Account, please, refer to: https://developer.amazon.com/welcome.html.
Click the Get Started button and the Developer Portal will guide you through account creation. Once you complete your account creation and accept the Appstore Distribution Agreement, you can start submitting your applications.
To find information on how the app approval process goes and the content guidelines of Amazon please refer to the Approval Process and Content Guidelines section of the FAQ page on the Amazon Appstore Developer Portal.
for the submission we need
- a final bugtested version of the app - if the size of your app is more then 30MB, it will be uploaded into FTP server. To request a new FTP log-in or to retrieve existing one FTP log-in, please, refer to: https://developer.amazon.com/ftp_account.html. Please pay close attention to the naming conventions of the files that you wish to upload via FTP. It is necessary that you follow the naming conventions exactly in order for the system to recognize your files. Please use the Application Asset Name Helper if you are unsure about how to name your files.
- language - this is to denote the language of your application. Default language is US English.
- title of your app - the name of your application as you would like it to appear in Amazon Appstore.
- the description of your application (in English) and its category - the description of your application as you would like to appear in Amazon Appstore.
- 99$ (annual program developer fee) - annual developer program fee covers the application processing and account management for the Amazon Appstore Developer Program/
- price of your app - you are welcome to sell both paid and free apps in the Amazon Appstore. Amazon pays developers 70% of the sale price of the app or 20% of the list price, whichever is greater.
- app support - the contact that Amazon should work with to troubleshoot any problems with the application. This information will not be listed with your app.
- product availability schedule - this information lets Amazon know the earliest when an app can be displayed in the store as well as when/if needed to pull the application down.
- content maturity - when posting the app, its content rating will be required. This rating will be also checked by Amazon while testing the app. If you have ESRB ratings for the app, please include it too - that will help with the marketing.
- required assets:
- a small icon.
- a thumbnail - a larger version of the icon.
- screenshots (3-10) - the screenshots should accurately depict your application.
additional info:
- certificate - all applications must be digitally signed with a certificate. The default signature applied to your app is a certificate supplied by Amazon that is unique to your developer account. If your signing strategy requires that a different certificate be applied, you should provide us with the certificate and we will submit it for your application.
- DRM - for each app that you want to submit to the Amazon Appstore, you can choose to apply. DRM or make your app available without any rights management constraints.
- keywords -If there are keywords you think will help with the discoverability of your app, you should include them. Please make sure that the keywords are relevant.
- additional assets:
- promotional.
- video (0-5).
Amazon Appstore encourages you to submit as many merchandising assets as possible.
The assets must conform following specifications:
| Asset Type | Description | Specifications |
| Icon | A representative icon for display on the desktop of the mobile device after app installation |
|
| Thumbnail | A larger version of the icon image (this should be the same image as the icon) for use in search results and on product detail pages |
|
| Screenshots | A minimum of three app screenshots and a maximum of 10 for use on Amazon.com product detail pages |
|
| Promotional | For use in promotional placements (apps cannot be featured on the homepage without these images) |
|
| Video | When available, up to 5 videos about your app are placed on product detail page. Videos will be embedded so it's important that you meet these specifications |
|
Thumbnails
- The thumbnail is a larger version of the icon for use in search results and on product detail pages; the thumbnail should be the same graphic as the smaller icon image. Please ensure the thumbnail is clear and sharp. Do not just scale up the PNG image of your icon-doing so results in a blurry image that is not compelling to customers
- Make sure you own the rights to the images you use.
Screenshots
- Material that is subject to copyright, trademark, or other intellectual property protection should only be included if you have obtained all necessary rights and licenses
- The screenshots must be unaltered images from the app that are indicative of the user experience-they should not contain additional text, graphics, or inset images
- If the app doesn't use the full device screen, crop the OS taskbar (e.g., clock, battery, and reception icons) out of your screenshots; this generally reduces the size of your screenshot to approximately 480 x 760 pixels (or 760 x 480)
- If your screenshots will display personal information (e.g., account names, log-in information), please populate the fields with dummy information
- If the app requires you to input information to demonstrate its functions (e.g., a social-network feed, recent searches, etc.), please populate those fields with dummy information that is representative of the average customer experience
Videos
- You may insert additional text, audio, and images into your videos, but the video must showcase/demo the app content and remain relevant to the actual user experience throughout its length
- Videos should be produced in a manner that is optimal for demoing the app content to the user. Things to consider when creating your video include; Eliminate visual and audio distractions that are unrelated to the content of your app, keep your video steady by using a tripod or other stable base to hold the camera, or capture video output directly from your app, and if capturing video externally, maximize the visibility of your app by avoiding harsh glare, reflections, etc
- If the app requires you to input personal information (e.g., account names, log-in information, social-network feed, etc.), please populate the fields with dummy information
- Videos must not advertise a competing storefront without also advertising the Amazon Appstore
- Videos must not feature a device or OS that is not supported by the Amazon Appstore without also featuring one that is (e.g., if iOS is shown/mentioned, Android OS must be as well)
Screenshots
- Highlight the app's most interesting features in a logical progression that mimics an average user's experience
- Focus on the app's core functionality, while touching upon one or two of its smaller, less prominent features
- Begin at the broadest area of user interaction (e.g., the main menu), comprehensively document the app's main feature(s), and explore the app's peripheral features, menus, settings, etc.
- If the app allows switching between portrait and landscape modes, be sure to consider which layout best accentuates each of the app's features-and feel free to alternate between the layouts when taking screenshots
- Don't pack too much information into each screenshot-give each feature enough room to breathe
Here are some recommendations for creating great images for all your submissions:
- Create separate app icons and thumbnails. These images should be the same with dimensions being the only difference between the two. This will be the first image customers interface with, so keep the image simple, vibrant, and most importantly clear.
- Fill the space required with all images. For icons especially, if your image is not a perfect square, or if it has a curved border enclosing the image, add a transparent background. Icons show up against both a white background and a black background in our store.If you have a non-transparent white background to fill the dimensions for the required image, it will look broken against the black background.
- Provide screenshots that really show what your app can do – put your (app's) best face forward. This is your opportunity to show-off your app's best features.
- Make sure you own the rights to the images you use. Think the top selling apps have cool images? The developers behind those apps think so too. So, if you want to use someone else's images you must prove that license-free images are indeed free, you own rights to and/or can use the images without a license, or have permission to use licensed images.
- Use high resolution images only. Stretching and morphing of images are not allowd.
Here’s an example of good icon image:
TEST: Install the APK file
To install the application on your Kindle Fire you need to prepare your device first. The Kindle Fire needs to be configured so that is can allow the installation of apps from unknown sources.
Preparing your device
- Tap on the Settings icon located at the top right corner of the home screen.
- From the menu that will come up, go to More.
- On the main Settings screen you have to tap Device.
- Set “Allow Installation of Applications From Unknown Sources” to On.
Installing app using a PC
- You have to install a file manager into your Kindle Fire. You should be able to find several at the Amazon Appstore. Just search the app store for “file manager”.
- Connect the device to your PC using a USB cable.
- Tap on the Connect button which will automatically appear on the screen of the device once connected.
- Copy the APK file.
- Browse the directories or folders of the Kindle Fire from your PC and paste the APK file on one of the device folders.
- Disconnect the tablet from your PC. Tap the disconnect button first before pulling out the cable from your PC.
- Open the file manager app on your Kindle Fire and look for the directory where the APK file was stored.
- Tap on the APK file to install the app.
For testing your app on standard Android emulator, to simulate the Kindle Fire device platform, you should configure your emulator with the following characteristics:
- Width¹: 600px
- Height¹: 1024px
- Abstracted LCD Density: 169
- Target: Android 2.3.4 - API Level 10
- RAM: 512 MB
¹Note: The device will reserve 20px to display a soft key menu, making the effective portrait resolution 1004px high x 600px wide and the effective landscape resolution 580px high x 1024px wide.
Enjoy it!