Android推送原理,也被称为Android Push Notification,是一种在应用程序不运行时向用户传递信息的技术。它允许服务器端将数据推送到Android设备,即使应用在后台或完全关闭也能接收到通知。这种技术对于保持用户与应用的互动性和即时性至关重要,尤其在消息提醒、更新通知和实时数据同步等方面。 推送技术通常分为三种主要类型: 1. POLLing(轮询):应用定期向服务器发送请求以检查新消息。虽然实现相对简单,但这种方法实时性较差,频繁的网络请求可能导致电池消耗增加,同时对服务器造成较大的负载。 2. SMS/CMS方式:通过拦截和解析彩信来实现推送。这种方法的优点是实时性较好,但成本较高,因为需要支付短信费用,可能不适合大规模应用。 3. TCP/IP持久连接:这是最常见也是最有效的方式,通过建立与服务器的持久TCP连接,一旦服务器有新的消息,可以直接推送给客户端。这种方式实时性优秀,但实现复杂,可能会增加电池的消耗。 在Android中,TCP/IP持久连接的实现通常基于两种协议: - MQTT(Message Queuing Telemetry Transport):这是一种轻量级的发布/订阅消息协议,常用于物联网和移动应用的低带宽、高延迟或不稳定网络环境。IBM的MQTT实现提供了一个可靠的推送平台。 - XMPP(Extensible Messaging and Presence Protocol):这是一种基于XML的即时通讯协议,通常用于聊天应用,但也适用于推送服务。AndroidPN(Android Push Notification)项目就是一个基于XMPP的开源推送解决方案,尽管存在一些bug和成熟度问题。 AndroidPN项目提供了服务器端和客户端的源码,服务器端代码(androidpn-server)、示例应用(androidpn-demoapp)和客户端应用(androidpn-client)。如果你选择使用AndroidPN,需要注意项目导入时可能出现的构建目标错误,如“unable to resolve target ‘Google Inc.: Google APIs:7’”。解决这个问题,可以在项目属性中将文本文件编码设置为UTF-8,并确保项目构建目标为Android 1.5或更高版本。 Android推送原理涉及到多种技术和策略,开发者可以根据实际需求和资源选择合适的方法。无论是简单易实现的POLLing,成本较高的SMS方式,还是实时性出色的TCP/IP持久连接,每种都有其优缺点,需要权衡考虑。对于大型应用或需要实时交互的场景,TCP/IP持久连接通常是最佳选择,而MQTT和XMPP则提供了实现这一功能的框架和工具。
2026-03-31 17:03:11 54KB Android Android 推送原理详解 Androidpn
1
使用androidpn实现消息推送,有android客户端和server端,对android端做了优化,可以断网重连,后台服务不会被手机管家之类杀死。 需自行更改res/raw/androidpn.properties里的server IP。
2022-06-11 13:21:04 18.38MB android 消息推送 androidpn 非GCM
1
完整的android消息推送示例,该例子完善了androidpn开源项目,支持离线推送。androidpn基于Apache Mina开源框架,采用XMPP协议传输数据。 实例中,服务端支持weblogic跟tomcat应用服务器。
2022-06-11 12:19:45 14.61MB android 消息推送 androidpn mina
1
AndroidPN环境搭建 本文件真对网上的环境搭建源网站无法登陆设立 http://sourceforge.net/projects/androidpn/ 说明: http://www.cnblogs.com/devxiaobai/archive/2011/07/09/2101794.html AndroidPN实现了从服务器到android移动平台的文本消息推送。这里先简单说一下androidPN的安装过程。 下载androidpn-client-0.5.0.zip和androidpn-server-0.5.0-bin.zip 网址:http://sourceforge.net/projects/androidpn/ 解压两个包,Eclipse导入client,配置好目标平台,打开raw/androidpn.properties文件, apiKey=1234567890 xmppHost=10.0.2.2 xmppPort=5222 如果是模拟器来运行客户端程序,把xmppHost配置成10.0.2.2 (模拟器把10.0.2.2认为是所在主机的地址,127.0.0.1是模拟器本身的回环地址). xmppPort=5222 是服务器的xmpp服务监听端口 运行androidpn-server-0.5.0\bin\run.bat启动服务器,从浏览器访问http://127.0.0.1:7070/index.do (androidPN Server有个轻量级的web服务器,在7070端口监听请求,接受用户输入的文本消息) 运行客户端,客户端会向服务器发起连接请求,注册成功后,服务器能识别客户端,并维护和客户端的IP长连接
2022-03-11 16:45:19 18.04MB androidpn APN-client APN-server
1
Android XMPP PUSH 推送源代码,客户端、服务端实现Android推送,服务端使用tomcat服务器
2021-07-24 15:54:16 34.53MB androidpn
1
androidpn-server-0.5.0-bin.zip解压后,打卡bin目录下run.bat运行,之后在浏览器中输入http://127.0.0.1:7070/ 将androidpn-client-0.5.0解压后导入Eclipse,修改/raw/androidpn.properties中的xmppHost=xxx.xxx.x.xxx,将其修改为PC端的IP,运行项目,OK
2021-07-24 14:59:47 18.26MB 消息推送
1