3

我已经开始开发一个 Android 应用程序,我们需要使用 MySQL 作为数据库,使用 Ruby on Rails 作为服务器端代码。我们也将在设备上使用 SQLLite(将在需要时同步两个数据库)。我在网上搜索并找不到任何可以作为基础的相关教程/示例。

我已经阅读了 MySQL 和 ROR 教程,但仍然对将 Android 与 ROR 连接感到困惑。

有人可以分享一些相关的教程/代码片段,可以解释技术的完整联系。我的意思是如何将数据从 Android 设备发送到 MySQL,反之亦然。我从理论上知道这个概念,但不知道如何以及从哪里开始。

对于提出这样一个基本问题,或者如果我听起来模棱两可,但我是初学者,需要完成这项任务,我深表歉意。感谢期待。。

4

1 回答 1

6

以下是您为实现目标应了解的内容的简要概述。我不会详细介绍,尤其是因为我从未亲自使用过 RoR。请注意,其中一些部分可能与 RoR 不完全相关,但其背后的总体思想仍然适用。我将留给您研究并弄清楚如何实现每个单独的组件。

一切的一般流程如下:

Android 应用 <==> 网络 <==> 网络服务 <==> MySQL

请注意双刃箭头,因为数据将双向流动。

Android App客户端,Web ServiceMySQL数据库位于您的Web Server. 为了完整起见,我只包括了网络部分,但是一旦数据被发送到网络上,您就不必做任何事情。

每个部分的简要概述:

安卓应用:

Android 应用程序是从 Web 服务器发送和检索数据的客户端。我假设在您的应用程序中,您将允许用户执行一些任务,这些任务实质上成为您想要在某个时候发送到服务器的数据。

举个例子,用户应该能够输入他的名字和最喜欢的动物。假设有一个用户可以单击的实际“提交”按钮。单击此“提交”按钮时,它应该将数据包装成适当的格式,以便通过网络发送。最常见的两个是JSONXML。正确格式化数据后,您将需要使用某种类型的网络协议将数据发送到服务器,例如HTTP. 为了发送数据,你当然必须有一些URL作为目标。可以说目标是www.example.com/webservice.php。这个目标是我们位于 Web 服务器上的 Web 服务。

一旦您发送数据,服务器将响应一些数据,此时您可以对它做任何您想做的事情。也许将其显示给用户,或者将其保存在SQLite数据库中,甚至两者兼而有之。

要记住的关键是没有魔法发生。我刚刚描述的所有内容都将在 Java 代码中实现,您将在某个时候在您的 Android 应用程序中编写这些代码。

您应该更多地研究并弄清楚如何在 Java 代码中实现的关键思想:

  • JSON 和 XML
  • Java中的HTTP
  • REST 和 SOAP
  • 是一个关于设置 Android 应用程序结构的可能方法的精彩视频。
  • 确保您在不同的线程上执行 Android 应用程序中的所有网络操作。一个易于使用的方法是Intent Service

网络服务:

这通常是最令人困惑的部分。AWeb Service只是尝试访问Web Server. 我在这里的解释在使用时可能会略有不同RoR,但同样的想法也适用。请注意,上面的目标URLwww.example.com/webservice.php。Web 服务实际上是PHP存在于 Web 服务器上的代码,称为webservice.php. 在您的 Android 应用程序中,当您URL使用HTTP,Web 服务代码将在服务器上执行(并且还可以访问您发送给它的数据)。在您的 Web 服务代码中,您基本上将提取数据(采用某种格式,如 JSON),获取必要的部分,然后对其进行处理。在这种情况下,您很可能会查询数据库。在 PHP 中,很容易编写代码来连接和查询也在服务器上运行的 MySQL 数据库。当 Web Server 检索到数据库的响应时,您可以将其发送回 Android App。就像以前一样,记住,没有魔法发生。所有这些想法都是通过编写一些代码来实现的。

主要研究思路:

  • Ruby on Rails 网络服务
  • 如何使用 Ruby on Rails 访问 MySQL 数据库

MySQL数据库:

这是您将数据存储在 Web 服务器上的位置。我不打算在这里深入讨论,因为这只是需要您大量阅读有关如何在 Web 服务器上设置 MySQL 数据库的内容。了解如何创建适当的查询(例如 等)也很SELECT重要INSERT

主要研究思路:

如何在 Web 服务器上设置 MySQL 数据库

如果您需要任何澄清,请告诉我!

于 2013-08-03T04:40:26.933 回答