Port Existing Android App to Fire OS
Depending on your app's code, you might need to make some updates to your code base for your Android 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
- Step 1. Determine if APIs, services, and features are unsupported
- Step 2. Update your minimum API level
- Step 3. Remove unsupported features
- Step 4. Recompile and test your app
- Step 5. Submit your app
- SDKs and libraries compatible with Fire OS
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 are unsupported by Fire OS and migrate to a supported equivalent.
- Update your minimum API level as required for the Fire OS devices that you plan to support.
- Remove any unsupported features from your app.
- Recompile and test your app.
- Submit your app to the Amazon Appstore.
For more details on these steps, review the following sections.
Step 1. Determine if APIs, services, and features are unsupported
If you have an existing Android app on Google Play, it might use Google Play services, which isn't supported on Fire OS. 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. To help you with this process, the following section has Amazon-supported solutions for APIs, services, and features that your app might use.
Solutions to use when porting from Google Play
If your Android app requires Google Play services or a feature available on Android phones, use the following table to find an alternative API, service, or feature that works with Fire OS.
API, service, or feature | Action |
---|---|
Google Play In-App Billing | Use the Appstore Billing Compatibility SDK |
Firebase Cloud Messaging | Use the A3L Messaging SDK
You can also use the Guided Workflow for Cloud Messaging to determine a solution based on the needs of your app. |
Google Sign-In | Use the A3L Authentication SDK
You can also use the Guided Workflow for Authentication to determine a solution based on the needs of your app. |
Google Location Services | Use the A3L Location SDK |
Google Drive | Use the A3L Authentication SDK and Integrate with Google APIs |
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 |
Items listed in bold are SDKs offered by the Amazon Appstore built for porting your existing Android app.
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.
Note: If your app uses FirebaseUI and Firebase Authentication, it might not work on Fire OS devices. You can use A3L Authentication as an alternative. For a detailed solution for your app, use the Guided Workflow for Authentication. -
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. |
Step 2. Update your minimum API level
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 more information, see Check System Version at Runtime in the Android training guide Supporting Different Platform Versions.
For information about specifying API levels in your app, see Specify Minimum and Target API Levels in the Android training guide.
Step 3. Remove unsupported features
Before submitting your app to the Amazon Appstore, make sure to remove any unsupported features. The following features are unsupported by the Amazon Appstore:
- Themes
- Wallpapers
- 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
Step 4. Recompile and test your app
When you've updated your app's code, you can recompile and test your app. Make sure to 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.
Step 5. Submit your app
After you have tested your app and verified it complies with Appstore guidelines, you can submit your app to the Amazon Appstore. For detailed instructions, see Submitting Apps to the Amazon Appstore.
SDKs and libraries compatible with Fire OS
For a list of Android SDKs that are compatible with Fire OS, see Compatible Android SDKs.
For a list of Firebase libraries that don't require Google Play services and can be used on Fire OS, see Dependencies of Firebase Android SDKs on Google Play services in the Android developer documentation.
Last updated: Dec 16, 2024