摘要
本文提出了一种移动应用线上问题远程诊断与热修复方法。诊断功能包括,通过长连接远程下发指令至移动客户端,并设置触发条件,若发现线上问题,采集以下信息:设备和用户基本信息、堆栈信息、网络请求接口的流水信息、内存中的变量值。其中触发条件为一段返回布尔值的代码字符串,移动客户端接收到指令后通过轻量级的解释器将字符串解析成可执行的代码,并嵌入客户端附着执行。代码执行后若条件满足,即发生了指定的问题,采集上述调试信息以供诊断使用。热修复功能包括,当诊断到问题所在后,下发字符串代码至指定的方法或函数,并通过解释器解析成可执行的代码后整体或部分替代原方法或函数,替代的过程通过AOP实现。该方法通过下发预置触发条件的指令并结合解释器实现了一套完整的远程诊断和修复功能,提高了问题诊断以及修复的效率,且该方法能够顺利通过各移动平台严格的审核。
-
单位江苏农林职业技术学院; 北京大学; 南京交通职业技术学院