一台安卓机上的两个APP之间怎么通信

加盾男爵 2018-09-17 11:40:44
两个APP之间需要传递数据,数据长度在20字节-1500字节之间(95%以上的数据都在100字节以内),但频率非常快,理论上峰值1秒发送300条,该峰值持续时间不长,大约3-5秒,其他时间大部分在每秒20条以内。


一个APP名称为A1,另一个APP名称为A2

要求
A1打开,A2关闭,A1发射了若干条消息,然后手机打开A2,A2打开后要求接收到A1刚才发射的消息

现在讨论有3个方式
1 UDP通信,两个APP各自绑定一个端口
2 使用数据库存放消息,APP产生的数据直接存入数据库,另一个APP启动时读取数据库(这个我们担心受手机硬件限制,是否能在峰值是确保读取速度)
3 使用本地广播。

领导让写份报告上去,说明下使用那种方式名说明理由,请问各位大神,哪种方式比较好
...全文
1053 2 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
游逸丶 2018-09-18
  • 打赏
  • 举报
回复
首先需要明确一下你消息的发送是否需要实时性,即每一条需不需要单独发送,或者按照每秒一起发送?还有A2需要实时处理数据还是在用户手动打开A2应用时获取数据?
如果需要单条发送的话,那使用广播显然不行,想想每秒发送300个广播也是很恐怖的事情,每秒一个广播倒是没问题。
使用UDP通信需要服务器会增加成本,而且传输速度受网络影响。
我最推荐使用本地数据库/ContentProvider等android进程间通信方法。
如果觉得读写速度太快手机受限,可以从数据存储上做处理,比如将数据按照时间或者条数进行集合(反正你数据量很小),然后在进行存储操作,这样会有效降低读写频率。
verejava 2018-09-18
  • 打赏
  • 举报
回复

80,472

社区成员

发帖
与我相关
我的任务
社区描述
移动平台 Android
androidandroid-studioandroidx 技术论坛(原bbs)
社区管理员
  • Android
  • yechaoa
  • 失落夏天
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧