基于Socket的安卓端的虚拟短信发送框架研究与实现

来源 :商 | 被引量 : 0次 | 上传用户:yanlj007
下载到本地 , 更方便阅读
声明 : 本文档内容版权归属内容提供方 , 如果您对本文有版权争议 , 可与客服联系进行内容授权或下架
论文部分内容阅读
  摘要:手机作为世界上科学进步的产物,它的出现,影响了全世界的人们生活方式。在这以手机作为媒介的背景下,随之短信的出现也逐渐替代了以文字沟通为主的传统信件。通过短信,可以达到实时存取且永久保存信息的功能。在这以网络为主体的当前现状下,为了节约通信费用,我们可以采用当前技术来实现模拟短信的功能。本文介绍了一种通过基于Socket的DDPUSH框架来实现在安卓端进行短信模拟发送与接收的功能。
  关键词:Android;Socket;虚拟短信;ddpush一、引言
  手机短信由于其具有实时性与便捷性而被广泛使用。手机短信创建于上上世纪八十年代晚期,用于配合GSM(全球移动通信系统)的数字技术,通过基站来传输数据。但由于每发送一条短信,需要支付一定的费用,如果有另一种办法来实现短信的功能,就可以了。
  二、DDPUSH研究
  (一)DDPUSH简介。DDPush (Dimension Door Push),任意门推送,是一款开源免费的单机千万级实时信息推送服务器,使用Java语言开发,具有简单、稳定、高性能、高容量等特点,适用于互联网、移动互联网、物联网、Android、智能设备、硬件设备等各种环境。
  (二)DDPUSH特点与实现原理。Ddpush采用Apache License Version 2.0开源协议开发,具有源码开放且使用免费的特点。同时,DDPUSH中的在线部分主要采用UDP协议开发,支技1000万终端在线的服务器,最少只需要4G内存,故采用一台普通的PC机都可以作为服务器。其中的消息推送部分采用JAVA NIO(非阻塞网络技术)和TCP协议开发,如采用普通PC即可支持至少数千台应用服务器同时通过长连接方式将消息推送到终端,且每秒可推送上万条数据。具有容量高,速度快,要求低的特点。在耗电与流量使用情况方面,DDPUSH经过测试比目前大多应用耗电低,同时具有流量少,省电等特点。
  三、DDPUSH安装与部署
  (一)DDPUSH获取。DDPush由于是免费的开源项目,用户可从其官方网站(www.ddpush.net)下载。通过链接,找到对应的下载链接,下载ddpush Server端即可。
  (二)DDPUSH安装与部署。DDPUSH由JAVA语言编写,安装时确保机器上已有JDK环境。部署时,如想采用默认配置,则直接运行工程目录下的start.bat即可,运行成功后,会占用9900、9966、9999端口,故在部署前确保9900、9966、9999端口未被其他程序占用。若无异常情况等待几秒后,则会部署成功,运行成功。
  四、安卓端APP短信接收研究
  (一)AndroidAPP短信接收原理。在安卓系统中,当有短信到来时,会首先给手机发出一个广播(android.provider.Telephony.SMS_RECEIVED),在此广播中存放了与短信相关的信息,在安卓系统中,存放在Bundle中。当系统接收到此广播后,系统会根据当前的系统设置对此短信进行操作处理,如播放短信到来的铃声、震动、通知栏添加。最终,将此短信插入到系统的sqlite数据库中,其具体位置为:”./data/data/com.android.providers.telephony/databases/mmssms.db”。其中短信对应的表为sms。
  (二)短信数据库URI。在安卓系统四大组件中,提供了一个可以访问数据的组件,即内容提供者(Content Provider)。安卓系统中将短信所对应的表已开放出来了,故我们可以通过ContentResolver对数据进行操作。通过翻看Android API文档,便可以获取短信所对应的Uri的地址,为content://sms/。
  五、采用DDPUSH实现虚拟短信的Android客户端设计
  (一)短信服务端搭建。短信服务端故可以直接运行ddpush的Server端,将其ddpush服务端运行在服务器上,并开放设定好的端口,服务端的搭建工作完成。
  (二)app端搭建。在安卓系统中,由于要使用到Socket通信及对短信数据表进行操作,需要在APP中清单文件中申明网络访问权限、读取短信权限、写入短信权限。
  同时,为了程序的监听实时性考虑,应当让程序一启动就运行在手机中,且最好永久运行,综上所述,选用安卓中的Service与Broadcast Receiver相结合的方式来开发此应用最为合适,通过在APP中声明一个监听设备完全启动的Broadcast,当手机完全启动后,通过拦截手机完全启动的广播,通过Broadcast Receiver启动与ddpush对应的Service,这样就保证了短信接收进程一直处于启动状态。其次,为了防止网络状态的变化,再在APP中声明注册网络状态变化的监听器,这样当手机启动或网络状态变化时,都会启动ddpush短信服务,从而达到短信服务长久贮存在手机运行内存中,提高接收短信的概率。
  由于ddpush协议中只包含两个字段的定义,一是对消息目标的定义,二是对消息内容的定义。然后短信则包含发送方、内容、发送时间字段,故需要对ddpush协议进行扩充。由于原目标定义所占用空间较小,不适合二次开发,故选用对消息内容进行二次开发。分析短信的特点后,发现短信全由文字构成,且出于对消息所占用流量等特点考虑,本应用选用json作为短信发送的协议。本短信协议定义主要如下:名称作用toUser目标方fromUser发送方sendTime发送时间content发送内容当ddpush短信服务接收到短信消息后,在APP会首先根据系统的设置,通过ContentResolver向短信数据表中插入对应的数据,再系手机发出特定的铃声和振动,并通过安卓SDK中的NotificationManager向系统通知栏插入一条短信的条目。
  (三)短信发送测试。将服务端与APP客户端(小米4)部署好后,在一个APP中输入另一个APP的唯一标识,并输入消息内容。点击发送,很快,另一端就收到了通过网络发送过来的消息。
  六、结束语
  采用这种Socket方式来实现的短信应用在费用方面相对于传统短信可以减少一定的费用,特别是在群组发送方面更显示出这种优势。但同时也存在很严重的弊端,如发送双方都必须安装此应用;保持移动数据流量畅通;此应用目前仅仅局限于安卓应用。同时,网络编程也给我们带来了无限的遐想空间,结合网络编程与当前的互联网趋势,任可以开发出各种有用的应用。
  项目名称:基于Socket的安卓端的虚拟短信发送框架研究与实现,项目编号:15NSD-135
  参考文献:
  [1]梅蕊.跨服务器消息发布与推送机制的研究[学位论文].武汉:华中科技大学,2011.
  [2]IBM.MQ Telemetry Transport.http://mqtt.org.2013-06-05.
  [3]DDPUSH. http://www.ddpush.net/ddpush-1.0-doc/index.html
其他文献
心中有美,一步一景;心中无美,十步亦枉然.rn心中有美,路途中的汗水使眼前的美弥足珍贵;心中无美,经历的艰辛越多,付出的代价越大,积怨越深,惊世之美也难免落得个“就那么回事
期刊
一番紧张的斗智斗勇之后,老杨的项目部终于拿到了一个大项目。欢喜之余,作为项目经理,老杨又开始发翻:现在的项目可再也不像过去那么好 After a lot of intense wits, Lao Y
老年人突然发生瘫痪是什么原因?该怎么办呢?rn北京屈秀贤rn突然瘫痪是老年人常发生的一种急症.发病时,往往病人侧肢体或分别为双上肢,双下肢活动不灵.
日耳曼人大迁徙具有鲜明的特征。它既有和平渗透 ,又有武力入侵 ,而且是名副其实的民族大迁徙。日耳曼人大迁徙对西欧历史发展产生了深远影响 ,一方面 ,它加速了罗马奴隶主旧
伟大的时代需要伟大的理论指导和精神食粮。当前,我国正处在改革开放和现代化建设的关键时期,从国内形势看,在已经取得巨大成就的同时,改革和发展已进入攻坚阶段,一系列深层
新的社会阶层作为新世纪统一战线的生力军和统一战线工作的新对象,是统一战线工作范围的扩大、工作对象变化的必然结果.新的社会阶层是先进生产力的重要代表,我们要根据新的
小光结婚之后,隔三岔五就要和妻子上演一场“全武行”,家里经常噼噼啪啪,不是摔盘子就是砸碗.这不,今天小两口又吵嘴了,两个人还扭打在一起,电视砸了,手机也砸了,家里就像遭
5月29日至6月3日,山东省委常委、济南市委书记王敏率济南城市发展交流团赴台交流参访.短短6天时间,交流团先后奔赴6个城市广泛接触台湾政商文化等各界人士,与当地基层民众面
4月6日至7日,“绿城杯”2014年中央电视台“希望之星”英语风采大赛胶州赛区选拔赛,在绿城·紫薇广场营销中心如期举行,210余名年龄在10-15周岁之间的小选手在当天的比赛中展现了各自的风采,吸引了各界人士的瞩目。  中央电视台“希望之星”英语风采大赛,自2000年以来,在全国范围内以其创新的比赛形式、激烈的赛事安排和活跃的现场氛围,深受全国青少年学生和广大英语爱好者欢迎,是名副其实的全国性超级
期刊
体育旅游作为现代旅游的一个重要组成部分,作为一项继生态旅游、探险旅游之后的又一专项旅游,对于满足旅游需求、促进旅游业发展,开拓更广泛的旅游消费市场,具有积极作用。  作为中国旅游强省——江西到现在也还没有一个相对比较理想的有影响力的体育旅游胜地。集“国家森林公园”、“国家地质公园”、“国家重点风景名胜区”于一体的武功山风景名胜区地跨萍乡市的芦溪县、吉安市安福县、宜春市袁州区三地,现已规划景区面积1