[发明专利]一种基于模板代码匹配的轻量级热修复方法在审
申请号: | 202011469614.6 | 申请日: | 2020-12-15 |
公开(公告)号: | CN112579094A | 公开(公告)日: | 2021-03-30 |
发明(设计)人: | 金小俊;蒋杰;赵化;李卫丽 | 申请(专利权)人: | 上海赛可出行科技服务有限公司 |
主分类号: | G06F8/41 | 分类号: | G06F8/41;G06F8/71;G06F9/445 |
代理公司: | 暂无信息 | 代理人: | 暂无信息 |
地址: | 200131 上海市浦东新区自由贸*** | 国省代码: | 上海;31 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 基于 模板 代码 匹配 轻量级 修复 方法 | ||
本发明公开了一种基于模板代码匹配的轻量级热修复方法,功能包括,服务端远程下发热修复指令到移动客户端,移动客户端接收到热修复指令后通过模板代码库将指令匹配成执行代码嵌入客户端附着执行,嵌入的过程通过AOP(Aspect Oriented Programming,面向切面编程)来实现。该方法可提供多种灵活的动态修复方式,包括:在指定函数或方法执行前或执行后动态嵌入热修复代码;整体替换指定函数或方法的实现;动态新增类的成员变量或属性;动态新增类的函数或方法;指定热修复代码和逻辑的执行线程。本发明符合移动平台的热修复规则并能够顺利通过严格的应用上架审核。
技术领域
本发明涉及移动应用热修复领域,特别涉及一种基于模板代码匹配的轻量级热修复方法。
背景技术
现有的移动应用功能愈趋丰富,在测试阶段难以完全覆盖所有用户使用场景,应用上架后线上问题时有发生。尤其是在iOS平台上,由于苹果的审核机制,在出现线上问题时只能依赖发版,需要较长的周期来完成修复,从而导致线上问题快速扩散。
现有技术中,虽也有热修复功能的开源技术,比如iOS平台的JSPatch,但是其不符合iOS(iOS是由苹果公司开发的移动操作系统)应用的热修复规则,限制了热修复功能在iOS应用中的使用。因此需要一种能通过系统平台审核并符合iOS和Android热修复规则的方案。
另外一方面,业内现有的热修复方案大都是代码或逻辑全量替换,修复方式单一。因此,亦需要一种灵活且支持多种技术手段的轻量级热修复方案。
发明内容
本发明要解决的技术问题是克服现有技术的缺陷,提供一种基于模板代码匹配的轻量级热修复方法。
为了解决上述技术问题,本发明提供了如下的技术方案:
本发明一种基于模板代码匹配的轻量级热修复方法,通过后台MIS系统下发热修复指令,指令的格式为JSON文本,其内容包括:
a1、当前热修复指令所针对的客户端版本号;
a2、当前热修复指令的ID;
a3、当前热修复指令所针对的客户端的bundleId;
a4、当前热修复指令所嵌入的代码块的类名;
a5、当前热修复指令所嵌入的代码块的方法或函数;
a6、当前热修复指令嵌入方法或函数中的执行时机;
a7、当前热修复指令需要执行的修复内容;
进一步地,移动客户端接收到热修复指令后,其执行步骤为:
S1.判断热修复指令所针对的客户端bundleId和版本号,只有在这两个都匹配上的情况下才会执行热修复指令;
S2.获取热修复指令代码所需嵌入的类和方法名,并使用AOP的方式Hook住该类中的方法,当该方法执行时附着执行热修复代码;
S3.将指令中的热修复内容在客户端进行模板代码匹配,生成可执行代码后运行;
S4.热修复指令的撤销:
当发现某次下发的热修复指令有问题时,还可以通过下发一个撤销热修复的指令来删除之前下发的热修复指令;
撤销热修复的指令内容为所需撤销的热修复指令的ID,数组格式,可一次性撤销多个热修复指令。
与现有技术相比,本发明的有益效果如下:
1.基于模板代码匹配的思路实现线上问题的热修复,符合移动平台的规则并能通过应用审核;
2.可提供多种灵活的动态修复方式。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于上海赛可出行科技服务有限公司,未经上海赛可出行科技服务有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/202011469614.6/2.html,转载请声明来源钻瓜专利网。