CN110413342A - 一种可以动态调整监控的android服务及进程并动态调整对应处理机制的方法 - Google Patents
一种可以动态调整监控的android服务及进程并动态调整对应处理机制的方法 Download PDFInfo
- Publication number
- CN110413342A CN110413342A CN201910634644.9A CN201910634644A CN110413342A CN 110413342 A CN110413342 A CN 110413342A CN 201910634644 A CN201910634644 A CN 201910634644A CN 110413342 A CN110413342 A CN 110413342A
- Authority
- CN
- China
- Prior art keywords
- service
- responder
- monitoring
- list
- android
- 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.)
- Granted
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/30—Monitoring
- G06F11/3003—Monitoring arrangements specially adapted to the computing system or computing system component being monitored
- G06F11/302—Monitoring arrangements specially adapted to the computing system or computing system component being monitored where the computing system component is a software system
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/30—Monitoring
- G06F11/3055—Monitoring 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
-
- 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/445—Program loading or initiating
- G06F9/44505—Configuring for program initiating, e.g. using registry, configuration files
- G06F9/4451—User 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)
- Stored Programmes (AREA)
- Debugging And Monitoring (AREA)
Abstract
本发明公开了一种可以动态调整监控的android服务及进程并动态调整对应处理机制的方法,该方法包括以下步骤:一、android系统开机启动;二、监控程序自启动运行;三、读取配置文件内的服务及进程列表并添加到监控列表;四、监控程序根据监控列表开始监控服务及进程状态;五、查找对应的响应程序名;六、执行响应程序;七、响应程序的实现,响应程序可以实现包括抓取打印、保存日志的功能。本发明用于android系统中,通过该方法,可以提高对android系统服务及进程未启动或者挂死这类问题的调试效率,可以更灵活的调整这类问题的应对方法。
Description
技术领域
本发明涉及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分区下,设置export PATH环境变量,那么响应程序就变成一个类似cd 、ls的shell命名,可通过system函数直接执行,不同的服务或进程对应着不同的处理程序,可以通过网络下载或者升级等方式更新处理程序,从而达到动态调整的效果。
本发明的一种可以动态调整监控的android服务及进程并动态调整对应处理机制的方法可以显著提高android系统服务或者进程挂死这类问题的调试效率。当出现android系统服务或者进程挂死的时候,可以提供更灵活更多变的应对机制。
尽管已经对本发明的技术方案做了较为详细的阐述和列举,应当理解,对于本领域技术人员来说,对上述实施例做出修改或者采用等同的替代方案,这对本领域的技术人员而言是显而易见,在不偏离本发明精神的基础上所做的这些修改或改进,均属于本发明要求保护的范围。
Claims (5)
1.一种可以动态调整监控的android服务及进程并动态调整对应处理机制的方法,其特征在于,该方法包括以下步骤:
一、android系统开机启动;
二、监控程序自启动运行;
三、读取配置文件内的服务及进程列表并添加到监控列表,启动线程实用linux提供的inotify接口对配置文件进行实时检测,当文件被修改时,内核把文件的修改触发给inotify文件描,线程read文件描述符,即可知道是文件被修改了,此时通过进程间通信告诉主进程读取文件内容,更新监控列表;若配置文件内容为空,则监控列表也为空,监控程序循环超时检测监控列表;
四、监控程序根据监控列表开始监控服务及进程状态;先判断需要监控是服务还是进程,监控列表里会记录是服务还是进程,如果是服务,则通过IServiceManager的checkService接口进行查询,如果查不到则说明该服务挂掉,可以触发响应程序;如果是进程,有两种情况,一种是进程挂死后不存在,一种是进程一直挂死重启,这种情况进程pid会变;
五、监控到有服务或者进程挂死,根据服务或者进程名在配置文件中查找对应的响应程序名;
六、将响应程序放到deviceinfo分区下,并设置环境变量,响应程序变为类似cd、ls的shell命名,那么程序直接通过调用system接口,可以执行响应程序;所以上一步如果查找到响应程序名,那么则通过system函数启动响应程序做相应处理,若未找到则不做处理;
七、响应程序的实现,响应程序可以实现包括抓取打印、保存日志的功能。
2.根据权利要求1所述的一种可以动态调整监控的android服务及进程并动态调整对应处理机制的方法,其特征在于:步骤三中,所述配置文件内置在android系统中,可为空,为空则不对任何服务和进程进行监控。
3.根据权利要求1所述的一种可以动态调整监控的android服务及进程并动态调整对应处理机制的方法,其特征在于:步骤四中,通过server–list命名可以看到的服务。
4.根据权利要求1所述的一种可以动态调整监控的android服务及进程并动态调整对应处理机制的方法,其特征在于:步骤四中,根据进程的pid会变的特性进行处理,具体分为两步:第一,因为每个进程都在/proc/目录下存在自己pid同名目录下的cmdline是进程名,通过将监控列表中的进程名与proc下所有cmdline对比,如果有一致的,说明进程存在,并且记录pid;如果对比所有,都不一致,说明进程已经挂死不存在,则触发响应程序;第二,将监控列表中的所有进程都查找一遍后,进行第二遍查找,查找到后将pid与上一次记录的pid对比,如果一致,说进程正常,如果不一致,说明进程挂死重启,那么触发响应程序。
5.根据权利要求1所述的一种可以动态调整监控的android服务及进程并动态调整对应处理机制的方法,其特征在于:在步骤五中,配置文件包括三个属性:(1)需要监控的服务及进程名,(2)标识是监控类型是服务还是进程,(3)对应的响应程序名,该配置文件内置在android系统中,可以通过网络下载或者升级的方式去修改,从而达到动态调整监控服务及进程。
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 true CN110413342A (zh) | 2019-11-05 |
CN110413342B 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) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112181487A (zh) * | 2020-08-19 | 2021-01-05 | 网神信息技术(北京)股份有限公司 | 软件兼容性处理方法、装置、电子设备及存储介质 |
Citations (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20130290981A1 (en) * | 2012-04-27 | 2013-10-31 | Telefonaktiebolaget L M Ericsson (Publ) | Method and System for Controlled Communication Between Applications |
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被动态跟踪的安全方法和系统 |
-
2019
- 2019-07-15 CN CN201910634644.9A patent/CN110413342B/zh active Active
Patent Citations (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20130290981A1 (en) * | 2012-04-27 | 2013-10-31 | Telefonaktiebolaget L M Ericsson (Publ) | Method and System for Controlled Communication Between Applications |
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)
Title |
---|
WDWBW: ""用于监控 Linux文件系统事件的inotify接口学习笔记"", 《HTTPS://BLOG.CSDN.NET/WDWBW/ARTICLE/DETAILS/6015060》 * |
临渊慕鱼不如退而结网: ""inotify事件监控工具"", 《HTTPS://WWW.CNBLOGS.COM/YWRJ/P/9888425.HTML》 * |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112181487A (zh) * | 2020-08-19 | 2021-01-05 | 网神信息技术(北京)股份有限公司 | 软件兼容性处理方法、装置、电子设备及存储介质 |
CN112181487B (zh) * | 2020-08-19 | 2024-06-28 | 奇安信网神信息技术(北京)股份有限公司 | 软件兼容性处理方法、装置、电子设备及存储介质 |
Also Published As
Publication number | Publication date |
---|---|
CN110413342B (zh) | 2022-12-16 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109857755B (zh) | 一种规则校验方法及装置 | |
CN109885316B (zh) | 基于kubernetes的hdfs-hbase部署方法及装置 | |
CN105516233B (zh) | 用于在一个或多个云系统上便携部署应用的方法和系统 | |
KR102277715B1 (ko) | 가상 머신들을 관리하는 장치 및 방법 | |
CN111061817B (zh) | 自适应业务构建系统、方法及计算机可读介质 | |
US9916368B2 (en) | Non-exclusionary search within in-memory databases | |
US20050091346A1 (en) | Settings management infrastructure | |
US20170220647A1 (en) | Pluggable architecture for embedding analytics in clustered in-memory databases | |
US7277827B2 (en) | Device testing framework for creating device-centric scenario-based automated tests | |
CN101329636A (zh) | 虚拟化窗口信息的方法和设备 | |
CN110196888A (zh) | 基于Hadoop的数据更新方法、装置、系统及介质 | |
CN110489310B (zh) | 一种记录用户操作的方法、装置、存储介质及计算机设备 | |
CN109445937B (zh) | 一种组件化编程及无缝执行方法 | |
WO2015154435A1 (zh) | 软件参数的管理方法及装置 | |
US11068244B2 (en) | Optimized transpilation | |
CN113726566A (zh) | 一种服务网关装置 | |
CN109274734A (zh) | 一种基于物联网云平台的服务进程调用方法及装置 | |
CN110413342A (zh) | 一种可以动态调整监控的android服务及进程并动态调整对应处理机制的方法 | |
CN115576600A (zh) | 基于代码变更的差异处理方法、装置、终端及存储介质 | |
US7739232B2 (en) | Programming system for occasionally-connected mobile business applications | |
CN112035183B (zh) | 微应用的接入方法及装置 | |
CN115964061A (zh) | 插件更新方法、装置、电子设备和计算机可读存储介质 | |
CN106911730A (zh) | 一种云盘服务器访问迁移方法和装置 | |
US20120222023A1 (en) | Automatic runtime dependency lookup | |
CN105787359B (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 |