System.ArgumentOutOfRangeException: 索引和长度必须引用该字符串内的位置。 参数名: length 在 System.String.Substring(Int32 startIndex, Int32 length) 在 zhuanliShow.Bind()
【技术实现步骤摘要】
本申请涉及软件管理领域,具体而言,涉及一种应用程序的健康管理方法和装置。
技术介绍
1、目前车载娱乐系统中,主流是使用android系统。一方面其中在车载应用的健康管理方面,android系统本身做的并不是非常完善。另一方面现有的技术方案对车载应用的健康管理做的也不是很完善。
2、方案一、目前google android已有的看门狗逻辑(carwatchdog)中,主要流程为android应用程序(app)作为客户端注册回调到看门狗逻辑中,看门狗逻辑会周期性的通过进程间通信(inter-process communication,ipc)与应用程序进行通信,在固定时间内未收到应用程序的回复消息后,则判断应用程序进程已经处于异常状态。如长时间不能回复消息,或者内部检测工作状态异常,返回异常值给服务器。后续服务器会对应用程序进程进行终止(kill)处理,并将应用程序的线程状态备份(dump)到指定目录下。方案一的主要问题如下:
3、1、仅针对进程维度的监听,当进程状态异常的时候对其进行kill处理。
4、2、在进程被kill掉之后,无法进行重新拉起。
5、3、车机中dump文件无法及时返回给研发人员进行问题定位。
6、方案二、在多线程系统中设定一线程为监控线程,其它线程为被监控线程,其中监控线程用于定时与被监控线程通信以获取每个线程的工作状态;每个被监控线程都需响应监控线程的消息或通知,及时反馈本线程的工作状态和其他信息;监控线程维护一个每个线程状态的信息表;系统根据各线程
7、1、仅能在当前进程下,对线程进行工作状态的监控,不能跨进程的监控。
8、2、不能在进程维度对应用进行状态的监控。
9、3、其同样无法做到将dump的信息及时反馈到研发进行问题定位。
10、因此,本申请提供了一种应用程序的健康管理方法,以解决上述技术问题之一。
技术实现思路
1、本申请的目的在于提供一种应用程序的健康管理方法和装置,能够解决上述提到的至少一个技术问题。具体方案如下:
2、根据本申请的具体实施方式,第一方面,本申请提供一种应用程序的健康管理方法,包括:
3、客户端应用程序通过注册为看门狗程序的客户端,将第一参数和第二参数传入看门狗程序的服务端,其中,所述第一参数包括监控等级,所述第二参数包括所述客户端应用程序的关联线程标识符,
4、其中,所述客户端应用程序集成有看门狗程序客户端接口,并且所述客户端应用程序和所述看门狗程序的服务端通过所述看门狗程序客户端接口进行通信;
5、所述看门狗程序的服务端根据所述关联线程标识符形成有向无环图;
6、根据所述有向无环图和所述第一参数,对所述客户端应用程序的线程的健康状态进行检测;
7、根据对所述客户端应用程序的线程的健康状态的检测结果,通过预置的对应管理策略进行对应的操作。
8、可选的,所述监控等级包括:
9、一般、适度、严密。
10、可选的,所述健康状态包括以下任一项:
11、当前运行状态、服务连接状态、发布到主线程循环处理程序。
12、可选的,所述健康状态的检测结果包括:正常和异常,所述异常包括预定义的错误类型。
13、可选的,所述管理策略包括:对所述客户端应用程序的进程进行终止。
14、可选的,所述管理策略包括:对所述客户端应用程序的线程进行运动环境保存并传入下次创建的线程。
15、可选的,所述管理策略包括:将所述客户端应用程序的异常进程和/或线程状态dump文件保存到指定存储路径。
16、可选的,所述管理策略包括:将所述客户端应用程序的异常进程和/或线程状态dump文件上传至云端服务器。
17、根据本申请的具体实施方式,第二方面,本申请提供一种应用程序的健康管理装置,包括:
18、注册模块,用于客户端应用程序通过注册为看门狗程序的客户端,将第一参数和第二参数传入看门狗程序的服务端,其中,所述第一参数包括监控等级,所述第二参数包括所述客户端应用程序的关联线程标识符,
19、其中,所述客户端应用程序集成有看门狗程序客户端接口,并且所述客户端应用程序和所述看门狗程序的服务端通过所述看门狗程序客户端接口进行通信;
20、线程管理模块,用于所述看门狗程序的服务端根据所述关联线程标识符形成有向无环图;
21、健康检测模块,用于根据所述有向无环图和所述第一参数,对所述客户端应用程序的线程的健康状态进行检测;
22、健康管理模块,用于根据对所述客户端应用程序的线程的健康状态的检测结果,通过预置的对应管理策略进行对应的操作。
23、可选的,所述监控等级包括:
24、一般、适度、严密。
25、可选的,所述健康状态包括以下任一项:
26、当前运行状态、服务连接状态、发布到主线程循环处理程序。
27、可选的,所述健康状态的检测结果包括:正常和异常,所述异常包括预定义的错误类型。
28、可选的,所述管理策略包括:对所述客户端应用程序的进程进行终止。
29、可选的,所述管理策略包括:对所述客户端应用程序的线程进行运动环境保存并传入下次创建的线程。
30、可选的,所述管理策略包括:将所述客户端应用程序的异常进程和/或线程状态dump文件保存到指定存储路径。
31、可选的,所述管理策略包括:将所述客户端应用程序的异常进程和/或线程状态dump文件上传至云端服务器。
32、本申请实施例的上述方案与现有技术相比,至少具有以下有益效果:
33、1、在系统进程的维度,对应用程序进行健康检测和管理,尤其是针对系统内部比较核心的应用程序进行有效的健康检测,并及时的重启异常的应用程序进程,保证车机服务稳定。
34、2、在线程的维度,对应用程序进行健康检测和管理。在进程内部会有较为重要的子线程处理核心任务,本申请方案能保证线程执行过程中的健康监控,并在线程异常时对其进行重启。
35、3、在重启线程过程中,需保留之前线程执行状态,为重启的线程准备后续执行的环境。保证线程重启之后,能继续执行后续的工作流程。
36、4、在检测线程和进程的健康的同时,保证在应用程序出现异常时,及时保存现场,并上传云端,让研发可及时的定位到现场的问题原因。
本文档来自技高网...【技术保护点】
1.一种应用程序的健康管理方法,其特征在于,包括:
2.根据权利要求1所述的健康管理方法,其特征在于,所述监控等级包括:
3.根据权利要求1所述的健康管理方法,其特征在于,所述健康状态包括以下任一项:
4.根据权利要求1所述的健康管理方法,其特征在于,所述健康状态的检测结果包括:正常和异常,所述异常包括预定义的错误类型。
5.根据权利要求4所述的健康管理方法,其特征在于,所述管理策略包括:对所述客户端应用程序的进程进行终止。
6.根据权利要求4所述的健康管理方法,其特征在于,所述管理策略包括:对所述客户端应用程序的线程进行运动环境保存并传入下次创建的线程。
7.根据权利要求4所述的健康管理方法,其特征在于,所述管理策略包括:将所述客户端应用程序的异常进程和/或线程状态dump文件保存到指定存储路径。
8.根据权利要求4所述的健康管理方法,其特征在于,所述管理策略包括:将所述客户端应用程序的异常进程和/或线程状态dump文件上传至云端服务器。
9.一种应用程序的健康管理装置,其特征在于,
10.根据权利要求9所述的健康管理装置,其特征在于,所述监控等级包括:
...【技术特征摘要】
1.一种应用程序的健康管理方法,其特征在于,包括:
2.根据权利要求1所述的健康管理方法,其特征在于,所述监控等级包括:
3.根据权利要求1所述的健康管理方法,其特征在于,所述健康状态包括以下任一项:
4.根据权利要求1所述的健康管理方法,其特征在于,所述健康状态的检测结果包括:正常和异常,所述异常包括预定义的错误类型。
5.根据权利要求4所述的健康管理方法,其特征在于,所述管理策略包括:对所述客户端应用程序的进程进行终止。
6.根据权利要求4所述的健康管理方法,其特征在于,所...
【专利技术属性】
技术研发人员:唐敏,
申请(专利权)人:中国第一汽车股份有限公司,
类型:发明
国别省市:
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。