代码之家  ›  专栏  ›  技术社区  ›  chrisbunney Bogdan Calmac

Android中的客户机-服务器通信选项

  •  12
  • chrisbunney Bogdan Calmac  · 技术社区  · 15 年前

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

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

    我预计需要一个带有中央服务器的客户机/服务器架构,因此目前正在研究安卓如何与这样的服务器通信。服务器将允许客户机访问票务信息,客户机将向服务器发送有关票务预订的信息。我正在查看Java EE的服务器,因为Java是我最熟悉的语言。

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

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

    我特别想知道:

    1. Android中的各种中间件技术有哪些支持?例如
      • 基于RPC的中间件
      • CORBA
      • 基于消息的中间件
      • Web服务,如XML-RPC、SOAP、REST
    2. 在Android平台上使用现有Java库有多好?(例如,如果我想使用为Java SE而不是Android设计的库/API,我会遇到什么问题?)

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

    1 回复  |  直到 15 年前
        1
  •  14
  •   CommonsWare    15 年前

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

    我个人的观点是,虽然我不觉得只有我一个人这样想,但只有专门设计的在互联网上运行的协议才适合与移动客户机一起远程使用。所以,在你的名单中,我唯一能想到的就是:

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

    一些人一直在维护ksoap2的Android端口。但是,我有一个明显的印象,在这一领域工作的大多数Android开发人员倾向于使用REST和REST-ISH协议。如果没有别的,那就是所有有趣的网站和服务在API中使用的东西,特别是与XML-RPC(旧的)和SOAP(旧的和讨厌的)相比。

    我已经成功地使用了 java.net.URLConnection 以及Android中的ApacheHTTPClient库,用于直接和通过第三方JAR与REST风格的端点通信,而不存在真正的Android特定问题。

    现有Java有多好(或不好) 当库用于 Android平台?

    抽象的回答是很难的。Android实现了大量的Javase子集,但并不是所有的Javase,所以任何给定的jar都有可能期望Android不提供的东西。类似地,Android不使用环境变量、命令行开关,或者开发人员关注桌面的各种其他东西,这些东西可能是作为半需求引入的。所以,有些东西只对我起到了重新编译(beanshell)的作用,有些东西在删除了多余的类(jtwitter)之后对我起了作用,有些东西看起来要开始工作就糟透了(javamail)。