【技术实现步骤摘要】
APP热修复方法及其装置、可读存储介质和计算机设备
[0001]本申请涉及计算机
,具体而言,本申请涉及一种APP热修复方法、APP热修复装置、计算机可读存储介质和计算机设备。
技术介绍
[0002]在程序开发的过程中,无论是程序员编写的代码的原因,还是产品等其他职位对需求的变动等原因,都有可能导致上线的APP产生一些需要紧急修复的bug,在此情况下,传统的修复方式是修改APP中的bug,并将bug修改后的APP重新上传至应用市场,由用户下载更新。然而,这种方式存在多个缺点,例如重新发布APP版本的代价太大,且用户下载安装成本太高,再例如,bug修复不及时,导致用户体验较差等等。
[0003]为解决传统的修复方式存在的问题,热修复技术应运而生。所谓热修复,即为通过下发补丁包,让已安装APP的设备能够动态更新APP,用户无需重新下载安装该APP,就能够修复软件缺陷的一种技术。热修复技术具有多个优势,例如,可以快速打出补丁包修复bug以及时更新APP,又无需重新打包bug修改后的APP上传应用市场,再例如,用户浅感 ...
【技术保护点】
【技术特征摘要】
1.一种APP热修复方法,用于设备端,所述设备端与服务端通信,其特征在于,所述APP热修复方法包括:接收所述服务端发送的原始热修复脚本,所述原始热修复脚本通过在Xcode开发环境中利用Objective
‑
C语言开发获得;采用词法分析器对所述原始热修复脚本进行词法分析以获得标记序列;采用语法分析器对所述标记序列进行语法分析以获得语法树;对所述语法树进行语义检查以直接获得Objective
‑
C语言的目标热修复脚本;基于所述目标热修复脚本创建内置对象;执行所述目标热修复脚本;基于所述目标热修复脚本,利用runtime对所述APP进行热修复;运行热修复后的所述APP以完成所述APP的修复更新。2.根据权利要求1所述的APP热修复方法,其特征在于,所述原始热修复脚本为处于加密状态的文件,所述APP热修复方法在所述获取所述服务端发送的原始热修复脚本的步骤前,还包括:对所述原始热修复脚本进行解密以获得解密后的原始热修复脚本;所述采用词法分析器对所述原始热修复脚本进行词法分析以获得标记序列,包括:采用所述词法分析器对所述解密后的原始热修复脚本进行词法分析以获得所述标记序列。3.根据权利要求1或2所述的APP热修复方法,其特征在于,所述采用词法分析器对所述原始热修复脚本进行词法分析为基于Lex技术对所述原始热修复脚本进行词法分析;所述采用语法分析器对所述标记序列进行语法分析为基于YACC对所述标记序列进行语法分析;所述对所述语法树进行语义检查以直接获得Objective
‑
C语言的目标热修复脚本为通过Lex&YACC技术对所述语法树进行语义检查。4.根据权利要求1所述的APP热修复方法,其特征在于,所述基于所述目标热修复脚本,利用runtime对所述APP进行热修复,包括:利用libffi库动态创建C函数;在所述C函数中调用所述目标热修复脚本中的目标代码;利用所述C函数替换掉所述APP的原始代码中的待修复代码的IMP指针。5.一种APP热修复方法,用于开发端,所述开发端与服务端通信,其特征在于,所述APP热修复方法包括:将原始热修复脚本发送至所...
【专利技术属性】
技术研发人员:谌文,
申请(专利权)人:深圳依时货拉拉科技有限公司,
类型:发明
国别省市:
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。