【技术实现步骤摘要】
一种移动应用远程诊断及热修复方法
本专利技术涉及诊断及热修复方法,特别涉及一种移动应用远程诊断及热修复方法。
技术介绍
移动应用随着用户量增加后会由于用户使用环境的复杂性和不可知性,出现一些难以在测试端重现的问题,这些问题通常会在特定用户群或者特定设备上出现,在交付测试阶段很难模拟出现问题的环境,而且用户在描述问题时只是简单的现象描述,因此排查问题时可用信息很少,造成问题诊断困难且周期长。即便侥幸查到问题所在,要修复问题还是需要依赖发版。现有技术中,虽也有热修复功能的开源技术,比如iOS平台的JSPatch,但是其不符合iOS(iOS是由苹果公司开发的移动操作系统)应用的热修复规则,限制了热修复功能在iOS应用中的使用。因此需要一种在问题出现时能抓取排查问题所需的环境和调试信息并符合iOS和Android移动平台应用热修复规则的诊断及热修复方法。
技术实现思路
本专利技术要解决的技术问题是克服现有技术的缺陷,提供一种移动应用远程诊断及热修复方法,通过下发指令至目标设备,抓取排查问题所需的环境和调试信息用于调查问题 ...
【技术保护点】
1.一种移动应用远程诊断及热修复方法,其特征在于,包括如下步骤:/nS1:MIS端通过长连接远程下发诊断指令到移动客户端,所述诊断指令中设定诊断指令的触发条件和诊断指令需采集的诊断信息;/nS2:移动客户端收到诊断指令后,解析诊断指令,通过解释器将诊断指令的触发条件解析成可执行的代码,并将代码嵌入移动客户端附着执行;/nS3:移动客户端执行代码后返回执行结果,若执行结果认定诊断指令触发,则同时返回步骤S1中设定采集的诊断信息到MIS端,完成诊断;/nS4:MIS端根据步骤S3中采集返回的诊断信息,确认问题点后,通过长连接远程下发热修复指令到移动客户端;/nS5:移动客户端收 ...
【技术特征摘要】
1.一种移动应用远程诊断及热修复方法,其特征在于,包括如下步骤:
S1:MIS端通过长连接远程下发诊断指令到移动客户端,所述诊断指令中设定诊断指令的触发条件和诊断指令需采集的诊断信息;
S2:移动客户端收到诊断指令后,解析诊断指令,通过解释器将诊断指令的触发条件解析成可执行的代码,并将代码嵌入移动客户端附着执行;
S3:移动客户端执行代码后返回执行结果,若执行结果认定诊断指令触发,则同时返回步骤S1中设定采集的诊断信息到MIS端,完成诊断;
S4:MIS端根据步骤S3中采集返回的诊断信息,确认问题点后,通过长连接远程下发热修复指令到移动客户端;
S5:移动客户端收到热修复指令后,解析热修复指令,通过解释器将需要执行的代码字符串解析成可执行的代码,并将代码嵌入移动客户端附着执行,完成热修复。
2.如权利要求1所述的移动应用远程诊断及热修复方法,其特征在于,所述诊断指令的内容包括:诊断指令针对的客户端版本号、诊断指令的ID、断指令针对的客户端的BundleID、诊断指令是单次生效还是持久生效、诊断指令嵌入的代码块的类名、诊断指令嵌入的代码块的方法或函数、诊断指令嵌入方法或函数中的执行时机、诊断指令的触发条件和诊断指令需采集的诊断信息;诊断指令需采集的诊断信息具体包括:程序执行中的变量值或方法/函数的返回值,采用数组格式,数组的元素为代码字符串;诊断调试信息,采用数组格式,数组的元素为调试信息的枚举值,调试信息的枚举值包括设备和用户基本信息、堆栈信息、用户网络请求接口的流水信息;网关名,采用数组格式,数组的元素为指定的网关接口名,设置后只采集指定的网关请求接口的流水。
3.如权利要求2所述的移动应用远程诊断及热修复方法,其特征在于,所述步骤S2具体包括:
S21:根据诊断指令针对的客户端BundleID和版本号,匹配需要进行诊断的移动客户端;
S22:匹配的移动客户端判断诊断指令是单次生效还是持久生效,若是持久生效,则将诊断指令保存到本地,在应用每次运行时执行诊断指令;若是单次生效,则在应用第一次运行时执行诊断指令;
S23:获取诊断指令的触发条件,触发条件为一段返回布尔值的字符串格式的表达式,触发条件通过解释器解析成可执行的表达式代码作为诊断条件代码;
S24:获取诊断指令嵌入的代码块的类名以及所嵌入该代码块的方法或函数,并通过AOP的方式Hook住该类中的方法或函数,将步骤S23中解析的诊断条件代码嵌入到该方法或者函数中,当该方法或函数执行时附着执行诊断条件代码;
S25:诊断指令条件代码嵌入的方法或函数执行时,根据诊断指令嵌入方法或函数中的执行时机执行诊断条件代码,若诊断条件代码的条件满足,则触发诊断指令并采集诊断信息。
4.如权利要求3所述的移动应用远程诊断及热修复方法,其特征在于,所述步骤S25中触发诊断指令后,采集的诊断信息包括:采集程序执行中的变量值,读取该变量值的变量名,并通过运行时runtime的方式获取该变量值;采集具...
【专利技术属性】
技术研发人员:金小俊,
申请(专利权)人:上海赛可出行科技服务有限公司,
类型:发明
国别省市:上海;31
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。