一种安卓平台下应用进程的保活方法技术

技术编号:20430953 阅读:39 留言:0更新日期:2019-02-23 10:47
本发明专利技术公开了安卓平台下应用进程的保活方法,基于TCP长连接和辅助服务,实现进程的保活,主应用工程作为服务端启动,后台监控应用工程作为客户端连接,通过以一定时间频率互相发送心跳来互相监听其连接状态,一旦其中一个被杀,则进行唤醒对方,大大提高了进程生存几率,有助于应用业务的展开。

A Live-saving Method for Application Processes on Android Platform

The invention discloses an active method of application process under Android platform, which realizes process maintenance based on TCP long connection and auxiliary service. The main application project is started as a server and the background monitoring application project is connected as a client. The connection status is monitored by sending heartbeat to each other at a certain time and frequency. Once one of them is killed, the other party is awakened and greatly raised. It increases the survival probability of the process and helps to develop the application business.

【技术实现步骤摘要】
一种安卓平台下应用进程的保活方法
本专利技术涉及应用程序通信
,特别是一种安卓平台下应用进程的保活方法。
技术介绍
目前安卓系统在市场上的份额占据了很大一部分,手机等依赖安卓系统的产品使用的频率越来越高,大量的用户群体使很多的公司看到了商业机会,因此出现了各种形态的app,而基本上所有的app都希望能够一直在后台运行,这样能够保证与用户的交互,特别是IM(即时通信)类的应用;但受于google限制,安卓系统有一定的运行内存限制,在内存不够时则会杀掉一些优先级别低的应用或者用户主动杀死应用,造成与服务端失去连接。目前的进程保活方案主要有以下几种:(1)在service的onstart方法里返回STATR_STICK,这种方式在用户主动杀进程时,不能重新唤醒;(2)单纯的设置应用Service为前台服务,一般情况下不被杀,但部分定制ROM会在应用切到后台即杀,会被forcestop杀死而不能重启;(3)像素悬浮层,监控手机锁屏解锁事件,在屏幕锁屏时启动1个像素的Activity,在用户解锁时将Activity销毁掉,但在用户主动杀的情况下,不能重启;(4)Native进程拉起,但这种方式只在部分5.0以下系统的手机有效,5.0以上完全失效,不能重启;(5)利用AIDL实现进程间通信,这种方式处理时数据量庞大,且用户主动杀或利用第三方软件内存加速也不能重启进程;因此,对于一些需要常驻后台的应用来说,急需一套进程保活的方案。
技术实现思路
为解决现有技术中存在的问题,本专利技术的目的是提供一种安卓平台下应用进程的保活方法,该方法通过结合TCP长连接、辅助服务和前台服务的方法,保证了应用进程的存活,有助于应用业务的展开。为实现上述目的,本专利技术采用的技术方案是:一种安卓平台下应用进程的保活方法,基于TCP长连接和辅助服务,实现进程的保活,具体包括以下步骤:步骤S1、分别搭建作为socket服务端的主应用工程和作为socket客户端的后台监控应用工程;步骤S2、主应用工程配置对应的xml文件监听所有的包,用于开启辅助服务后检测服务端Service是否运行,以唤醒Service,并增加相应的辅助服务权限,实现辅助服务子类;步骤S3、将后台监控应用工程生成的apk文件放置于主应用工程的assets文件夹下,用于主应用工程启动辅助服务后后台监控应用工程的安装;步骤S4、主应用工程启动,注册辅助服务连接成功的广播,检测是否开启辅助服务,如未开启则执行步骤S5,已开启则执行步骤S6;步骤S5、引导用户开启辅助服务,开启后执行步骤S6;步骤S6、辅助服务开启后监听到辅助服务连接成功的回调,并检测服务端Service是否运行,未运行则唤醒执行步骤S8;判读是否已安装后台监控应用工程,未安装则执行步骤S7,已安装则执行步骤S8;步骤S7、安装主应用工程assets文件夹下后台监控应用工程生成的apk文件;步骤S8、主应用工程Socket连接Service服务端启动,判读后台监控应用工程是否在运行,未运行则启动台监控应用工程并连接到服务端;步骤S9、主应用工程和监控应用工程互相发送心跳包,判读是否连接,未连接则启动,启动后重新连接服务端或者客户端;步骤S10、辅助服务监听所有的操作,即时判断Socket依赖的Service是否运行,未运行则启动。作为一种优选的实施方式,所述步骤S1包括以下步骤:步骤S11、在主应用工程的Manifests文件中增加meta-data,对应的value包含监控应用工程的包名和启动名特征值,包含1个集成Socket服务端启动方法的Service,该Service为前台服务,以提升进程优先级别;步骤S12、在监控应用工程Manifests文件中增加meta-data,对应的value包含为主应用工程的包名和启动名特征值,包含1个集成Socket客户端调用方法的Service;步骤S13、将Service均设置为私有进程。作为另一种优选的实施方式,所述步骤S13后还包括以下步骤:主应用工程和监控应用工程启动activity均设置excludeFromRecents字段值为true,用于取消在最近任务列表的显示。作为一种优选的实施方式,所述步骤S7还包括以下步骤:辅助服务监听到安装服务,检测是否已经安装监控应用工程生成的apk文件,未安装则自动安装。本专利技术的有益效果是:本专利技术按照一定时间频率,主应用工程和监控应用工程互相发送心跳包发送心跳包,同时辅助服务监听Service运行状态,辅助服务以前台服务存在,大大提高了进程生存几率,适用于安卓4.0以上主流系统的产品。附图说明图1为本专利技术实施例的流程框图。具体实施方式下面结合附图对本专利技术的实施例进行详细说明。实施例如图1所示,一种安卓平台下应用进程的保活方法,基于TCP长连接和辅助服务,实现进程的保活,具体包括以下步骤:步骤S1、分别搭建作为socket服务端的主应用工程和作为socket客户端的后台监控应用工程;具体包括以下步骤:步骤S11、在主应用工程的Manifests文件中增加meta-data,对应的value包含监控应用工程的包名和启动名特征值,包含1个集成Socket服务端启动方法的Service,该Service为前台服务,以提升进程优先级别;步骤S12、在监控应用工程Manifests文件中增加meta-data,对应的value包含为主应用工程的包名和启动名特征值,包含1个集成Socket客户端调用方法的Service;步骤S13、将Service均设置为私有进程;上述分别在主应用工程和监控应用工程的Manifests文件中设置的meta-data目的是在需要唤醒对方时,需要知道对方的启动路径;步骤S14、主应用工程和监控应用工程启动activity均设置excludeFromRecents字段值为true,用于取消在最近任务列表的显示,可以防止用户主动杀死应用进程,进一步的监控应用工程设置theme风格为不显示桌面图标。步骤S2、主应用工程配置对应的xml文件监听所有的包,用于开启辅助服务后检测服务端Service是否运行,以唤醒Service,并增加相应的辅助服务权限,实现辅助服务子类;步骤S3、将后台监控应用工程生成的apk文件放置于主应用工程的assets文件夹下,用于主应用工程启动辅助服务后后台监控应用工程的安装;步骤S4、主应用工程启动,注册辅助服务连接成功的广播,检测是否开启辅助服务,如未开启则执行步骤S5,已开启则执行步骤S6;步骤S5、引导用户开启辅助服务,说明其必要性,用户如不开启不能进行下一步的操作,开启后执行步骤S6;步骤S6、辅助服务开启后监听到辅助服务连接成功的回调,并检测服务端Service是否运行,未运行则唤醒执行步骤S8;判读是否已安装后台监控应用工程,未安装则执行步骤S7,已安装则执行步骤S8;步骤S7、安装主应用工程assets文件夹下后台监控应用工程生成的apk文件;辅助服务监听到安装服务,检测是否已经安装监控应用工程生成的apk文件,未安装则自动安装;这里再次校验是否安装目的是防止自动安装其他的apk;步骤S8、主应用工程Socket连接Service服务端启动,判读后台监控应用工程是否在运行,本文档来自技高网...

【技术保护点】
1.一种安卓平台下应用进程的保活方法,其特征在于,基于TCP长连接和辅助服务,实现进程的保活,具体包括以下步骤:步骤S1、分别搭建作为socket服务端的主应用工程和作为socket客户端的后台监控应用工程;步骤S2、主应用工程配置对应的xml文件监听所有的包,用于开启辅助服务后检测服务端Service是否运行,以唤醒Service,并增加相应的辅助服务权限,实现辅助服务子类;步骤S3、将后台监控应用工程生成的apk文件放置于主应用工程的assets文件夹下,用于主应用工程启动辅助服务后后台监控应用工程的安装;步骤S4、主应用工程启动,注册辅助服务连接成功的广播,检测是否开启辅助服务,如未开启则执行步骤S5,已开启则执行步骤S6;步骤S5、引导用户开启辅助服务,开启后执行步骤S6;步骤S6、辅助服务开启后监听到辅助服务连接成功的回调,并检测服务端Service是否运行,未运行则唤醒执行步骤S8;判读是否已安装后台监控应用工程,未安装则执行步骤S7,已安装则执行步骤S8;步骤S7、安装主应用工程assets文件夹下后台监控应用工程生成的apk文件;步骤S8、主应用工程Socket连接Service服务端启动,判读后台监控应用工程是否在运行,未运行则启动台监控应用工程并连接到服务端;步骤S9、主应用工程和监控应用工程互相发送心跳包,判读是否连接,未连接则启动,启动后重新连接服务端或者客户端;步骤S10、辅助服务监听所有的操作,即时判断Socket依赖的Service是否运行,未运行则启动。...

【技术特征摘要】
1.一种安卓平台下应用进程的保活方法,其特征在于,基于TCP长连接和辅助服务,实现进程的保活,具体包括以下步骤:步骤S1、分别搭建作为socket服务端的主应用工程和作为socket客户端的后台监控应用工程;步骤S2、主应用工程配置对应的xml文件监听所有的包,用于开启辅助服务后检测服务端Service是否运行,以唤醒Service,并增加相应的辅助服务权限,实现辅助服务子类;步骤S3、将后台监控应用工程生成的apk文件放置于主应用工程的assets文件夹下,用于主应用工程启动辅助服务后后台监控应用工程的安装;步骤S4、主应用工程启动,注册辅助服务连接成功的广播,检测是否开启辅助服务,如未开启则执行步骤S5,已开启则执行步骤S6;步骤S5、引导用户开启辅助服务,开启后执行步骤S6;步骤S6、辅助服务开启后监听到辅助服务连接成功的回调,并检测服务端Service是否运行,未运行则唤醒执行步骤S8;判读是否已安装后台监控应用工程,未安装则执行步骤S7,已安装则执行步骤S8;步骤S7、安装主应用工程assets文件夹下后台监控应用工程生成的apk文件;步骤S8、主应用工程Socket连接Service服务端启动,判读后台监控应用工程是否在运行,未运行则启动台监控应用工程并连接到服务端;步骤S9、主应用工程和监控应用工程互相发...

【专利技术属性】
技术研发人员:何金辉宋佶聪瞿杏元
申请(专利权)人:四川长虹电器股份有限公司
类型:发明
国别省市:四川,51

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1