CN109379337B - 一种安卓平台下应用进程的保活方法 - Google Patents
一种安卓平台下应用进程的保活方法 Download PDFInfo
- Publication number
- CN109379337B CN109379337B CN201811087162.8A CN201811087162A CN109379337B CN 109379337 B CN109379337 B CN 109379337B CN 201811087162 A CN201811087162 A CN 201811087162A CN 109379337 B CN109379337 B CN 109379337B
- Authority
- CN
- China
- Prior art keywords
- service
- application project
- background monitoring
- monitoring application
- project
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L69/00—Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
- H04L69/16—Implementation or adaptation of Internet protocol [IP], of transmission control protocol [TCP] or of user datagram protocol [UDP]
- H04L69/161—Implementation details of TCP/IP or UDP/IP stack architecture; Specification of modified or new header fields
- H04L69/162—Implementation details of TCP/IP or UDP/IP stack architecture; Specification of modified or new header fields involving adaptations of sockets based mechanisms
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/4401—Bootstrapping
- G06F9/4418—Suspend and resume; Hibernate and awake
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/34—Network arrangements or protocols for supporting network services or applications involving the movement of software or configuration parameters
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Computer Security & Cryptography (AREA)
- Theoretical Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Information Transfer Between Computers (AREA)
- Stored Programmes (AREA)
Abstract
本发明公开了安卓平台下应用进程的保活方法,基于TCP长连接和辅助服务,实现进程的保活,主应用工程作为服务端启动,后台监控应用工程作为客户端连接,通过以一定时间频率互相发送心跳来互相监听其连接状态,一旦其中一个被杀,则进行唤醒对方,大大提高了进程生存几率,有助于应用业务的展开。
Description
技术领域
本发明涉及应用程序通信技术领域,特别是一种安卓平台下应用进程的保活方法。
背景技术
目前安卓系统在市场上的份额占据了很大一部分,手机等依赖安卓系统的产品使用的频率越来越高,大量的用户群体使很多的公司看到了商业机会,因此出现了各种形态的app,而基本上所有的app都希望能够一直在后台运行,这样能够保证与用户的交互,特别是IM(即时通信)类的应用;但受于google限制,安卓系统有一定的运行内存限制,在内存不够时则会杀掉一些优先级别低的应用或者用户主动杀死应用,造成与服务端失去连接。
目前的进程保活方案主要有以下几种:
(1)在service的onstart方法里返回STATR_STICK,这种方式在用户主动杀进程时,不能重新唤醒;
(2)单纯的设置应用Service为前台服务,一般情况下不被杀,但部分定制ROM会在应用切到后台即杀,会被force stop杀死而不能重启;
(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是否运行,未运行则启动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服务端启动,判读后台监控应用工程是否在运行,未运行则启动后台监控应用工程并连接到服务端;
步骤S9、主应用工程和后台监控应用工程互相发送心跳包,判读是否连接,未连接则启动后台监控应用工程,启动后重新连接服务端或者客户端;
步骤S10、辅助服务监听所有的操作,即时判断Socket依赖的Service是否运行,未运行则启动Service。
下面对本实施例作进一步的说明:
发送辅助服务连接成功的广播,注册地收到广播后启动socket服务端,服务端中监听是否有客户端心跳包,没有心跳说明后台监控应用工程服务未运行,则唤醒后台监控应用工程服务,后台监控应用工程服务作为客户端启动连接到主应用工程的服务端,以时间T的频率互相发送心跳,维持连接,检测是否收到心跳,有心跳则持续运行,无心跳或者发生异常则根据meta-data的value特征值唤醒,唤醒后在互相连接socket。
通过心跳和辅助服务实现了进程保活,简单实用,心跳频率越高,则后台唤醒对方的几率越大,辅助服务进程只要一直存活就能够检测服务Service运行状态,在系统重启时辅助服务的机制也是能够重新启动,从而唤醒服务Service,拉起客户端Service,在安卓4.0以上主流系统均能够使用辅助服务。
通过socket连接主应用工程和后台监控应用工程,达到监测目的,socket调用均在service中实现,后台监控应用工程的apk文件置于主应用工程的assets中便于安装,告知用户这就是应用的一部分而非病毒之类,而且后台监控应用工程设置theme风格为不显示桌面图标,无界面可以防止用户误操作点击。
在监测时,主要是通过互相发送心跳的方式,检测心跳的存在来唤醒对方服务,另外也利用了socket读写异常机制来唤醒对方,心跳的频率可以是秒-毫秒-微秒-纳秒中的任何一个,可根据业务需求选择。
主应用工程和后台监控应用工程唤醒对方的路径在各自的Manifests文件的meta-data中进行配置,就不再需要进程间的通信传递数据,减少了进程间通信的消耗。
通过辅助服务自动安装的后台监控应用工程,以减少用户的操作,辅助服务只会自动安装目标后台监控应用工程。
辅助服务监听了所有包的操作,以达到用户操作其他应用能够监测服务端Service运行状态,达到即时唤醒的目的;应用均以不出现在近期使用列表的形式展示,减少用户主动杀死应用造成进程死亡的概率。
以上所述实施例仅表达了本发明的具体实施方式,其描述较为具体和详细,但并不能因此而理解为对本发明专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本发明构思的前提下,还可以做出若干变形和改进,这些都属于本发明的保护范围。
Claims (4)
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是否运行,未运行则启动Service。
2.根据权利要求1所述的安卓平台下应用进程的保活方法,其特征在于,所述步骤S1包括以下步骤:
步骤S11、在主应用工程的Manifests文件中增加meta-data,对应的value包含后台监控应用工程的包名和启动名特征值,包含1个集成Socket服务端启动方法的Service,该Service为前台服务,以提升进程优先级别;
步骤S12、在后台监控应用工程Manifests文件中增加meta-data,对应的value包含为主应用工程的包名和启动名特征值,包含1个集成Socket客户端调用方法的Service;
步骤S13、将Service均设置为私有进程。
3.根据权利要求2所述的安卓平台下应用进程的保活方法,其特征在于,所述步骤S13后还包括以下步骤:
主应用工程和后台监控应用工程启动activity均设置excludeFromRecents字段值为true,用于取消在最近任务列表的显示。
4.根据权利要求1所述的安卓平台下应用进程的保活方法,其特征在于,所述步骤S7还包括以下步骤:
辅助服务监听到安装服务,检测是否已经安装后台监控应用工程生成的apk文件,未安装则自动安装。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201811087162.8A CN109379337B (zh) | 2018-09-18 | 2018-09-18 | 一种安卓平台下应用进程的保活方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201811087162.8A CN109379337B (zh) | 2018-09-18 | 2018-09-18 | 一种安卓平台下应用进程的保活方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN109379337A CN109379337A (zh) | 2019-02-22 |
CN109379337B true CN109379337B (zh) | 2021-01-26 |
Family
ID=65405000
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201811087162.8A Active CN109379337B (zh) | 2018-09-18 | 2018-09-18 | 一种安卓平台下应用进程的保活方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN109379337B (zh) |
Families Citing this family (14)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111782347A (zh) * | 2019-04-03 | 2020-10-16 | 安克创新科技股份有限公司 | 手机应用保活方法、装置、系统及存储介质 |
CN110489215A (zh) | 2019-06-29 | 2019-11-22 | 华为技术有限公司 | 一种应用程序中等待场景的处理方法和装置 |
CN112445530B (zh) * | 2019-08-29 | 2023-03-14 | 成都鼎桥通信技术有限公司 | 第三方应用程序保活方法及设备 |
CN112579180B (zh) * | 2019-09-30 | 2024-06-28 | 奇安信科技集团股份有限公司 | 应用程序保活方法及装置 |
CN111026450A (zh) * | 2019-12-11 | 2020-04-17 | 上海德拓信息技术股份有限公司 | 一种政务终端应用持续后台运行的方法 |
CN111309395B (zh) * | 2020-02-10 | 2021-07-20 | 北京星选科技有限公司 | 对象保活方法、装置、电子设备及计算机可读存储介质 |
CN111488207B (zh) * | 2020-03-11 | 2023-10-27 | 中移(杭州)信息技术有限公司 | 应用进程保活方法、装置、网络设备及存储介质 |
CN111399924B (zh) * | 2020-03-18 | 2023-06-16 | 山东车微联信息技术股份有限公司 | 一种安卓平台下应用进程保活的方法、终端及存储介质 |
CN112231016A (zh) * | 2020-10-27 | 2021-01-15 | 山东云缦智能科技有限公司 | 基于应用启动频率的Android进程管理机制处理方法 |
CN113760492A (zh) * | 2020-11-04 | 2021-12-07 | 北京沃东天骏信息技术有限公司 | 一种程序进程保活方法、系统、装置、设备以及存储介质 |
CN112350895B (zh) * | 2020-11-05 | 2023-04-07 | 深圳Tcl新技术有限公司 | 应用程序的保活方法及装置、设备、计算机可读存储介质 |
CN112905266A (zh) * | 2021-03-31 | 2021-06-04 | 读书郎教育科技有限公司 | 一种智能手表后台程序管理的系统及方法 |
CN113238925B (zh) * | 2021-04-13 | 2022-07-19 | 厦门路桥信息股份有限公司 | 应用服务测试方法、介质、设备及系统 |
CN117170847B (zh) * | 2023-09-09 | 2024-03-22 | 嘉兴嘉赛信息技术有限公司 | 一种基于安卓手机的推流保活的方法 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105704802A (zh) * | 2016-04-01 | 2016-06-22 | 努比亚技术有限公司 | 一种移动终端及其通信方法 |
CN106464736A (zh) * | 2014-10-30 | 2017-02-22 | 环球互连及数据中心公司 | 用于基于云的服务交换的实时配置和管理的互连平台 |
Family Cites Families (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102739838A (zh) * | 2011-04-06 | 2012-10-17 | 北京双迪广告有限公司 | 智能手机应用程序的使用者行为分析方法 |
CN102929618A (zh) * | 2012-10-18 | 2013-02-13 | 中国人民解放军理工大学 | 基于xml配置文件和监听注册的一体化网管综合集成方法 |
CN106662907B (zh) * | 2015-10-29 | 2019-10-22 | 华为技术有限公司 | 基于终端的唤醒锁控制方法、装置及终端 |
CN105389263B (zh) * | 2015-12-24 | 2017-12-19 | 北京奇虎科技有限公司 | 应用软件权限监控方法、系统及设备 |
CN105607935B (zh) * | 2015-12-24 | 2019-12-13 | 北京奇虎科技有限公司 | 应用程序更新方法及其终端、服务器 |
CN106648863B (zh) * | 2016-12-08 | 2020-01-03 | 武汉斗鱼网络科技有限公司 | 一种安卓应用安装包、应用目标进程保活方法及系统 |
CN106844062B (zh) * | 2016-12-23 | 2019-06-18 | 华南师范大学 | 一种在C++与Python模块间实现实时双向协助的通信方法 |
CN107704274B (zh) * | 2017-08-24 | 2019-11-05 | 武汉斗鱼网络科技有限公司 | 用于安卓应用主进程唤醒的方法、存储介质、设备及系统 |
-
2018
- 2018-09-18 CN CN201811087162.8A patent/CN109379337B/zh active Active
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106464736A (zh) * | 2014-10-30 | 2017-02-22 | 环球互连及数据中心公司 | 用于基于云的服务交换的实时配置和管理的互连平台 |
CN105704802A (zh) * | 2016-04-01 | 2016-06-22 | 努比亚技术有限公司 | 一种移动终端及其通信方法 |
Also Published As
Publication number | Publication date |
---|---|
CN109379337A (zh) | 2019-02-22 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109379337B (zh) | 一种安卓平台下应用进程的保活方法 | |
US11080117B2 (en) | System and method for introducing functionality to an application for use with a network service | |
CN105955782B (zh) | 应用程序运行控制的方法及装置 | |
CN106648863B (zh) | 一种安卓应用安装包、应用目标进程保活方法及系统 | |
CN109246220B (zh) | 一种消息推送系统及方法 | |
CN106155727B (zh) | 一种应用程序的更新方法、装置及终端 | |
WO2012166873A2 (en) | Computer program, method, and system for preventing execution of viruses and malware | |
CN106657299B (zh) | 关注主播上线提醒方法及系统 | |
US10191732B2 (en) | Systems and methods for preventing service disruption during software updates | |
CN106484461A (zh) | 智能终端中的服务保活方法及装置 | |
CN112307465A (zh) | 应对应用程序被查杀的保活拉活方法、存储介质及设备 | |
CN110865819B (zh) | 一种os的安装方法、服务器和系统 | |
CN109947576B (zh) | 一种虚拟机内部代理程序管理的方法 | |
US9182976B2 (en) | System and method for managing client application enablement | |
CN114995848B (zh) | IoT设备升级方法、IoT设备和计算机可读存储介质 | |
CN106230878B (zh) | 一种基于AllJoyn框架的设备服务调用方法及装置 | |
US10579503B2 (en) | Conditionally crashing software applications to track software use | |
EP2983085B1 (en) | Method and apparatus for informing connection condition between external device and router | |
CN111367963B (zh) | 一种确定来源渠道的方法、装置、设备和计算机存储介质 | |
CN110365839B (zh) | 关机方法、装置、介质及电子设备 | |
CN106162609B (zh) | 一种推送数据的方法及装置 | |
CN114490549A (zh) | 一种安卓应用进程守护方法和系统 | |
CN112104506B (zh) | 组网方法、装置、服务器及可读存储介质 | |
US20150199406A1 (en) | Method and device for filtering system events, terminal, and storage medium | |
WO2018176178A1 (zh) | 在本地服务被禁用或停止情况下执行本地服务功能的方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |