将 android 作为小型 server 运行是否可行

2020-01-15 17:37:19 +08:00
 msmmbl

最近一个工控项目中,有一个需求:

通过传感器采集一个设备的温度,传感器每隔 1 秒采集一次。需要在一个安卓平板上显示实时数据和历史 24 小时的数据。局域网中的其他手机也可以查询这些数据。

目前我想要的做法是:

  1. 温度传感器接到 esp32 WiFi 模块,通过 mqtt 将温度值发布出来。
  2. 在安卓平板上建立 mqtt server 并订阅数据,并将数据存入 sqlite。
  3. 在安卓上开启 web server,想局域网提供 RESTful 接口查询数据(连接设备不会太多性能应该足够)。
  4. 安卓上显示一个 UI 界面显示温度数据。

目前,使用安卓平板作为显示终端是客户要求的。其他部分还可以改。

我本人做过简单的安卓 App 开发。但是对于安卓作为这样的 server 运行的场景,没有相关经验。我目前能想到的坑是安卓作为 server 需要长期唤醒,和作为 web server 后台运行保活的问题。是否有做过类似项目的小伙伴提供些建议。

如果这个方案不靠谱,我个人趋向于再增加一个小型的 ARM 单板,在上面安装 Ubuntu,专门用于运行 mqtt server 和 web server 和数据库 server。安卓平板只做显示。

8746 次点击
所在节点    Android
35 条回复
mouyase
2020-01-15 17:41:14 +08:00
安卓系统跑环境不如 ubuntu 这类
maichael
2020-01-15 17:43:17 +08:00
跑我记得是可以跑,可是折腾起来比较麻烦而且没必要。
stillyu
2020-01-15 17:43:30 +08:00
弄个树莓派当 server 吧,开发更方便
jdgui
2020-01-15 17:44:17 +08:00
可以跑,但是问题还是有的,主要是各种乱七八糟国产系统会杀进程之类的。需要加白名单。
然后别的问题不是特别大,当然最好的还是整个单独的服务器
Buges
2020-01-15 17:44:44 +08:00
完全没问题,注册成服务,原生 Android 禁用电池优化后不会瞎杀你的 app。
lihongjie0209
2020-01-15 17:44:58 +08:00
必须用专门的 Server, 哪天客户需要在电脑上看报表, 你还要去平板上开端口?
psychoo
2020-01-15 17:48:10 +08:00
真的决定是本地 server 吗
xz410236056
2020-01-15 17:51:28 +08:00
可以是可以啊,他不贵吗?
cz5424
2020-01-15 17:51:36 +08:00
如果没有内网要求,建议发到远程服务器,平板坏了怎么办
msmmbl
2020-01-15 17:54:56 +08:00
@mouyase @maichael @stillyu @jdgui @lihongjie0209 嗯嗯,说的是,ubuntu 之类 nginx 什么都现成的,Android 还要自己折腾。
@Buges 谢谢提供信息
@psychoo 真的,客户没给外网开服务器的预算
msmmbl
2020-01-15 18:00:16 +08:00
@cz5424 有内网需求,我有一套用公有云的方案似乎没过
@xz410236056 平板是指定要的,用于显示。只是想探讨下复用平板当作 server 的可能性。
eason1874
2020-01-15 18:05:52 +08:00
除非以后维护按次收费,不然采用平板电脑当服务器这种不成熟方案就让自己没事找事。

三四百块搞个树莓派,稳定好用。
winterbells
2020-01-15 18:07:41 +08:00
可以的,不过安卓上 HTTP server 貌似有点坑
winterbells
2020-01-15 18:10:09 +08:00
server 和 UI app 写成一个就可以了,省的跑后台去出什么乱子

mixplorer 可以启动 http 服务器管理文件,即使是前台服务,放后台五分钟也会断开连接(我是 1+7p )
deepure
2020-01-15 18:12:51 +08:00
如果平板做为专有设备,只做你这个需求,还是可以考虑的,如果还干其它事就不用考虑了。
Juszoe
2020-01-15 18:28:49 +08:00
你最后那个方案靠谱些,安卓平板做个 client 就可以了
jelen0101
2020-01-15 18:29:00 +08:00
Linux Deploy
Foxkeh
2020-01-15 18:40:52 +08:00
大坑, 安卓设备做服务器可用性和可靠性保障都难与云服务器媲美, 只适合自己折腾玩玩,就像楼上说的 ROOT 然后 BusyBox+Linux Deploy 可以玩起来.
但是你要做生产项目交付这么玩就是纸糊的方案
ragnaroks
2020-01-15 19:03:19 +08:00
做 MC 服务端是完全可行的...在一个 10 核 4G 的手机上跑了 2 年多的 MC 服务端,FRP 做转接,日常在线 20 多个人完全没问题
xmumiffy
2020-01-15 19:10:28 +08:00
定制系统保活不是问题 加个白名单就行了

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/638212

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX