时间:2024-05-04
李柏林 刘占伟
摘要:针对APP常驻后台以保证消息的推送,所造成的Android设备耗电发热、卡顿、降低续航,进而影响了用户的体验。设计了一个实用、实时且高效的信息推送服务系统,代理第三方应用需要推送的信息,由系统服务器统一通过WebSocket长连接推送至设备上的推送服务进程,再分发信息给目标应用,实现了信息推送等功能。有助于改善Android系统当前的生态环境乱象。
关键词:Android;推送;SSM框架;WebSocket
中图分类号:TP393 文献标识码:A
文章编号:1009-3044(2019)24-0293-04
开放科学(资源服务)标识码(OSID):
由于Android系统的消息推送服务FCM(GCM)在国内不方便使用,APP和厂商各自为政,APP使用后台保活、互相唤醒、全家桶等方式来保证后台消息推送,厂商则采取杀后台、限制唤醒等手段反制。这造成手机耗电发热、卡顿等现象,影响正常功能,降低了用户体验。泰尔实验室联合谷歌、国内各手机厂商、APP提供方和第三方推送方成立了安卓统一推送联盟,旨在解决这一乱象。
借鉴这一思想,基于Web和Android开发一套可行的APP信息统一推送服务系统,提供解决方案。APP使用本系统后,不在后台驻留服务和唤醒系统,节约备的电量和网络数据等资源,提高Android的系统体验。为开发者提供一个服务友好且高效的推送服务,有助于改善Android系统当前的生态环境乱象。
1系统设计
主要功能,是提供安卓应用厂商和用户设备中应用之间的信息统一推送渠道,基于此确定系统设计的目标:实用性,高效性,实时性。
实用性:将应用后台时的推送收归于本系统,解决当前Android系统中实际存在的各种问题,方便开发者和手机用户。
高效性:由与目标连接的设备数量巨大、部分应用推送频繁,系统需要较高的效率来处理业务。
实时性:去年发生的事件是旧闻而不是新闻,推送的信息需保持实时性。
1.1需求分析
1.1.1基础功能分析
基于J2EE和Android的开发框架,开发者可以通过网页端申请和管理应用、推送信息,也可以直接通过编程接口(API)推送和获取信息。系统管理员可以通过网页配置系统功能,并对开发者申请的服务进行管理。
系统主要分为开发者模块、推送模块、系统管理模块以及一个Android端接收处理推送信息。系统提供给开发者推送服务接口以获取设备地理位置和推送信息,同时提供一个封装了部分功能接口的Android开发SDK包方便接入。下图1是系统的模块框架图。
1.1.2系统用例分析
图2是系统管理员用例图,图3是开发者用例图。
1.2模块设计
主要的功能模块有:开发者模块、推送模块、Android端、系统管理模块等。
1.2.1开发者模块
包含开发者的注册登陆、应用服务的申请、管理,以及账户的密码变更、解封申请。
注册时必须提供邮箱,作为以后各种业务提醒的渠道。登陆页面除了常规的用户名密码外,提供一个验证码,防止机器程序恶意攻击,登陆验证码是一张图片,由服务器动态生成。
应用服务的申请时需选择应用需要的类型,根据最小权限原则,避免申请用不到的权限。服务类型分为三个级别:
普通:只能批量、全部推送;
位置:提供基础的位置服务,可以批量获取设备地理位置并处理后推送,也可直接按行政区域推送信息;
高级:对于聊天等推送频繁应用,提供WebSocket通道保持应用服务器与本系统的连接,提高效率。高级类型同时拥有前两级权限。考虑到聊天应用的隐私性、实时性、准确性,此类型的应用走WebSocket通道时不会进行敏感词过滤,也不执行权限过滤(本身已是最高权限),更不会记录日志,SDK不会处理信息,需要应用自行处理。
开发者可以对已申请的应用进行管理,包括删除应用、升级服务级别、查看应用的推送记录,且能够导出推送记录。
1.2.2推送模块
主要功能是权限和敏感词过滤、信息推送、设备返回信息处理并记录日志。
推送服务需要在项目应用启动时初始化一些必须的数据,初始化完成后等待并处理业务。业务的处理时并行的。
推送的信息需通过敏感词过滤,若检测出敏感词,则返回错误信息,并邮件通知开发者获得一次警告,多次警告后账户会被封禁。
敏感词过滤使用GitHub开源的工具类sensitive-words-filter,该工具采用DFA(确定有穷自动机)算法,性能较为优秀。同样,高级服务(如聊天应用等)使用WebSocket通道推送信息时不经敏感词过滤,同时也保障了用户的信息隐私。
推送信息经权限和敏感词过滤后,再经预处理,最终得到发送的目标设备ID,由此ID获取会话Session,将信息发送到设备。
推送的方式包括全部推送(推送到所有安装此应用的设备)、区域推送(特定地理位置的推送,如天气应用推送城市天气预报)、批量推送(推送到一批(一个)指定设备)。前两种推送应包含推送过期时间,系统在过期后清理队列。系统会维护设备和应用、地理位置之间的关系索引。
1.2.3系统管理模块
系统提供系统管理页面便于维护人员审核与管理开发者和应用,并维护敏感词。
管理员有权限封禁、解封开发者,封禁开发者时需给出理由,封禁后会发送邮件给开发者。开发者若申請解封,需发送邮件到指定邮箱,管理员审查后予以操作。
开发者申请新的应用服务和申请的服务升级均需要通过管理员审核。管理员根据申请描述予以操作,系统将邮件通知开发者。
系统管理包括开发者管理、应用管理和敏感词管理。
1.3 Android端
通过AndroidSDK接受并显示推送信息的端点。服务启动后通过WebSocket连接服务器,发送相应的初始化信息。设备和服务器的连接需要保持心跳。收到推送信息时发送到对应应用中处理并记录结果。
由于网络服务提供商会断开长时间未使用的连接路径回收资源,所以长连接的保持都需要实现心跳。TCP/WebSocket自带的心跳功能性单一,为了实现业务的一些特性,心跳由应用层实现,还可以附带设备当前的定位信息,一举两得。
设备的定位调用Android系统或百度地图提供的API实现。
为方便开发者接入本系统,提供一个应用SDK。通过此SDK,应用可以方便的获取设备ID信息、注册/注销服务、接收并处理推送信息、返回通知点击信息等。
1.4 数据库设计
数据库是本系统设计中的重要部分。数据库在设计时需考虑效率和优化问题,必要时添加适量的冗余字段,有利于提高数据库查询操作的性能。同时也要考虑设计合理的表间关联,减少表之间的耦合,符合数据库设计的规范。
本系统的数据库设计围绕着开发者及其申请的应用服务展开,设计难度最大的地方在于推送信息的表的设计,一条推送信息可能会推送至许多设备,为了降低冗余,需要将推送信息的内容和推送至设备的记录分开。同时等待推送的记录访问频率高,需设计为独立的一张表。
2系统实现
2.1开发者功能
开发者作为系统的目标用户,需注册并登陆成功后才能正常使用系统提供的服务。注册时提供邮箱地址,点击获取验证码时,验证码信息会发送到此邮箱,用以验证此邮箱地址的真实性和有效性。注册成功后,开发者可以进行登陆操作,登陆的验证码是系统随机生成的含有数字的图片,点击图片切换验证码。下图6是开发者注册、登录界面。
2.2应用申请与管理
使用本推送系统的第一步是先申请应用服务,通过系统审核后下载SDK并开始应用开发。已申请的应用服务可以查看详情和推送记录并进行调整、注销等操作。下图7是开发者申请应用服务界面。
2.3推送信息
推送信息不需要开发者登陆,只需要提供对应的key就可以实现推送,下图8是普通方式的网页推送界面,包含敏感词会禁止推送。推送成功,移动设备会弹出推送信息。
推送信息的方式是可选的,若选择批量推或者位置推送,会自动多出一个文本框供输入具体信息。下图9是位置推送并附带图片的推送结果。
同时该系统为了方便开发者进行业务分析,还推出了推送系统的记录与导出功能。
2.4系统管理功能
系统后台的应用管理和开发者的应用管理基本一致,仅查询条件增加按开发者过滤且操作中添加审核按钮。
开发者管理如图10的界面。
实现社会主义核心价值观,要求网络信息中杜绝一些敏感词汇。敏感词随着各方面的因素而变动着,对其的维护也是一个重要的方面。
3结语
基于SSM框架和WebSocket技术,进行开发的Android平台信息推送系统。统一的信息推送系统和各应用独立的信息推送方式相比,减少了应用的后台活动和网络连接,降低了对系统资源的占用,使设备续航得以优化,延长了设备寿命,提升了设备和Android系统的使用体验。对设备厂商、开发者和设备用户三方都是有利的。
参考文献:
[1] 李兴华. 基于WebSocket的移动即时通信系统[D]. 重庆大学, 2013.
[2] 王盼盼. 基于BPEL工作流的服务组合技术研究[D]. 沈阳理工大学,2011.
[3] 张爱华, 吕京涛. CSS快速入门[D]. 山东:青岛出版社,2000.
[4] 房体盈. 基于JavaScript技术的WebGIS设计与实现[D]. 大连理工大学,2008.
[5] 张志强. 基于Web环境的高校科研管理系统的设计与实现[D]. 电子科技大学,2006.
[6] 李洋. SSM框架在Web应用开发中的设计与实现[J]. 计算机技术与发展,2016,26(12):190-194.
[7] 蔚晓娟. 基于SSVH框架的综合集中告警WEB系统的研究与实现[D]. 西南交通大学,2007.
[8] 严科磊. 基于J2EE的小学信息技术课CAI系统的设计与实现[D]. 浙江工业大学,2012.
[9] 葛丹. 物联网传感器数据处理平台的设计与实现[D]. 南京邮电大学,2016.
[10] 易仁伟. 基于WebSocket的实时Web应用的研究[D]. 武汉理工大学,2013.
[11] 俞超飛. 腾讯公司手机设备管理系统设计与实现[D]. 大连理工大学,2016
【通联编辑:唐一东】
我们致力于保护作者版权,注重分享,被刊用文章因无法核实真实出处,未能及时与作者取得联系,或有版权异议的,请联系管理员,我们会立即处理! 部分文章是来自各大过期杂志,内容仅供学习参考,不准确地方联系删除处理!