Java集成第三方推送(极光推送)——文档篇


相关文章
简介
JPush 是经过考验的大规模 App 推送平台,每天推送消息量级为数百亿条。 开发者集成 SDK 后,可以通过调用 API 推送消息。同时,JPush 提供可视化的 web 端控制台发送通知,统计分析推送效果。 JPush 全面支持 Android, iOS, Winphone 三大手机平台。
消息形式
JPush 提供四种消息形式:通知,自定义消息,富媒体和本地通知。
官方文档
主要功能
- 保持与服务器的长连接,以便消息能够即时推送到达客户端
- 接收通知与自定义消息,并向开发者App 传递相关信息
主要特点
- 客户端维持连接占用资源少、耗电低
- SDK丰富的接口,可定制通知栏提示样式
- 服务器大容量、稳定
工作原理
原理图

客户端原理
IP地址 分配原理:
- IP 地址有限: IPv4 的 IP 地址数量有限, 运营商要动态地为 手机分配 IP 地址, 这些 IP 地址都是运营商的内网 IP;
- 网络地址转换 (NAT): 全称 Network Address Translation, 网关维护一个外网 IP 地址, 与 内网 IP 地址对应;
- 外网 IP 不固定: 由于运营商持有的外网 IP 数量有限, 需要动态的分配给接入运营商的用户, 因此在手机一段时间没有数据传输时会将该手机分配的外网 IP 地址收回, 分配给其它用户;
- 解决方案: Android 手机端想要保持长链接, 首先外网 IP 地址不能变, 不能让运营商收回 这个 IP 地址;
Android 手机端实现方案:
- 心跳: 为了长时间保持外网 IP, 需要客户端定期发送心跳给运营商, 以便刷新 NAT 列表;
- Timer 定时方法: 该类计划循环执行定时任务, 但是使用该类会使 CPU 保持唤醒状态, 比较费电;
- AlarmManager 定时方法: 该类封装了 Android 手机的 RTC 硬件时钟模块, 可以在 CPU 休眠时正常运行, 定时任务执行时再唤醒 CPU, 这样做到了电量节省;
服务器原理
C10K 问题: 单台服务器解决 同时保持一万长链接的性能问题
总结
极光推送Android的接入并不是很难。按照官网一步一步走下来即可。具体详细的介绍文档,可以进入极光官网,查看Android 接入指南。很详细,很清晰。不过看了这么多文档还是需要动手练习,现在不妨和我一起上手