安卓系统中客户端服务器通信的选项

我目前正处于论文项目的研究阶段。

我的项目是移动设备的票务预订系统,我选择以Android为目标。

我预计需要一个带有中央服务器的客户端/服务器架构,因此目前正在研究Android如何与这样的服务器进行通信。服务器将授予客户端对票务信息的访问权限,客户端将向服务器发送有关票务预订的信息。我正在研究Java EE的服务器,因为Java是我最有经验的语言。

我知道Android附带了和,以及一些软件包,但我也在寻找可以与Android一起使用的库/技术。java.niojava.netorg.apache

到目前为止,我还没有在互联网上找到任何非常有用的东西,所以我看到了SO可以建议什么。

具体来说,我有兴趣知道:

  1. Android中的各种中间件技术有什么支持?例如:
    • 基于 RPC 的中间件
    • 科尔巴
    • 基于消息的中间件
    • Web 服务,如 XML-RPC、SOAP、REST
  2. 在Android平台上使用现有Java库时,其工作效果如何(或不工作)?(例如,如果我想使用为Java SE而不是Android设计的库/API,我可能会遇到什么问题?

理想情况下,由于我的项目的重点不是服务器和客户端之间的通信,我可以使用现有的中间件来处理通信,但我为最坏的情况做好了准备,那就是必须编写自己的中间件。


答案 1

Android中的各种中间件技术有什么支持?

我个人的观点 - 尽管我不觉得我是唯一以这种方式思考的人 - 是只有专门设计用于在互联网上运行的协议才适合与移动客户端一起使用。所以,在你的列表中,我唯一会考虑的是:

Web 服务,如 XML-RPC、SOAP、REST

有些人一直在维护kSOAP2的Android端口。但是,我得到的明显印象是,大多数在这一领域工作的Android开发人员都倾向于REST和REST协议。如果不出意外的话,这就是所有有趣的网站和服务都用于API,特别是与XML-RPC(旧)和SOAP(旧和讨厌)相比。

我已经成功地在Android中使用了Apache HTTPClient库和Apache HTTPClient库来与REST风格的端点进行通信 - 无论是直接还是通过第三方JAR - 都没有真正的Android特定问题。java.net.URLConnection

在Android平台上使用现有Java库时,其工作效果如何(或不工作)?

很难抽象地回答这个问题。Android实现了JavaSE的一个实质性子集,但不是所有的JavaSE,所以任何给定的JAR都有可能期望Android没有提供的东西。同样,Android 不使用环境变量、命令行开关或专注于桌面的开发人员可能作为半要求引入的各种其他内容。所以,有些东西对我来说只用了一个重新编译(Beanshell),有些东西在删除冗余类(JTwitter)后对我有用,有些东西看起来会很糟糕地开始工作(JavaMail)。


答案 2

推荐