处理多个客户端的Android应用程序(多个服务器)

时间:2014-03-25 09:45:02

标签: android cloud

我在这里讨论处理Android应用程序的不同方法,该应用程序可以将API指向客户端的服务器A(即.http://a.myproduct.com/api / ...)另一个客户B的A或其他服务器B(即htt://b.myproduct.com/api / ...)。

我实际上是为每个客户生成相同应用的不同APK。这个解决方案对于一个或两个客户端是可以的,但是后来处理起来会很重。

我试图找到一种更好的方法来拥有一个可以使用不同服务器网址的独特APK。 另一个限制是,在同一台设备上,我可以使用与服务器A通信的应用程序和与服务器B通信的其他应用程序。

以下是我提出的解决方案:

  • 继续使用多个APK ...
  • 有一个"中心"每个应用程序第一次调用的服务器,知道它必须与哪个服务器通信,并将其存储在共享首选项中。
  • 在应用程序和服务器之间建立链接的文件存储区 例如:

    com.mycompany.productA:httq://a.mycloud.com
    com.mycompany.productB:httq://b.mycloud.com
    

但是如何处理这个文件?创造它的是什么?

  • 使用Android帐户系统?为每个云创建一个帐户?我真的不知道..

有没有人,已经体验过这个?

2 个答案:

答案 0 :(得分:1)

考虑到您可以将连接设备IMEI映射到客户端,我将简要介绍您提到的三种方法的优缺点。

多个APK

  • 将客户与其他知识完全隔离 - 安全
  • 不可扩展和可维护(如果需要,可以发布更新)。

中央服务器

  • 可扩展,易于更新的信息(如果您将a.mycloud.com更改为a2.mycloud.com)
  • 不那么健壮。服务器出现故障怎么办?可能的攻击或担心的错误。

嵌入APK的所有网址

  • 稳定且不会在团队花费的时间/资源上花费大量开销。
  • 不安全,您应该假设有权访问APK的用户可以访问将IMEI映射到公司的文件。
  • 如果客户的IMEI数据或公司网址是敏感数据,那么这是一个很大的禁忌。

你是一家大公司吗?如果是,那么您可能已经拥有生产服务器,并且可以采用第二种方法。

答案 1 :(得分:0)

我猜你可以在客户端应用上构建一个通用应用并使用某种auth系统。例如,如果用户将自己标识为"客户A",您的网络服务可以告诉"您的应用使用第一个端点。如果是"客户B",那么它将是第二个端点。底线是:让您的用户登录,然后使用凭据来区分用户。