下载此文档

构建Android Push Notification Service服务端及客户端[含代码] - 48 views.doc


文档分类:IT计算机 | 页数:约65页 举报非法文档有奖
1/65
下载提示
  • 1.该资料是网友上传的,本站提供全文预览,预览什么样,下载就什么样。
  • 2.下载该文档所得收入归上传者、原创者。
  • 3.下载的文档,不会出现我们的网址水印。
1/65 下载此文档
文档列表 文档介绍
该【构建Android Push Notification Service服务端及客户端[含代码] - 48 views 】是由【黛玉文档】上传分享,文档一共【65】页,该文档可以免费在线阅读,需要了解更多关于【构建Android Push Notification Service服务端及客户端[含代码] - 48 views 】的内容,可以使用淘豆网的站内搜索功能,选择自己适合的文档,以下文字是截取该文章内的部分文字,如需要获得完整电子版,请下载此文档到您的设备,方便您编辑和打印。构建AndroidPushNotificationService服务端及客户端[含代码]-48views
终于又开始上班了,只有在值班的时候,才是我比较清闲的时候,可以静下来做自己喜欢的事情,看自己喜欢的文章,写自己喜欢的博客。在Android架构部分,几个比较难啃的骨头里面,AndroidPushNotificationService算一个。我想今天来解释一下她的实现以及使用。1这个服务的必要性问题
在手机的使用过程中,我们知道,正睡觉呢,突然响起了短信声,打开一看,原来是移动/电信在提醒我们该上厕所了,或者天边冷了,多穿点衣服吧之类的话语。而在使用Android手机的时候,我们发现,如果有Gmail端,收到邮件的时候,会弹出一个提示,你有一条新邮件,并包含邮件的标题和相关信息。不知道你会不会好奇,这是如何实现的呢?我很好奇,所以便有了此文的写作动机。而对于QQ、安卓市场之类的软件,时不时的也弹出来这类信息,相信大家可以明白,这东西应该是有点用处的。比如我们开发一款应用,需要实时的提醒我们的安装用户一些事情,相信,你就会明白,这个服务是很有必要的,相信,在未来移动互联网、物联网占据大片江山的时候,也是很有必要的。
2几个问题
好了,我们提出了这个东西的必要性,但是在做的时候,我们必须要考虑几个问题。
,可千万别太耗我的电量啊,这是哥最在意的啊。
,这玩意不要花我另外的钱,我可是月光族啊。
,别半小时后才把消息发给我,那样的话,会损失我的订单的。
,别用着用着,不好使了。
秉着以上的几个关键问题,我们开始了下一部分的探讨了。
3几种可能的方案
我们来思考一下,要实现实时得到信息,有哪几种方法呢?
1通过http/https或者其他协议,客户端以服务的方式,每隔10分钟或者10秒钟,向服务器请求一次,服务器判断这段时间是否有新消息,需要发给客户端,如果有就通过json或者xml方式发给客户端。
2通过短信的方式,服务器端通过SMS的方式,将所需要的消息及时发送回来。
3使用tcp长连接和心跳包的机制,实现数据定时推送。
4采用的方案
从我的能力,我目前只能想到这么几种办法,下面我们来根据第二条里面的准则来分析上面提到的几种方案。
第一条通过http或者https的方式,向服务器每隔多长时间请求一次的方式,的确可以实现我们的功能,。首先这种方式会耗电,当然你可以说时间设置长一点,。所以这条一般是不会被采纳的。除非某些特殊应用。
第二条呢,、、,可是,,所以我们也不会考虑的。
第三条呢,好像全部符合,但是有一个小问题在里面,就是如果以Service的方式进行,由于Android系统的特殊性,在内存不够用的时候,会主动结束一些服务,这个服务包括了我们的定义服务,这么说,。
但是,我们还是有办法的。
5被采用方案的可实施方法
,Google放出了C2DM【AndroidCloudtoDeviceMessagingFramework】服务,从服务的使用方法上,我们就可以明白他们采用了第三种方式。
随着他们推出这个服务后,很多公司开始基于这个服务做一些应用,如推送广告、推送定制信息等。如xtify和airpush等,国内也有一些企业加入了这种阵营,如单独提供服务的push-notification,当然QQ也有这样的服务存在。
在这种方案里面,有几个细节地方,需要来解释一下。
?
?
,多用户的push如何保证惟一性?
?
,使用xmpp协议、IBM的MQTT、自定义协议。目前有一些开源的项目中,大都采用第一种和第二种,当然,如果有特殊需求,可以采取自定义协议的。

,一般是将手机的ID传递到服务器端进行惟一性验证。
,服务器端可以自己使用任何语言开发,也可以使用Nginx+脚本语言部署。
6实例说明
本文的实例采用了mqtt的架构,完全按照tokudu兄的文章而来,并成功实现了。里面采取的不是IBM的ReallySmallMessageBroker,而是采用的开源Mosquitto实现,
准备工作:
,本文为三星I809
+Php环境



步骤1:
下载mosquitto的可执行程序,我选择的是cygwin版本的,安装后,。
步骤2:下载tokudu兄的php代码,官方地址为:
我这里也提供下载:androidpushservice
主要代码为如下:<?php
require('SAM/');
//createanewconnectionobject
$conn=newSAMConnection();
//startinitialisetheconnection
$conn->connect(SAM_MQTT,array(SAM_HOST=>'',
SAM_PORT=>1883));
//createanewMQTTmessagewiththeoutputoftheshellcommandasthebody
$msgCpu=newSAMMessage($_REQUEST['message']);
//sendthemessageonthetopiccpu
$conn->send('topic://'.$_REQUEST['target'],$msgCpu);
$conn->disconnect();
echo'MQTTMessageto'.$_REQUEST['target'].'sent:'.$_REQUEST['message'];
?>
将代码部署到php环境目录里面。输入地址:http://localhost/androidpushservice/
步骤三:下载tokudu兄的android代码:
地址:
本文提供下载:
tokudu-AndroidPushNotificationsDemo-ea18b09
导入项目,编译,在真机上面使用打开即可。这里有一个DeviceTarget号码需要在php的界面里面输入。才可以发送成功。1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80/*
*$Id$
*/;;
;
;

构建Android Push Notification Service服务端及客户端[含代码] - 48 views 来自淘豆网www.taodocs.com转载请标明出处.

相关文档 更多>>
非法内容举报中心
文档信息
  • 页数65
  • 收藏数0 收藏
  • 顶次数0
  • 上传人黛玉文档
  • 文件大小26 KB
  • 时间2023-02-03