当前位置:广义范文网 > 专题范文 > 公文范文 > 智游推送推送技术原理

智游推送推送技术原理

发布时间:2022-09-16 10:50:08 来源:网友投稿

下面是小编为大家整理的智游推送推送技术原理,供大家参考。

智游推送推送技术原理

 

 智游推送技术原理

 为什么使用推送:

 现在的大多数移动端应用都有实时得到消息的能力, 简单来说, 有发送消息的主动权和接受消息的被动权。

 例如:

 微信, QQ, 天气预报等等, 对于用户体验和好处不用多言。

 移动应用互联网特点:

  因为手机平台本身、 电量、 网络流量的限制, 移动互联网应用在设计上跟传统 PC 上的应用很大不一样, 需要根据手机本身的特点, 尽量的节省电量和流量,同时又要尽可能的保证数据能及时到达客户端。

 为了解决数据同步的问题, 在手机平台上, 常用的方法有 2 种。

 一种是定时去服务器上查询数据, 也叫 Polling, 还有一种手机跟服务器之间维护一个 TCP 长连接,当服务器有数据时, 实时推送到客户端, 也就是我们说的 Push。

 从耗费的电量、 流量和数据送达的及时性来说, Push 都会有明显的优势,但 Push 的实现和维护成本相对较高。

 在移动无线网络下维护长连接, 相对也有一些技术上的难度。

 本文试图给大家介绍一下我在 Android 平台上是如何维护长连接。

 智游推送如何实现高效稳定且低消耗的推送功能 移动无线网络的特点:

 因为 IP v4 的 IP 量有限, 运营商分配给手机终端的 IP 是运营商内网的 IP, 手机要连接 Internet, 就需要通过运营商的网关做一个网络地址转换(Network Address Translation, NAT)

 。

 简单的说运营商的网关需要维护一个外网 IP、 端口到内网 IP、 端口的对应关系, 以确保内网的手机可以跟 Internet 的服务器通讯。

  NAT 功能由图中的 GGSN 模块实现。

 大部分移动无线网络运营商都在链路一段时间没有数据通讯时, 会淘汰 NAT 表中的对应项, 造成链路中断。

 Push 在 Android 平台上的实现 既然我们知道我们移动端要和 Internet 进行通信, 必须通过运营商的网关, 所以,为了不让 NAT 映射表失效, 我们需要定时向 Internet 发送数据, 来保持 NAT 映射表的活性。

 这时候就需要用到定时器, 在 Android 上定时器通常有以下两种:

 java.util.Timer android.App.AlarmManager 分析:

 Timer:可以按照计划或者时间周期来执行相关的任务。

 但是 Timer 需要用WakeLock 来让 CPU 保持唤醒状态, 才能保证任务的执行, 这样子会消耗大量电量;当 CPU 处于休眠的时候, 就不能唤醒执行任务, 所以应用于移动端明显是不合适 AlarmManager:

 AlarmManager 类是属于 android 系统封装好来管理 RTC 模块的管理类。

 这里就涉及到 RTC 模块, 要更好地了解两者的区别, 就要明白两者真正的区别。

 RTC(Real- Time Clock)

 实时闹钟在一个嵌入式系统中, 通常采用 RTC 来提供可靠的系统时间, 包括时分秒和年月日等;而且要求在系统处于关机状态下它也能够正

 常工作(通常采用后备电池供电)

 , 它的外围也不需要太多的辅助电路, 典型的就是只需要一个高精度的 32.768KHz 晶体和电阻电容等。

 (如果对这方面感兴趣, 可以自己查阅相关资料, 这里就说个大概)

 好了, 回来正题。

 所以, AlarmManager 又称全局定时闹钟。

 这意味着, 当我用使用 AlarmManager 来定时执行任务, CPU 可以正常地休眠, 只有在执行任务是, 才唤醒 CPU, 这个过程是很短时间的。

 在推送中我们使用 AlarmManager 来实现心跳的功能, 使其真正的实现长连接,且以最低的消耗。

推荐访问:智游推送推送技术原理 推送 原理 技术

版权所有:广义范文网 2019-2024 未经授权禁止复制或建立镜像[广义范文网]所有资源完全免费共享

Powered by 广义范文网 © All Rights Reserved.。备案号:闽ICP备19004867号-1