3

我目前正在开发我的第一个 Android 应用程序,并且仍处于设计阶段,试图提出一个可靠的模型。

我的应用程序将使用用户 Google 日历中的 GCal 数据,并将其与一个或多个其他用户同步,以确定所有人之间的共同会议时间,而无需通过电子邮件安排繁琐的来回安排。

我设想通过将每个用户及其日历数据存储在每天都会刷新的数据库中来实现这一目标。当发出确定组间最佳会议时间的查询时,我想从数据库中选择每个用户的日历数据,执行计算以找到最佳时间,并将结果显示给进行查询的用户。

适用于 Android的AWS开发工具包支持 Amazon SimpleDB 和 S3,在这种情况下,我将使用 SimpleDB 作为我的数据库。我迷路的地方是使用 Amazon EC2 Web 服务与 SimpleDB 一起执行计算。

首先,感谢对我的方法和/或设计的任何反馈。

其次,使用非 Android 但基于 Java 的 API/SDK 对应用程序有何影响,或者甚至有可能这样做吗?

例如,如果可以与 Android 一起使用,Java的 API typica看起来很有趣且很有用。

谢谢!

4

2 回答 2

4

所以,我认为重要的是要注意几件事。

  1. 您所描述的不是“android 应用程序”。它是一个带有 android 客户端的 Web 服务应用程序。我之所以迂腐,是因为您需要做出的许多设计决策完全取决于您的主要客户端将在 android 上运行这一事实。

  2. 我担心将用户日历存储在非关系数据库中的可行性。我不知道你是否已经看过这个,但你试图解决的问题(日历)似乎会受益于关系数据库的关系优势。例如,我不确定您将如何构建以非关系方式存储过去、现在和未来事件/会议的数据。它可能是可能的,但我不确定它是否是最佳的。根据数据量,您可能还需要考虑最大记录大小。

  3. 虽然适用于 Android 的 AWS SDK 确实支持写入 S3 或 SimpleDB,但我认为还有很多需要考虑的地方。您对与 EC2 的交互感到困惑的原因是,通常情况下,您的 EC2 Web 服务将与 S3 或 SimpleDB 交互。通过使用 AWS 开发工具包,理论上您可以消除对 Web 服务的要求。我的主要问题是你现在被迫在每个客户端上做更多的事情,因为没有通用的访问模式。您的 ios 客户端或 Web 客户端需要与您的 android 客户端具有相同的逻辑,以确保其访问您的 s3 和简单的 db 数据相同。如果这没有意义,我可以详细说明。

  4. 使用非 android api 和 sdks 是一个混合包。有时,如果类编译为 Davlik,它会正常工作。如果他们不这样做是行不通的。

我可能要指出的一件事是 Google App Engine,因为您可能已经与 Google 技术相关联。它的好处是有一个免费的服务级别,可以让您免费启动和运行您的应用程序。根据您建议的技术,您可能需要研究一下。除此之外,我的另一个强烈建议是,您首先要专注于构建 Web 服务,并且独立于 android 客户端。花时间模拟客户端服务器交互将是什么,并尽可能多地将“逻辑”移动到服务器。这就是我觉得你最初的描述中缺少的东西。嘎吱嘎吱的地方。

于 2011-03-07T23:29:37.523 回答
0

我的解决方案是你使用 OO 原则。将您的数据库存储在 amazon dynamoDB 上,然后将用户数据与移动应用程序同步。然后在显示结果之前在设备上处理数据/计算

于 2015-05-16T01:41:45.403 回答