开发者控制台

将现有应用迁移到亚马逊应用商店


将现有应用迁移到亚马逊应用商店

根据应用代码,可能需要对代码库进行一些更新,以便应用能够成功在Fire OS设备上运行。本页讨论应用必须满足的要求,以及将Fire OS应用提交到亚马逊应用商店时的迁移建议。

迁移流程概述

请在迁移现有Android应用时遵照以下流程,以便与亚马逊应用商店的Fire OS兼容:

  1. 如有必要,将所有API、服务和功能迁移到Fire OS支持的那些API、服务和功能。
  2. 如果需要,请根据您计划支持的Fire OS设备的要求更新您的最低API级别
  3. 从应用中删除所有不支持的功能
  4. 重新编译应用。
  5. 向亚马逊应用商店提交应用。

支持的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,可供选择的方法主要有三种:

  1. 尽量选用Firebase JavaScript SDK: 推荐采用这种方法,因为您可以通过它来继续使用已在其他应用商店中实施的功能。但是,与原生SDK相比,JavaScript SDK中的功能有时可能会受到限制。
  2. 使用替代产品: 对于不支持JavaScript SDK的必备功能,这可能是唯一的选项。下表列出了替代选项。
  3. 在亚马逊设备上禁用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的更多详细信息,请参阅Amazon Device Messaging概述

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权限
    • 锁屏自定义设置
  • 应用内容: 您的应用必须遵守亚马逊的内容准则。请参阅亚马逊应用商店内容政策
  • 应用测试 在将您的应用提交到亚马逊应用商店之前,请全面测试应用。要查看测试标准以及建议的测试案例,请参阅亚马逊应用商店应用测试标准