盒子
盒子
Posts List
  1. 一.android push是什么
  2. 二. push 原理
  3. 三. 客户端实现

android push

一.android push是什么

push是android的一个机制,能够在app没有运行的情况下,下发通知或者数据,通过点击通知启动app,达到提供留存的目的。

google提供的官方Push ,名字叫做GCM(google cloud messaging),由于GFW的关系,GCM在国内基本无法使用。

第三方的PUSH服务提供商包括 个推,百度push,腾讯信鸽,小米push,华为push等

二. push 原理

类推pc时代,为了在程序退出时候,能够悄悄的做一些私密的事,比如收集用户行为,下载更新包等,通常我们会在pc上开启一个进程,这个进程独立于程序进程,它通过心跳的形式与服务端保持连接

在android 端,当我们使用4g上网时,实际上手机使用的都是联通或者移动的网关上网,我们得到的IP是内网IP,将内网IP映射到外网IP的技术叫NAT,而联通或移动网关会在手机不使用数据网络的一段时间后,刷新NAT链路表,这样,我们的手机与服务端的链接就会中断,换句话说,服务端就找不到我们的手机了。

三. 客户端实现

为了解决此问题,常见的办法就是与服务端保持心跳,通过定期给服务端发送心跳包,来刷新NAT表存活时间

TCP的长连接能否作为检测依据

在android端做心跳服务,可以选择Timer或者AlarmManager来执行定期任务,其中timer会阻止CPU进入休眠,极大的缩短电池使用时间

AlarmManager使用独立的硬件时钟(RTC),仅在时间到达时通过中断唤醒CPU,相比更加优越。

使用alarmManager替换timer

支持一下
扫一扫,支持牛头码农