【问题标题】:Non-Web Database for Android AppsAndroid 应用程序的非 Web 数据库
【发布时间】:2014-05-25 17:51:52
【问题描述】:
我对移动应用程序开发非常陌生;从安卓开始。我有几个基本问题:
我计划创建的应用程序的用户信息将定期更新(有点像社交网络状态更新,包括照片共享和可能的视频)。我是否必须为此服务创建一个与其他专用 Web 服务器并行的 Web 平台,以创建数据库以供我创建的应用程序的用户存储信息?
如果有一个选项(没有 Web 平台并行),那么应用程序如何随便检索这些信息?只是通过外部意图?
Google 是否为此类解决方案提供服务器配置(付费或免费)? Android 开发者需要多少数据存储/服务器空间才能正常访问 Google Cloud 服务?
“Google Cloud Endpoints”能否解决这个问题(没有并行的 Web 平台),因为它也适用于 iOS?在以下链接中找到 GCE:
https://developers.google.com/appengine/docs/java/endpoints/
*/还有其他选择吗? (我正在考虑实现这一目标的最简单的选择)
谢谢。
【问题讨论】:
标签:
android
database
android-intent
google-cloud-storage
google-cloud-endpoints
【解决方案1】:
目前,您最好使用App Engine。 App Engine 是 Google 的平台即服务 (PaaS),它允许您使用多种语言(Java、Python、Go 和 PHP)构建 Web 应用程序。
话虽如此,Google Cloud Endpoints 将是您与移动客户端交互的 API。它将托管或运行在同一 App Engine 应用程序中,该应用程序可以包含您的其余功能。 Cloud Endpoints 提供了用于生成 Android / iOS 客户端的工具,因此您将在那里得到很好的服务。
当您的移动应用程序向 Cloud Endpoints 发出请求时,Endpoints 实施将在应用程序中调用您的业务逻辑,这可能涉及保存/持久化您想要存储的用户信息/社交媒体数据类型。
对于存储,Google Cloud Platform 为您提供了 3 个可供您使用的选项:Cloud SQL、Cloud Storage(用于 Blob/文件)和Cloud Datastore,这是一个类似于 NoSQL 的实现。 Cloud Datastore 和 Cloud Storage 的组合非常适合您想要保存的信息类型。
现在为您的问题提供具体答案:
- 是的,您必须构建一个应用程序,该应用程序将成为您的 Web 应用程序。此应用程序将托管在 Google App Engine 上。
- 我相信这点不适用。我建议您调用托管在 App Engine 上的您自己的网络应用程序。
- App Engine 有大量的免费配额,足以满足您的需求。一旦你超过了这个限制,事情就是按使用付费的。您可以查看价格。
- Google Cloud Endpoints 是一个很好的解决方案。它将在您的 App Engine 应用程序(Web 应用程序)内部工作,并将在您的服务器端应用程序和您的移动客户端之间提供 API(交互层)。是的,它可以为您生成iOS和Android客户端代码,以加快移动端的集成。