将现有应用迁移到亚马逊应用商店
根据应用代码,可能需要对代码库进行一些更新,以便应用能够成功在Fire OS设备上运行。本页讨论应用必须满足的要求,以及将Fire OS应用提交到亚马逊应用商店时的迁移建议。
迁移流程概述
请在迁移现有Android应用时遵照以下流程,以便与亚马逊应用商店的Fire OS兼容:
- 如有必要,将所有API、服务和功能迁移到Fire OS支持的那些API、服务和功能。
- 如果需要,请根据您计划支持的Fire OS设备的要求更新您的最低API级别。
- 从应用中删除所有不支持的功能。
- 重新编译应用。
- 向亚马逊应用商店提交应用。
支持的API、服务和功能
如果您的应用使用了任何Fire OS不支持的API、服务或功能,请更新代码,以便使用亚马逊支持的同等服务和功能。
常用同等服务和功能
下表列出了您的Android应用中需要修改才能用于Fire OS的API、服务和功能。
API、服务或功能 | 操作 |
---|---|
Google Play应用内支付 | 使用亚马逊应用内购买API。 |
谷歌地图 | 使用Amazon Maps API。 |
Google Cloud Messaging | 使用Amazon Device Messaging。 |
没有移动数据计划的平板电脑上的GPS定位 | 使用Wi-Fi地理定位或者对您的应用进行编码,以便优雅降级。 |
任何电话功能 | 对您的应用进行编码,以便优雅降级。 |
设备方向 | 请参阅设备方向。 |
意图 | 请参阅受支持的Android意图。 |
屏幕尺寸和布局 | 请参阅屏幕布局和分辨率。 |
Firebase替代方案
如果您目前在应用中使用了Firebase,并希望继续使用Firebase,则可能需要实施一些替代方案。原生Firebase SDK依赖于Google Play服务,而这些服务在亚马逊设备上不可用。如果使用的是原生Firebase SDK,可供选择的方法主要有三种:
- 尽量选用Firebase JavaScript SDK: 推荐采用这种方法,因为您可以通过它来继续使用已在其他应用商店中实施的功能。但是,与原生SDK相比,JavaScript SDK中的功能有时可能会受到限制。
- 使用替代产品: 对于不支持JavaScript SDK的必备功能,这可能是唯一的选项。下表列出了替代选项。
- 在亚马逊设备上禁用Firebase: 这可能是最简可行方法,您可以通过它来了解您的亚马逊用户,并构建投资替代Firebase产品的案例。
对于不支持JavaScript SDK的功能,可以研究一下替代产品。下表列出了Firebase的部分客户端功能及其替代方案。
Firebase功能 | 描述 | 适用于亚马逊设备(即JavaScript SDK) | 替代方案 |
---|---|---|---|
Cloud Firestore | 最新的NoSQL云数据库,用于在客户端及服务器端开发中存储和同步数据。 | 是 | |
Firebase Machine Learning | “一款移动SDK,可将Google的机器学习专业知识引入到Android应用中” | 否 | AWS Amplify Predictions |
Firebase Authentication | 对应用用户进行身份验证的框架 | 是 | |
Cloud Storage | 对象存储服务(如照片或视频) | 是 | AWS Amplify - Storage |
Realtime Database | 用于移动应用的原始NoSQL数据库,需要实时跨客户端同步的状态。 | 是 | AWS Amplify - DataStore |
Crashlytics | 追踪应用问题的崩溃报告器 | 否 | Sentry |
Performance Monitoring | 用于“从应用中收集性能数据” 的服务 | 是 | |
Analytics | 跨不同Firebase功能集成的Google Analytics(分析) | 是 | AWS Amplify - Analytics |
Cloud Messaging (FCM) | “跨平台消息传递解决方案,可免费发送消息。” | 是 | ADM |
In-App Messaging | 使您可以定向发送基于语境的消息,鼓励用户使用应用的核心功能 | 否 | AirShip |
Remote Config | “在不发布应用更新的情况下,更改应用行为和外观”的服务 | 是 |
AWS Amplify
AWS Amplify是一组工具和服务,使开发者能够构建出安全、可扩展的全栈应用。它提供了多种功能,适合用作Firebase的替代品。下表列出了这些功能:
AWS Amplify功能 | 描述 | Firebase同等功能 |
---|---|---|
AWS Amplify - Authentication | 用于验证用户身份信息的接口 | Firebase Authentication |
AWS Amplify - Storage | 用于在公有存储桶、受保护的存储桶或私有存储桶中管理应用用户内容的接口 | Cloud Storage |
AWS Amplify - DataStore | 使用GraphQL数据模型,将在线和离线数据同步并持久保存到云端的方法 | Firebase Realtime Database / Cloud Firestone |
AWS Amplify - Analytics | 利用对Amazon Pinpoint的内置支持,为您的应用提供分析数据 | Google Analytics for Firebase |
AWS Amplify - Predictions | 将机器学习引入到您的应用中 | Firebase Machine Learning |
AWS Amplify API及功能 | 用于发出请求以触发AWS Lambda函数的接口 | Cloud Functions for Firebase |
有关更多详细信息,请查看AWS Amplify文档。
Amazon Device Messaging (ADM)
ADM是一种推送消息解决方案,您可以利用ADM将消息发送至运行您的应用的亚马逊设备。因此,它成为了Firebase Cloud Messaging (FCM)的潜在替代方案。可以使用Amazon Pinpoint作为管理消息以及定向发送消息的平台。有关如何将应用迁移到ADM的更多详细信息,请参阅设备消息传递迁移概述。
Sentry
Sentry是一种开源解决方案,提供“基于云的应用监控平台,可帮助您实时识别问题。” 有关更多详细信息,请参阅Sentry文档。Sentry“会在应用的运行时内通过SDK捕获数据。这些功能都是特定于平台的,使Sentry能够深入了解应用的运行情况”(入门)。
Airship
Airship是一个客户参与平台,可用来通过“推送通知、发送电子邮件、发送短信以及发送应用内消息”与用户建立联系。 要了解更多信息,请参阅入门。
支持的API级别
亚马逊建议将最低API级别设置为10,以确保与所有Fire平板电脑兼容。有关Fire平板电脑Android OS版本的信息,请参阅Fire平板电脑设备规格。
如果您的应用使用了在以下级别中引入的方法:
- API级别11到15 – 必须修改实施,避免在Kindle Fire(第1代)上调用这些方法。
- API级别16或17 – 必须修改实施,避免在Kindle Fire(第1代)和Kindle Fire(第2代)平板电脑上调用这些方法。
- API级别18或更高 – 必须修改实施,避免在Kindle Fire(第3代)上调用这些方法。
有关更多信息,请参阅Android培训指南中支持不同平台版本中的运行时查看系统版本。
有关在应用中指定API级别的信息,请参阅Android培训指南中的指定最低和目标API级别。
应用合规性
将您的应用提交到亚马逊应用商店之前,请确保应用符合所有相关要求。
- 不支持的功能: 应用不能包括任意以下功能,亚马逊应用商店不支持这些功能:
- 主题
- 壁纸
- 屏幕保护程序
- 自定义或第三方屏幕键盘(改为使用默认屏幕键盘)
- 操作用户界面的主屏幕小部件
- disable_keyguard权限
- 锁屏自定义设置
注意: 如果您的应用使用Fire OS不支持的API或硬件技术,亚马逊建议删除或优雅降级需要该服务的任意功能。例如,您的应用可能会显示一个提示“此设备当前不支持该功能”的消息。 - 应用内容: 您的应用必须遵守亚马逊的内容准则。请参阅亚马逊应用商店内容政策。
- 应用测试 在将您的应用提交到亚马逊应用商店之前,请全面测试应用。要查看测试标准以及建议的测试案例,请参阅亚马逊应用商店应用测试标准。