Port an Existing App to the Amazon Appstore
Depending on your app's code, you might need to make some updates to your code base for your app to successfully run on Fire OS devices. This page discusses the requirements that your app must meet and porting recommendations for submitting a Fire OS app to the Amazon Appstore.
- Overview of the porting process
- Supported APIs, services, and features
- Supported API levels
- App compliance
- Related resources
Overview of the porting process
To make an existing Android app compatible with Fire OS and port it to the Amazon Appstore, use the following process.
- Determine if your app uses any APIs, services, and features that aren't supported by Fire OS and migrate to a supported equivalent. For details, see Supported APIs, services, and features.
- Update your minimum API level as required for the Fire OS devices that you plan to support.
- Remove any unsupported features from your app. For details, see App compliance.
- Recompile your app.
- Submit your app to the Amazon Appstore.
Supported APIs, services, and features
If your app uses any APIs, services, or features that aren't supported by Fire OS, update your code to use the equivalent Amazon supported services and features.
The following table lists APIs, services, and features to modify in your Android app to enable it to work with Fire OS.
|API, service, or feature||Action|
|Google Sign-In||Use the Guided Workflow for Authentication to determine a solution based on the needs of your app.
Amazon-provided options include:
|Google Play In-App Billing||Use the Guided Workflow for In-App Purchasing to determine a solution based on the needs of your app.
Amazon-provided options include:
|Firebase Cloud Messaging||Use the Guided Workflow for Cloud Messaging to determine a solution based on the needs of your app.
Amazon-provided options include:
|Google Drive||Use the A3L Authentication SDK and Integrate with Google APIs.|
|Google Maps||Use the Amazon Maps API.|
|GPS geo-location on tablets without a mobile data plan||Use the Guided Workflow for Location to determine a solution based on the needs of your app.|
|Any phone feature||Code your app to degrade gracefully.|
|Device orientation||See Device Orientation.|
|Intents||See Supported Android Intents.|
|Screen sizes and layouts||See Screen Layout and Resolution.|
Firebase and alternatives
If you use Firebase libraries in your app, first determine whether the library is supported on Amazon Fire devices. Some Firebase libraries are compatible with Fire devices and you can continue to use them when porting your app. In cases where Firebase libraries aren't compatible, you can use an alternative solution, or disable the library on Fire devices.
Follow these steps to determine if a Firebase library works on Fire devices.
Determine if the library requires Google Play services. To do this, visit the Firebase documentation and review the "Google Play services not required" table. If the library doesn't require Google Play Services, you can continue to use it on Fire devices.
Determine if the library is listed in the Google Play Service required or recommended section.
If the library is listed as recommended, it might be partially compatible.
Currently, the AdMob and Analytics libraries are listed as recommended. This means while most features should work, some automatic insights are only available on devices with Google Play services.
If the library requires Google Play services, use an alternative library or disable the library on Fire devices.
If you've decided to explore using an alternative library, the following table can guide you to a suitable alternative that is compatible with Fire devices.
|Unsupported Firebase feature||Description||Compatible alternative|
|App Check Play Integrity provider||Prevents unauthorized clients from accessing an app's API resources.||Custom App Check Provider|
|App Check SafetyNet provider||Protects an app against security threats. This library is deprecated.||Custom App Check Provider|
|App Indexing||Indexes content to display in the Google Search App. This library is no longer recommended.||Android App Links or App Search depending on your requirements.|
|Cloud Messaging||Sends notification messages to a client app.||A3L Messaging|
|Dynamic Links||Determines where a link opens based on the environment where the user clicked the link.||Branch or GetSocial|
|Firebase Machine Learning (ML)||On-device machine learning for mobile apps.||AWS Machine Learning—use a solution that works for your needs.|
|Firebase ML Custom Model||Creates a custom ML model||AWS Machine Learning—use a solution that works for your needs.|
Supported API levels
Amazon recommends setting a minimum API level of 10 to ensure compatibility with all Fire tablets. For information about the Android OS versions for the Fire tablets, see Fire Tablet Device Specifications.
If your app uses methods introduced in:
- API levels 11 through 15 - You must modify your implementation such that you do not call those methods on Kindle Fire (1st Gen).
- API level 16 or 17 - You must modify your implementation such that you do not call those methods on Kindle Fire (1st Gen) and Kindle Fire (2nd Gen) tablets.
- API level 18 or later - You must modify your implementation such that you do not call those methods on Kindle Fire (3rd Gen).
For information about specifying API levels in your app, see Specify Minimum and Target API Levels in the Android training guide.
Before submitting your app to the Amazon Appstore, make sure that your app meets all of the requirements.
- Unsupported Features: Your app cannot include any of the following features, all of which are unsupported by the Amazon Appstore:
Note: If your app uses an API or hardware technology not supported on Fire OS, Amazon recommends that you remove or gracefully degrade any feature that requires that service. For example, your app might display a message stating that the feature is not currently available on this device.
- Screen savers
- Custom or third-party onscreen keyboards (use the default onscreen keyboard instead)
- Home screen widgets that manipulate the user interface
- disable_keyguard permissions
- Lock screen customizations
- App Content: Your app must comply with Amazon's Content Guidelines. See Amazon Appstore Content Policy.
- App Testing: Test your app thoroughly before submitting it to the Amazon Appstore. To review test criteria and recommended test cases, see Test Criteria for Amazon Appstore Apps.
Last updated: Dec 05, 2023