CN110413342B - 一种可以动态调整监控的android服务及进程并动态调整对应处理机制的方法 - Google Patents

一种可以动态调整监控的android服务及进程并动态调整对应处理机制的方法 Download PDF

Info

Publication number
CN110413342B
CN110413342B CN201910634644.9A CN201910634644A CN110413342B CN 110413342 B CN110413342 B CN 110413342B CN 201910634644 A CN201910634644 A CN 201910634644A CN 110413342 B CN110413342 B CN 110413342B
Authority
CN
China
Prior art keywords
service
list
monitoring
response program
name
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
Application number
CN201910634644.9A
Other languages
English (en)
Other versions
CN110413342A (zh
Inventor
林立伟
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Shenzhen Yihui Software Co ltd
Original Assignee
Shenzhen Yihui Software Co ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Shenzhen Yihui Software Co ltd filed Critical Shenzhen Yihui Software Co ltd
Priority to CN201910634644.9A priority Critical patent/CN110413342B/zh
Publication of CN110413342A publication Critical patent/CN110413342A/zh
Application granted granted Critical
Publication of CN110413342B publication Critical patent/CN110413342B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/3003Monitoring arrangements specially adapted to the computing system or computing system component being monitored
    • G06F11/302Monitoring arrangements specially adapted to the computing system or computing system component being monitored where the computing system component is a software system
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/3055Monitoring arrangements for monitoring the status of the computing system or of the computing system component, e.g. monitoring if the computing system is on, off, available, not available
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/44Arrangements for executing specific programs
    • G06F9/445Program loading or initiating
    • G06F9/44505Configuring for program initiating, e.g. using registry, configuration files
    • G06F9/4451User profiles; Roaming

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Computing Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Software Systems (AREA)
  • Quality & Reliability (AREA)
  • Mathematical Physics (AREA)
  • Debugging And Monitoring (AREA)
  • Stored Programmes (AREA)

Abstract

本发明公开了一种可以动态调整监控的android服务及进程并动态调整对应处理机制的方法,该方法包括以下步骤:一、android系统开机启动;二、监控程序自启动运行;三、读取配置文件内的服务及进程列表并添加到监控列表;四、监控程序根据监控列表开始监控服务及进程状态;五、查找对应的响应程序名;六、执行响应程序;七、响应程序的实现,响应程序可以实现包括抓取打印、保存日志的功能。本发明用于android系统中,通过该方法,可以提高对android系统服务及进程未启动或者挂死这类问题的调试效率,可以更灵活的调整这类问题的应对方法。

Description

一种可以动态调整监控的android服务及进程并动态调整对 应处理机制的方法
技术领域
本发明涉及android系统领域,尤其是一种可以动态调整监控的android服务及进程并动态调整对应处理机制的方法。
背景技术
Android是一种基于Linux的自由及开放源代码的操作系统。主要使用于移动设备,如智能手机和平板电脑,由Google(谷歌)公司和开放手机联盟领导及开发。Android操作系统最初由Andy Rubin开发,主要支持手机。2005年8月由Google收购注资。2007年11月,Google与84家硬件制造商、软件开发商及电信营运商组建开放手机联盟共同研发改良Android系统。随后Google以Apache开源许可证的授权方式,发布了Android的源代码。第一部Android智能手机发布于2008年10月。Android逐渐扩展到平板电脑及其他领域上,如电视、数码相机、游戏机、智能手表等。
Android的系统架构和其操作系统一样,采用了分层的架构。Android分为四个层,从高层到低层分别是应用程序层、应用程序框架层、系统运行库层和Linux内核层。Android开发四大组件分别是:活动(Activity):用于表现功能。服务(Service):后台运行服务,不提供界面呈现。广播接收器(Broadcast Receiver):用于接收广播。内容提供商(ContentProvider):支持在多个应用中存储和读取数据,相当于数据库。
Service(服务)是android系统中的一种组件,它跟Activity的级别差不多,但是他不能自己运行,只能后台运行,并且可以和其他组件进行交互。Service是没有界面的长生命周期的代码。Service是一种程序,它可以运行很长时间,但是它却没有用户界面。这么说有点枯燥,来看个例子。打开一个音乐播放器的程序,这个时候若想上网了,那么,打开Android浏览器,这个时候虽然已经进入了浏览器这个程序,但是,歌曲播放并没有停止,而是在后台继续一首接着一首的播放。其实这个播放就是由播放音乐的Service进行控制。当然这个播放音乐的Service也可以停止,例如,当播放列表里边的歌曲都结束,或者用户按下了停止音乐播放的快捷键等。Service可以在和多场合的应用中使用,比如播放多媒体的时候用户启动了其他Activity这个时候程序要在后台继续播放,比如检测SD卡上文件的变化,再或者在后台记录地理信息位置的改变等等,总之服务嘛,总是藏在后头的。
在Android里,进程完全是应用的实现细节,而不是用户通常了解的那样。其主要用途就是:通过安置不受信任的或不稳定的代码到另一个进程来提高稳定性或安全性。通过在同一进程里运行多个.apks的代码来减少开销。通过把重量级代码放在单独的进程中来帮助系统管理资源,该进程可以在不影响应用程序其他部分的情况下被终止。
Android系统的服务和进程未启动或者挂死之后,往往无法及时有效的处理,为了克服现有技术的缺陷,需要设计一种可以动态调整监控的android服务及进程并动态调整对应处理机制的方法。
发明内容
为了克服现有技术中的缺陷,提供一种可以动态调整监控的android服务及进程并动态调整对应处理机制的方法。
本发明通过下述方案实现:
一种可以动态调整监控的android服务及进程并动态调整对应处理机制的方法,该方法包括以下步骤:
一、android系统开机启动;
二、监控程序自启动运行;
三、读取配置文件内的服务及进程列表并添加到监控列表,启动线程使用linux提供的inotify接口对配置文件进行实时检测,当文件被修改时,内核把文件的修改处发给inotify,通过线程read文件描述符即可知道是文件被修改了,此时通过进程间通信告诉主进程读取文件内容,更新监控列表;若配置文件内容为空,则监控列表也为空,监控程序循环超时检测监控列表;
四、监控程序根据监控列表开始监控服务及进程状态;先判断需要监控的列表是服务还是进程,监控列表里会记录是服务还是进程,如果是服务,则通过IServiceManager的checkService接口进行查询,如果查不到则说明该服务挂掉,可以触发响应程序;如果是进程,有两种情况,一种是进程挂死后不存在,一种是进程一直挂死重启,这种情况进程pid会变;
五、监控到有服务或者进程挂死,根据服务或者进程名在配置文件中查找对应的响应程序名;
六、将响应程序放到deviceinfo分区下,并设置环境变量,响应程序变为类似cd、ls的shell命名,那么程序直接通过调用system接口,可以执行响应程序;所以上一步如果查找到响应程序名,那么则通过system函数启动响应程序做相应处理,若未找到则不做处理;
七、响应程序的实现,响应程序可以实现包括抓取打印、保存日志的功能。
步骤三中,所述配置文件内置在android系统中,可为空,为空则不对任何服务和进程进行监控。
步骤四中,通过server–list命名可以看到监控列表里记录的服务。
步骤四中,根据进程的pid会变的特性进行处理,具体分为两步:第一,因为每个进程都在/proc/目录下存在自己pid同名目录下的cmdline是进程名,通过将监控列表中的进程名与proc下所有cmdline对比,如果有一致的,说明进程存在,并且记录pid;如果对比所有,都不一致,说明进程已经挂死不存在,则触发响应程序;第二,将监控列表中的所有进程都查找一遍后,进行第二遍查找,查找到后将pid与上一次记录的pid对比,如果一致,说进程正常,如果不一致,说明进程挂死重启,那么触发响应程序。
在步骤五中,配置文件包括三个属性:(1)需要监控的服务及进程名,(2)标识监控的类型是服务还是进程,(3)对应的响应程序名,该配置文件内置在android系统中,可以通过网络下载或者升级的方式去修改,从而达到动态调整监控服务及进程。
本发明的有益效果为:
本发明一种可以动态调整监控的android服务及进程并动态调整对应处理机制的方法用于android系统中,在不需要修改程序的情况下,动态调整需要监控服务和进程,当监控到服务和进程未启动或者挂死之后,通过更新响应程序达到动态调整对应处理机制(比如抓取打印,保存日志,上报异常等),通过该方法,可以提高对android系统服务及进程未启动或者挂死这类问题的调试效率,可以更灵活的调整这类问题的应对方法。
具体实施方式
下面对本发明优选的实施例进一步说明:
一种可以动态调整监控的android服务及进程并动态调整对应处理机制的方法,该方法包括以下步骤:
一、android系统开机启动;
二、监控程序自启动运行;
三、读取配置文件内的服务及进程列表并添加到监控列表,启动线程使用linux提供的inotify接口对配置文件进行实时检测,当文件被修改时,内核把文件的修改处发给inotify,通过线程read文件描述符即可知道是文件被修改了,此时通过进程间通信告诉主进程读取文件内容,更新监控列表;若配置文件内容为空,则监控列表也为空,监控程序循环超时检测监控列表;
四、监控程序是负责对服务及进程监控的具体逻辑实现。监控程序根据监控列表开始监控服务及进程状态;先判断需要监控的列表是服务还是进程,监控列表里会记录是服务还是进程,如果是服务,则通过IServiceManager的checkService接口进行查询,如果查不到则说明该服务挂掉,可以触发响应程序;如果是进程,有两种情况,一种是进程挂死后不存在,一种是进程一直挂死重启,这种情况进程pid会变;
五、监控到有服务或者进程挂死,根据服务或者进程名在配置文件中查找对应的响应程序名;
六、将响应程序放到deviceinfo分区下,并设置环境变量,响应程序变为类似cd、ls的shell命名,那么程序直接通过调用system接口,可以执行响应程序;所以上一步如果查找到响应程序名,那么则通过system函数启动响应程序做相应处理,若未找到则不做处理;
七、响应程序的实现,响应程序可以实现包括抓取打印、保存日志的功能。
步骤三中,所述配置文件内置在android系统中,可为空,为空则不对任何服务和进程进行监控。
步骤四中,通过server–list命名可以看到监控列表里记录的服务。
步骤四中,根据进程的pid会变的特性进行处理,具体分为两步:第一,因为每个进程都在/proc/目录下存在自己pid同名目录下的cmdline是进程名,通过将监控列表中的进程名与proc下所有cmdline对比,如果有一致的,说明进程存在,并且记录pid;如果对比所有,都不一致,说明进程已经挂死不存在,则触发响应程序;第二,将监控列表中的所有进程都查找一遍后,进行第二遍查找,查找到后将pid与上一次记录的pid对比,如果一致,说进程正常,如果不一致,说明进程挂死重启,那么触发响应程序。
在步骤五中,配置文件包括三个属性:(1)需要监控的服务及进程名,(2)标识监控的类型是服务还是进程,(3)对应的响应程序名,该配置文件内置在android系统中,可以通过网络下载或者升级的方式去修改,从而达到动态调整监控服务及进程。具体如表1所示。
表1配置文件内部关系表
服务或者进程名 类型 响应程序名
SurfaceFlinger server coshiplog
com.android.systemui process coshipreboot
配置文件检测线程使用linux提供的inotify接口可以实时监测一个文件的变化,包括文件被打开,权限被修改,文件被修改等。
响应程序是在监控到服务或者进程未启动或者挂死后相应的处理程序,响应程序是一个可执行程序,通过编写不同的功能的程序,编译成可执行程序,将可执行程序放到我们的deviceinfo分区下,设置exportPATH环境变量,那么响应程序就变成一个类似cd、ls的shell命名,可通过system函数直接执行,不同的服务或进程对应着不同的处理程序,可以通过网络下载或者升级等方式更新处理程序,从而达到动态调整的效果。
本发明的一种可以动态调整监控的android服务及进程并动态调整对应处理机制的方法可以显著提高android系统服务或者进程挂死这类问题的调试效率。当出现android系统服务或者进程挂死的时候,可以提供更灵活更多变的应对机制。
尽管已经对本发明的技术方案做了较为详细的阐述和列举,应当理解,对于本领域技术人员来说,对上述实施例做出修改或者采用等同的替代方案,这对本领域的技术人员而言是显而易见,在不偏离本发明精神的基础上所做的这些修改或改进,均属于本发明要求保护的范围。

Claims (4)

1.一种可以动态调整监控的android服务及进程并动态调整对应处理机制的方法,其特征在于,该方法包括以下步骤:
一、android系统开机启动;
二、监控程序自启动运行;
三、读取配置文件内的服务及进程列表并添加到监控列表,启动线程使用linux提供的inotify接口对配置文件进行实时检测,当文件被修改时,内核把文件的修改处发给inotify,通过线程read文件描述符即可知道是文件被修改了,此时通过进程间通信告诉主进程读取文件内容,更新监控列表;若配置文件内容为空,则监控列表也为空,监控程序循环超时检测监控列表;
四、监控程序根据监控列表开始监控服务及进程状态;先判断需要监控的列表是服务还是进程,监控列表里会记录是服务还是进程,如果是服务,则通过IServiceManager的checkService接口进行查询,如果查不到则说明该服务挂掉,可以触发响应程序;如果是进程,有两种情况,一种是进程挂死后不存在,一种是进程一直挂死重启,这种情况进程pid会变;
步骤四中,根据进程的pid会变的特性进行处理,具体分为两步:第一,因为每个进程都在/proc/目录下存在自己pid同名目录下的cmdline是进程名,通过将监控列表中的进程名与proc下所有cmdline对比,如果有一致的,说明进程存在,并且记录pid;如果对比所有,都不一致,说明进程已经挂死不存在,则触发响应程序;第二,将监控列表中的所有进程都查找一遍后,进行第二遍查找,查找到后将pid与上一次记录的pid对比,如果一致,说进程正常,如果不一致,说明进程挂死重启,那么触发响应程序;
五、监控到有服务或者进程挂死,根据服务或者进程名在配置文件中查找对应的响应程序名;
六、将响应程序放到deviceinfo分区下,并设置环境变量,响应程序变为类似cd、ls的shell命名,那么程序直接通过调用system接口,可以执行响应程序;所以上一步如果查找到响应程序名,那么则通过system函数启动响应程序做相应处理,若未找到则不做处理;
七、响应程序的实现,响应程序可以实现包括抓取打印、保存日志的功能。
2.根据权利要求1所述的一种可以动态调整监控的android服务及进程并动态调整对应处理机制的方法,其特征在于:步骤三中,所述配置文件内置在android系统中,可为空,为空则不对任何服务和进程进行监控。
3.根据权利要求1所述的一种可以动态调整监控的android服务及进程并动态调整对应处理机制的方法,其特征在于:步骤四中,通过server–list命名可以看到监控列表里记录的服务。
4.根据权利要求1所述的一种可以动态调整监控的android服务及进程并动态调整对应处理机制的方法,其特征在于:在步骤五中,配置文件包括三个属性:(1)需要监控的服务及进程名,(2)标识监控的类型是服务还是进程,(3)对应的响应程序名,该配置文件内置在android系统中,可以通过网络下载或者升级的方式去修改,从而达到动态调整监控服务及进程。
CN201910634644.9A 2019-07-15 2019-07-15 一种可以动态调整监控的android服务及进程并动态调整对应处理机制的方法 Active CN110413342B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201910634644.9A CN110413342B (zh) 2019-07-15 2019-07-15 一种可以动态调整监控的android服务及进程并动态调整对应处理机制的方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201910634644.9A CN110413342B (zh) 2019-07-15 2019-07-15 一种可以动态调整监控的android服务及进程并动态调整对应处理机制的方法

Publications (2)

Publication Number Publication Date
CN110413342A CN110413342A (zh) 2019-11-05
CN110413342B true CN110413342B (zh) 2022-12-16

Family

ID=68361413

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201910634644.9A Active CN110413342B (zh) 2019-07-15 2019-07-15 一种可以动态调整监控的android服务及进程并动态调整对应处理机制的方法

Country Status (1)

Country Link
CN (1) CN110413342B (zh)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112181487A (zh) * 2020-08-19 2021-01-05 网神信息技术(北京)股份有限公司 软件兼容性处理方法、装置、电子设备及存储介质

Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103902890A (zh) * 2012-12-24 2014-07-02 珠海市君天电子科技有限公司 一种Android程序行为的监控方法及监控系统
CN104423934A (zh) * 2013-08-25 2015-03-18 上海莞东拿信息科技有限公司 基于Android平台系统的旅程航班动态通知系统及其方法
CN105204972A (zh) * 2015-09-09 2015-12-30 北京思特奇信息技术股份有限公司 一种可执行程序统一发布及管理的方法及系统
CN106844136A (zh) * 2016-12-06 2017-06-13 北京智能管家科技有限公司 一种程序崩溃信息的收集方法及系统
CN106909413A (zh) * 2015-12-23 2017-06-30 北京奇虎科技有限公司 一种数据处理方法和装置
CN107038373A (zh) * 2017-04-28 2017-08-11 北京洋浦伟业科技发展有限公司 一种进程调试检测方法及装置
CN107959548A (zh) * 2017-11-14 2018-04-24 北京思特奇信息技术股份有限公司 一种处理服务请求的方法和系统
CN109981580A (zh) * 2019-02-25 2019-07-05 浪潮软件集团有限公司 一种防止cmsp被动态跟踪的安全方法和系统

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8707330B2 (en) * 2012-04-27 2014-04-22 Telefonaktiebolaget L M Ericsson (Publ) Method and system for controlled communication between applications

Patent Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103902890A (zh) * 2012-12-24 2014-07-02 珠海市君天电子科技有限公司 一种Android程序行为的监控方法及监控系统
CN104423934A (zh) * 2013-08-25 2015-03-18 上海莞东拿信息科技有限公司 基于Android平台系统的旅程航班动态通知系统及其方法
CN105204972A (zh) * 2015-09-09 2015-12-30 北京思特奇信息技术股份有限公司 一种可执行程序统一发布及管理的方法及系统
CN106909413A (zh) * 2015-12-23 2017-06-30 北京奇虎科技有限公司 一种数据处理方法和装置
CN106844136A (zh) * 2016-12-06 2017-06-13 北京智能管家科技有限公司 一种程序崩溃信息的收集方法及系统
CN107038373A (zh) * 2017-04-28 2017-08-11 北京洋浦伟业科技发展有限公司 一种进程调试检测方法及装置
CN107959548A (zh) * 2017-11-14 2018-04-24 北京思特奇信息技术股份有限公司 一种处理服务请求的方法和系统
CN109981580A (zh) * 2019-02-25 2019-07-05 浪潮软件集团有限公司 一种防止cmsp被动态跟踪的安全方法和系统

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
"inotify事件监控工具";临渊慕鱼不如退而结网;《https://www.cnblogs.com/ywrj/p/9888425.html》;20181101;第1-3页 *
"用于监控 Linux文件系统事件的inotify接口学习笔记";wdwbw;《https://blog.csdn.net/wdwbw/article/details/6015060》;20101117;第1-5页 *

Also Published As

Publication number Publication date
CN110413342A (zh) 2019-11-05

Similar Documents

Publication Publication Date Title
US7720931B2 (en) System and method of remotely managing and loading artifacts
CN101889278B (zh) 概述响应于触发门户页面中的事件而捕获的门户件使用
US8150729B2 (en) Method, system and program product for displaying advertising content on a music player
US8438546B2 (en) System and method for mitigating repeated crashes of an application resulting from supplemental code
US7761559B2 (en) System and method of remotely managing and loading artifacts
US7526516B1 (en) System and method for file integrity monitoring using timestamps
US9697353B2 (en) Method and device for intercepting call for service by application
CN104462980A (zh) 一种应用程序权限管理的方法、装置、系统及移动终端
US8126859B2 (en) Updating a local version of a file based on a rule
US8863108B2 (en) Finding out if software will run on an operating system without installing that software
US20110055826A1 (en) Systems and methods for tracking a history of changes associated with software packages in a computing system
US20070118572A1 (en) Detecting changes in data
US20190327105A1 (en) Method and apparatus for pushing information
EP3005099A1 (en) Context-based actions from a source application
CN104049986A (zh) 插件加载方法及装置
US8407337B2 (en) Multiple instance commercial browser website test agent
CN101404023A (zh) 一种对下载的文件进行操作的方法和装置
CN106095621B (zh) 一种安卓系统中Launcher运行异常的恢复方法及系统
US8701114B2 (en) Dynamically redirecting a file descriptor of an executing process by another process by optionally suspending the executing process
CN111639314B (zh) 容器登录系统、方法、服务器及存储介质
CN103605538A (zh) 一种安装软件的方法和装置
CN106484719B (zh) 一种扩展手机存储的方法及终端
CN110413342B (zh) 一种可以动态调整监控的android服务及进程并动态调整对应处理机制的方法
US11150884B1 (en) Device driver update images
CN109976754B (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