我对Android的架构有疑问.我开始使用Android并在一些静态应用程序之后,我想构建一个动态类型的应用程序,如聊天应用程序.我的问题是:
这是我对聊天应用程序的基本架构的理解.
假设聊天对话总是来回通过服务器,我是否正确?
我知道本机Android使用sqlite.我可以在服务器上使用其他数据库,还是应该坚持使用sqlite?
服务器端代码是否需要使用Java才能与Android一起运行,或者我可以编写代码,也许是我更熟练的东西 - 比如Python?
最后,如果需要以某种方式转换消息,那么在发送之前是否会在用户的设备上进行转换,或者是否在服务器上发生了这种情况?
Frame91.. 5
假设聊天对话总是来回通过服务器,我是否正确?
随你(由你决定.如果你想实现P2P通信,请随意这样做;)但我会建议在客户端之间使用服务器(如果你想实现群聊怎么办? - >在p2p中更复杂).除此之外:您如何知道其他客户的IP地址?使用服务器,您可以轻松"登录"或"注销",并查看当前还有哪些可用等等.
我知道本机Android使用sqlite.我可以在服务器上使用其他数据库,还是应该坚持使用sqlite?
也取决于你.服务器的数据库不必与Android中使用的数据库相同.我从未在服务器端使用过sqlite.十二点选择它!
服务器端代码是否需要使用Java才能与Android一起运行,或者我可以编写代码,也许是我更熟练的东西 - 比如Python?
我建议你通过HTTP与服务器进行通信.因此,您可以使用您喜欢的任何编程语言.
最后,如果需要以某种方式转换消息,那么在发送之前是否会在用户的设备上进行转换,或者是否在服务器上发生了这种情况?
你到底是什么意思?您的服务器将提供类似"sendMessage(messageObject,target,....")的接口 - 您可以决定messageObject的外观.此外,服务器可以修改对象并将其发送给客户端.
我强烈建议你看看:
Google Cloud Messaging
使用GCM,您可以在服务器到达时立即发送/接收消息.
我还有一个教程,可以帮助您实现与GCM的聊天:
使用Google Cloud Messaging(GCM)创建即时消息应用.
否则,如果您不想使用推送服务,可以查看本教程:
简单的聊天应用
在这个例子中,他们使用套接字进行客户端和服务器之间的通信.
假设聊天对话总是来回通过服务器,我是否正确?
随你(由你决定.如果你想实现P2P通信,请随意这样做;)但我会建议在客户端之间使用服务器(如果你想实现群聊怎么办? - >在p2p中更复杂).除此之外:您如何知道其他客户的IP地址?使用服务器,您可以轻松"登录"或"注销",并查看当前还有哪些可用等等.
我知道本机Android使用sqlite.我可以在服务器上使用其他数据库,还是应该坚持使用sqlite?
也取决于你.服务器的数据库不必与Android中使用的数据库相同.我从未在服务器端使用过sqlite.十二点选择它!
服务器端代码是否需要使用Java才能与Android一起运行,或者我可以编写代码,也许是我更熟练的东西 - 比如Python?
我建议你通过HTTP与服务器进行通信.因此,您可以使用您喜欢的任何编程语言.
最后,如果需要以某种方式转换消息,那么在发送之前是否会在用户的设备上进行转换,或者是否在服务器上发生了这种情况?
你到底是什么意思?您的服务器将提供类似"sendMessage(messageObject,target,....")的接口 - 您可以决定messageObject的外观.此外,服务器可以修改对象并将其发送给客户端.
我强烈建议你看看:
Google Cloud Messaging
使用GCM,您可以在服务器到达时立即发送/接收消息.
我还有一个教程,可以帮助您实现与GCM的聊天:
使用Google Cloud Messaging(GCM)创建即时消息应用.
否则,如果您不想使用推送服务,可以查看本教程:
简单的聊天应用
在这个例子中,他们使用套接字进行客户端和服务器之间的通信.