Android 推送原理(Android Push Notification)详解

Android 推送原理

由于最近项目中涉及到了Android推送,所以看了一些关于android推送方面的东西,总结到后面我们知道android推送的实现可以归结为3种:

1、POLL,拉。大致思路为向服务器定时的发送请求,然后自己让服务器返回信息。

优点:实现简单。
缺点:实时性差。如果定时间隔小连接数又多,对服务器会有高压力要求。据说还会费电……不知道是不是真的。

2、SMS,彩信方式。据说是拦截彩信,并解析内容。这个还没有动手实践过。

优点:实现简单。实时性也好。
缺点:SMS服务的成本问题。贵!

3、TCP/IP,持久的长连接。简单的说就是与服务器建立一个基于TCP/IP持久连接,然后服务器就可以给你发消息了。

优点:实时性好。
缺点:实现起来比较困难。据说也会比较费电……也没测试过。

POLL的比较简单,用Timer和TimerTask定时器,以及HTTP相关的几个类就可以实现基本的功能,然后自己解析服务器返回信息。

主要是关于持久长连接的实现:1、基于IBM的MQTT实现。 2、基于XMPP实现

基于XMPP实现的有一个Androidpn项目,开源的。虽然后面项目中我采用了MQTT。因为Androidpn不够成熟,里面有一些bug,我暂时无法修掉。因为我只看了Android端的源代码,也许有些bug需要根据服务端修改。(困扰我很久的问题是服务器重启后androidpn手机端无法重连,暂时放下了,等有需要再去啃它)

其项目源码在这里可以下:http://sourceforge.net/projects/androidpn/ 进去之后的Files标签里有3个资源:

androidpn-server 服务器端代码
androidpn-demoapp 实例(说实话,没什么用)
androidpn-client 手机端代码

补充:我记得再导入项目后可能会出现:unable to resolve target ‘google inc. : Google APIs :7'这样的错误提示。

解决方法: 项目右键,Properties,Resource,Text file encoding,other,选择UTF-8
                                                             Android,Project Build Target,选择Android1.5

感谢阅读,希望能帮助到大家,谢谢大家对本站的支持!

时间: 2024-10-22 21:16:33

Android 推送原理(Android Push Notification)详解的相关文章

Android 推送原理(Android Push Notification)详解_Android

Android 推送原理 由于最近项目中涉及到了Android推送,所以看了一些关于android推送方面的东西,总结到后面我们知道android推送的实现可以归结为3种: 1.POLL,拉.大致思路为向服务器定时的发送请求,然后自己让服务器返回信息. 优点:实现简单. 缺点:实时性差.如果定时间隔小连接数又多,对服务器会有高压力要求.据说还会费电--不知道是不是真的. 2.SMS,彩信方式.据说是拦截彩信,并解析内容.这个还没有动手实践过. 优点:实现简单.实时性也好. 缺点:SMS服务的成本

微信小程序 消息推送php服务器验证实例详解

微信小程序 消息推送php服务器验证实例详解 微信文档(靠下有个"接入指引"):https://mp.weixin.qq.com/debug/wxadoc/dev/api/custommsg/callback_help.html 设置页面("设置">>"开发设置"): https://mp.weixin.qq.com/wxopen/initprofile?action=home&lang=zh_CN 1.设置服务器域名 比如:

git 推送至svn使用步骤详解

一,配置svn 保存明文密码 这样,使用git推的时候,就不会每次询问密码了. With recent versions of Subversion (~ 1.8) you can configure password caching via $HOME/.subversion/servers: [global] store-passwords = yes store-plaintext-passwords = yes But depending on your system this may

Android中Messenger原理及基本用法详解

这边博客主要记录一下Android中Messenger的基本原理和用法. 简单来讲,Messenger其实就是Binder通信的包装器,是一种基于消息传递的进程间通信工具. //Messenger实现了Parcelable接口,因此可以跨进程传输 public final class Messenger implements Parcelable { ............... } 通常情况下,我们可以在A进程中创建一个Messenger,然后将该Messenger传递给B进程. 于是,B进

Android推送通知指南

在开发Android和iPhone应用程序时,我们往往需要从服务器不定的向手机客户端即时推送各种通知消息,iPhone上已经有了比较简单的和完美的推送通知解决方案,可是Android平台上实现起来却相对比较麻烦,最近利用几天的时间对Android的推送通知服务进行初步的研究. 在Android手机平台上,Google提供了C2DM(Cloudto Device Messaging)服务,起初我就是准备采用这个服务来实现自己手机上的推送功能. Android Cloud to Device Mes

Android推送分析

 cpu多核利用能够实现Android推送的吞吐量. 讲明白这点,我们需要了解Android推送的基本原理了.如果实现C(客户端)与server(客户端)实时通讯了.这里有两种思路了: 1.一种是定时去server查询数据,通常是使用HTTP协议来访问web服务器,称Polling(轮询): 2.还有一种是移动端和服务器建立长连接,使用XMPP长连接,称Push(推送).(按照本人理解:客户端的实现时: while(true) {   request(timeout);   request(ti

Android推送服务:百度云推送

一.推送服务简介 消息推送,顾名思义,是由一方主动发起,而另一方与发起方以某一种方式建立连接并接收消息.在Android开发中,这里的发起方我们把它叫做推送服务器(Push Server),接收方叫做客户端(Client).相比通过轮询来获取新消息或通知,推送无论是在对客户端的资源消耗还是设备耗电量来说都比轮询要好,所以,目前绝大多数需要及时消息推送的App都采用Push的方式来进行消息通知. Android生态系统原本提供了类似于Apple iOS推送服务APNS的GCM(Google Clo

Android 推送 整合小米、个推、jpush

Android系统由google提供的推送的服务在国内并不能很好的运作,因此不能像iOS能提供统一管理的推送服务.Android端推送目前常用的都是第三方推送服务,也可以自己搭建推送服务器来实现, 为了节约开发成本,目前主流的提供第三方推送服务的有:极光推送.个推.友盟.小米推送.百度推送等. Android端推送分为通知,透传两种,通知是有通知栏显示的,透传由用户自定义处理,可以做静默,也可以自定义通知栏显示,个性化程度较高,点击的逻辑处理也比较方便. iOS端推送的话,应用程序在前台的时候,

饭编译-反编译美团,找不到android推送

问题描述 反编译美团,找不到android推送 反编译大众点评,和美团,并没有发现个推等第三方推送库,也没有发现基于xmpp,mqtt等的推送,他们怎样实现推送的. 解决方案 推送可以自己做,状态栏消息可以通过代码控制 解决方案二: 估计是自己做的把,大公司,一般都可能自己去实现一个 解决方案三: 美团还需要第三方服务吗?