连接Android应用程序与桌面应用程序的最佳方式?

时间:2017-11-29 04:44:45

标签: android database server desktop-application

我想开发一个系统,在该系统中,DESKTOP应用和Android应用之间共享数据。 搜索后我发现我需要一台服务器。但我无法弄清楚服务器是什么?我该如何创建它?它将如何帮助我连接我的两个平台设备?

桌面应用将从Android应用中接收数据。并管理数据。它还将用于向Android应用程序发送通知/消息。

Android应用将用于输入数据并将其发送到桌面应用。它将从桌面应用程序接收更新/通知。

现在如何连接这两个?我基本上需要一个用于实时数据共享和通知的通用数据库。

编辑:我正在使用C#和使用Java的Android应用程序构建桌面应用程序。

Edit2:也许我可以使用PHP在CPANEL或000webhost上托管数据库。然后用android和C#连接它。这是正确的方法吗?是否可以将其与C#连接?我知道它可以与Android连接,不确定C#。

2 个答案:

答案 0 :(得分:0)

Firebase支持Web界面,因此您可以开发html代码并集成到桌面应用程序中,例如Windows窗体应用程序中的Web集成

答案 1 :(得分:0)

您不一定需要数据库。您需要在两个应用程序之间使用通用网络协议。

所有网络通信都是通过套接字完成的。您需要一个允许您通过套接字发送数据的库。例如,here's an Android guide that is about sockets

套接字绑定到计算机的特定端口,实质上使其成为“服务器”。就像Web服务器如何暴露端口80,以及通过称为HTTP的协议进行通信一样。这一点非常重要,因为您需要决定哪些协议您的应用程序在彼此之间进行通信,因为套接字只是发送字节 - 它不关心您发送的内容或方式,只要它传播到特定服务器上的端口。它也不会为您解析数据,这取决于您的应用程序。例如,您的桌面应用程序如何知道Android设备向其发送了短信,或者要显示的图像,或者显示地图的地址?

总而言之,您想要桌面应用程序而不是Web应用程序的原因并不完全清楚。仅解析来自映射到不同方法的不同HTTP路径(通常称为REST API)的HTTP有效负载的主体比构建自己的协议简单得多。您也可以在Web服务器之上构建桌面GUI。

使用双向套接字架构,使桌面应用程序将更新发送回移动应用程序基本上是不可能的。您的Android不应该仅为您的应用程序连续运行打开的服务器套接字,主要是因为电池耗尽,但由于其网络地址可能经常更改,因此您还需要一个注册服务器,您的设备将重新连接到该服务器。此类服务以Firebase云消息传递的形式存在,它是Google对GCM技术进行品牌重塑,可用于向设备发送推送通知,但仅限于小数据负载。

请在此处查看Android设备上发生的通知活动。 How does push notification technology work on Android?

回到有关数据库的问题。建议使用一个太宽泛。如果您想存储和/或查询或加入数据集,您只需要其中一个。运行桌面应用程序的同一台计算机可以安装和运行您喜欢的任何数据库,无论是关系数据库还是noSQL数据库,完全取决于您。我所知道的唯一实时数据库是RethinkDB和Firebase 您也可以只保存一个与小规模数据库一样好的SQLite文件(即使是SQLite文档也建议它用于低流量网站)。