在Android应用中添加数据库/后端

21

我一直在编写小型Android应用程序,现在想开始编写更大的应用程序,让用户能够创建帐户,使我能够在线存储他们的帐户数据,使用某种数据库并添加需要后端支持的功能。

我刚开始学习Java/Android编程,应该从哪里开始学习这些内容?我需要什么样的数据库?哪种类型流行或适合学习/使用?

我了解了https://www.parse.com,它看起来很有趣,易于使用,但我不想学习非标准的技术或只能与他们的客户端一起使用的技术。


也许您想看看更多的替代方案,这些方案在这个问题中有详细解释:https://dev59.com/sVzUa4cB1Zd3GeqP5KEn#10235975 - Andreas
2个回答

30

我以前从未使用过 Parse,但它似乎是一种让你不必担心编写所有服务器端代码的简单方法。缺点是:随着你想要使用的功能越来越多,它也会花费更多的钱,并且你还需要遵循他们的 API 和操作方式。如果你确实使用 Parse,你只需要担心编写 Android 应用与 Parse 交互的代码。你可以查看他们的文档以获取详细信息。

更便宜的路线涉及更多的工作。你需要:

  • 一个服务器来托管后端

  • 服务器端语言(如 Java、PHP、Python 等)来控制/处理来自你的 Android 应用的请求。

  • 一个数据库(mySQL、PostgreSQL、Oracle 等),设置所需的模式(例如用户表)

一般流程为:你的 Droid 应用程序将通过参数向 http://yourserver.com/BackendFunction 发出请求。你的服务器端脚本语言会进行后端工作(例如将用户添加到数据库中)。服务器将带有相关信息的响应返回给你的应用程序(通常是 JSON 或 XML,任何你选择的格式),然后你的应用程序显示该信息的良好视图。

你需要研究如何使用所使用的服务器端语言和数据库查询数据库以及如何发送/处理 HTTP 请求和响应。


谢谢!那基本上是我想知道的,你有什么关于教程或者其他任何开始学习这方面的建议吗?我猜使用Java服务器端应该是最好的选择,因为我已经有一些了解,但是我也在考虑学习Python。 - Peter
2
这里有一个Python网络框架列表和Java框架列表。需要学习的内容很多,这是一个非常深入的主题。一些网络框架遵循模型-视图-控制器设计。你可以忽略在服务器上为应用程序创建视图,只需编写模型(数据库对象)和控制器(处理将这些数据库对象传递给应用程序)。阅读框架文档,看看能否创建URL,提交一些数据并返回数据。 - JMoy
我也在寻找同样的答案。有没有在线资源可以从头到尾地指导我?我认为你是唯一一个正确理解这个问题的人! - Adesh Atole
我还想问一下,Google App Engine能否用作Android应用程序的后端? - Adesh Atole
@CyberGeek 是的。如果你在谷歌上搜索“Android应用程序后端”,那么谷歌会将其作为第一项结果之一进行广告推荐。 - user137717

5
您说得对,需要在服务器端使用某种数据存储来存储数据。可以选择传统的关系型数据库(如mysql或postgresql),也可以选择一些较新的nosql解决方案(如mongodb、riak、couchdb)。Parse看起来很酷,但我从未尝试过。
对于我最近的Android项目,我一直在使用Couchbase的Android库(http://www.couchbase.org)和ektorp(http://www.ektorp.org),它们允许我复制到服务器端的CouchDB实例。这对我来说非常好,原因如下:
  • 默认使用HTTP发送数据
  • 以JSON格式发送数据(无需转换-绑定/序列化)
  • 在ektorp中有简单的“复制”命令,可在客户端和服务器之间拉取/推送数据
此外,根据您选择的数据存储方式,仍需要决定一些事情:
  • 您将以何种格式将数据发送到服务器? 我建议使用JSON。其他选项是XML或YML。
  • 在传输之前,您将如何转换客户端的数据?如果选择JSON,则jackson-json库非常棒。
  • 您是否需要中间层来保护和/或转换所选的数据格式?如果需要中间层,则可以考虑使用Spring MVC构建基于RESTful的Web服务。

这可能看起来令人生畏(服务器端的东西有时会感觉如此),但请坚持下去,您会掌握它的!


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接