安卓产品安装包的动态修复方法、终端、介质以及系统技术方案

技术编号:19634717 阅读:31 留言:0更新日期:2018-12-01 15:30
本发明专利技术实施例公开了一种安卓产品安装包的动态修复方法、终端、介质以及系统,方法包括在安卓产品安装包打包过程中,新增动态修复逻辑;在动态修复逻辑下,生成补丁包,所述补丁包仅包括修改后的类数据;将补丁包发送至客户端,以使客户端通过安卓的类加载机制加载所述补丁包,完成安卓产品安装包的动态修复。实施本发明专利技术实施例,客户端更新时,仅需下载和加载该补丁包,不需要经过渠道审核,节省了大量时间,在用户无感知的情况下解决了修复问题,提升了用户体验,且客户端仅需下载补丁包,无需全量下载,为用户节省了流量。

Dynamic Repair Method, Terminal, Media and System of Android Product Installation Package

The embodiment of the present invention discloses a dynamic repair method, terminal, medium and system of an Android product installation package, which includes adding a dynamic repair logic during the packaging process of the Android product installation package, generating a patch package under the dynamic repair logic, the patch package only includes modified class data, and Issuing the patch package. Send it to the client so that the client can load the patch package through Android's class loading mechanism and complete the dynamic repair of Android product installation package. Implementing the embodiment of the present invention, when the client updates, it only needs to download and load the patch package, does not need channel auditing, saves a lot of time, solves the repair problem without the user's perception, improves the user experience, and the client only needs to download the patch package, does not need to download in full, thus saving the traffic for the user.

【技术实现步骤摘要】
安卓产品安装包的动态修复方法、终端、介质以及系统
本专利技术计算机
,具体涉及一种安卓产品安装包的动态修复方法、终端、介质以及系统。
技术介绍
目前,安卓线上产品遇到产品功能修改需要更新时,必须经过重新打包、上传渠道、渠道审核以及提示用户更新的过程。这种更新过程存在以下问题:(1)渠道审核所需时间较长,当遇到一个产品的紧急bug时,不能及时修复会给用户造成非常不好的体验,从而导致用户流失;(2)需要全量下载安装包,浪费了用户流量。
技术实现思路
本专利技术实施例的目的在于提供一种安卓产品安装包的动态修复方法、终端、介质以及系统,以使得动态修复过程不需要渠道审核,提升用户体验,并节省用户流量。为实现上述目的,第一方面,本专利技术实施例提供了一种安卓产品安装包的动态修复方法,包括:在安卓产品安装包打包过程中,新增动态修复逻辑;在所述动态修复逻辑下,生成补丁包,所述补丁包仅包括修改后的类数据;将所述补丁包发送至客户端,以使所述客户端通过安卓的类加载机制加载所述补丁包,完成安卓产品安装包的动态修复。作为本申请一种优选的实施方式,所述安卓产品安装包包括多个类,在安卓产品安装包打包过程中,新增动态修复逻辑具体包括:在安卓产品安装包打包过程中,动态地在每个类中插入一个静态变量。作为本申请一种优选的实施方式,在所述动态修复逻辑下,生成补丁包具体包括:在所述动态修复逻辑下,获取修改前的类数据和修改后的类数据;比对修改前的类数据和修改后的类数据;若修改前的类数据和修改后的类数据存在差异,则生成所述补丁包。第二方面,本专利技术实施例提供了一种安卓产品安装包的动态修复终端,包括:新增模块,用于在安卓产品安装包打包过程中,新增动态修复逻辑;生成模块,用于在所述动态修复逻辑下,生成补丁包,所述补丁包仅包括修改后的类数据;发送模块,用于将所述补丁包发送至客户端,以使所述客户端通过安卓的类加载机制加载所述补丁包,完成安卓产品安装包的动态修复。作为本申请一种优选的实施方式,所述安卓产品安装包包括多个类,所述新增模块具体用于:在安卓产品安装包打包过程中,动态地在每个类中插入一个静态变量。作为本申请一种优选的实施方式,所述生成模块具体用于:在所述动态修复逻辑下,获取修改前的类数据和修改后的类数据;比对修改前的类数据和修改后的类数据;若修改前的类数据和修改后的类数据存在差异,则生成所述补丁包。第三方面,本专利技术实施例提供了一种安卓产品安装包的动态修复终端,包括处理器、输入设备、输出设备和存储器,所述处理器、输入设备、输出设备和存储器相互连接,其中,所述存储器用于存储计算机程序,所述计算机程序包括程序指令,所述处理器被配置用于调用所述程序指令,执行上述第一方面的动态修复方法。第四方面,本专利技术实施例提供了一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,所述计算机程序包括程序指令,所述程序指令当被处理器执行时使所述处理器执行上述第一方面的动态修复方法。第五方面,本专利技术实施例提供了一种安卓产品安装包的动态修复系统,包括客户端和动态修复终端,其中,动态修复终端如上述第二方面所述。实施本专利技术实施例,在安卓产品安装包的打包过程中,新增动态修复逻辑,在该动态修复逻辑下,生成仅包括修改后的类数据的补丁包,客户端更新时,仅需下载和加载该补丁包,不需要经过渠道审核,节省了大量时间,在用户无感知的情况下解决了修复问题,提升了用户体验,且客户端仅需下载补丁包,无需全量下载,为用户节省了流量。附图说明为了更清楚地说明本专利技术具体实施方式或现有技术中的技术方案,下面将对具体实施方式或现有技术描述中所需要使用的附图作简单地介绍。在所有附图中,类似的元件或部分一般由类似的附图标记标识。附图中,各元件或部分并不一定按照实际的比例绘制。图1是本专利技术第一实施例提供的安卓产品安装包的动态修复方法的示意流程图;图2是本专利技术第一实施例提供的安卓产品安装包的动态修复系统的结构示意图;图3是图2所示动态修复终端的一种结构示意图;图4是图2所述动态修复终端的另一种结构示意图。具体实施方式下面将结合本专利技术实施例中的附图,对本专利技术实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本专利技术一部分实施例,而不是全部的实施例。基于本专利技术中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本专利技术保护的范围。应当理解,当在本说明书和所附权利要求书中使用时,术语“包括”和“包含”指示所描述特征、整体、步骤、操作、元素和/或组件的存在,但并不排除一个或多个其它特征、整体、步骤、操作、元素、组件和/或其集合的存在或添加。还应当理解,在此本专利技术说明书中所使用的术语仅仅是出于描述特定实施例的目的而并不意在限制本专利技术。如在本专利技术说明书和所附权利要求书中所使用的那样,除非上下文清楚地指明其它情况,否则单数形式的“一”、“一个”及“该”意在包括复数形式。还应当进一步理解,在本专利技术说明书和所附权利要求书中使用的术语“和/或”是指相关联列出的项中的一个或多个的任何组合以及所有可能组合,并且包括这些组合。如在本说明书和所附权利要求书中所使用的那样,术语“如果”可以依据上下文被解释为“当...时”或“一旦”或“响应于确定”或“响应于检测到”。类似地,短语“如果确定”或“如果检测到[所描述条件或事件]”可以依据上下文被解释为意指“一旦确定”或“响应于确定”或“一旦检测到[所描述条件或事件]”或“响应于检测到[所描述条件或事件]”。需要说明的是,本专利技术实施例是基于Android的编译打包原理以及Android的类加载机制完成的。请参考图1,是本专利技术第一实施例所提供的安卓产品安装包的动态修复方法的流程示意图,如图所示,该方法可以包括如下步骤:S101,在安卓产品安装包打包过程中,新增动态修复逻辑。具体地,在安卓产品安装包的打包过程中,干预该打包过程,动态地在每一类中插入一个静态变量(static)。即,在安卓产品安装包打包过程中新增动态修复逻辑。需要说明的是,在打包过程中新增动态修复逻辑,相当于通过gradle插件和Android提供的apt的api拦截类(class)生成dex文件的过程。S102,在动态修复逻辑下,获取修改前的类数据和修改后的类数据。具体地,每个安卓产品安装包都包括多个类。在动态修复逻辑下,可获取修改前的类数据和修改后的类数据。S103,比对修改前的类数据和修改后的类数据。S104,若修改前的类数据和修改后的类数据存在差异,则生成补丁包。具体地,若修改前的类数据包括语句1和语句2,修改后的类数据包括语句1、语句2以及语句3,比对修改前的类数据和修改后的类数据,发现修改后的类数据多了语句3,则认为修改前的类数据和修改后的类数据存在差异,并生成只包括修改后的类数据的补丁包(patch包)。作为本实施例的另一种情况,若修改前的类数据包括语句1和语句2,修改后的类数据包括语句1以及语句2,但修改前的类数据中的语句1内容为A,而修改后的类数据中的语句1的内容为B,则比对发现两者存在差异。S105,将补丁包发送至客户端,以使客户端通过安卓的类加载机制加载补丁包,完成安卓产品安装包的动态修复。具体地,将上述补丁包发送至客户端,当客户端发现有补丁包时,会通过安卓的类加载机制加本文档来自技高网...

【技术保护点】
1.一种安卓产品安装包的动态修复方法,其特征在于,包括:在安卓产品安装包打包过程中,新增动态修复逻辑;在所述动态修复逻辑下,生成补丁包,所述补丁包仅包括修改后的类数据;将所述补丁包发送至客户端,以使所述客户端通过安卓的类加载机制加载所述补丁包,完成安卓产品安装包的动态修复。

【技术特征摘要】
1.一种安卓产品安装包的动态修复方法,其特征在于,包括:在安卓产品安装包打包过程中,新增动态修复逻辑;在所述动态修复逻辑下,生成补丁包,所述补丁包仅包括修改后的类数据;将所述补丁包发送至客户端,以使所述客户端通过安卓的类加载机制加载所述补丁包,完成安卓产品安装包的动态修复。2.如权利要求1所述的安卓产品安装包的动态修复方法,其特征在于,所述安卓产品安装包包括多个类,在安卓产品安装包打包过程中,新增动态修复逻辑具体包括:在安卓产品安装包打包过程中,动态地在每个类中插入一个静态变量。3.如权利要求2所述的安卓产品安装包的动态修复方法,其特征在于,在所述动态修复逻辑下,生成补丁包具体包括:在所述动态修复逻辑下,获取修改前的类数据和修改后的类数据;比对修改前的类数据和修改后的类数据;若修改前的类数据和修改后的类数据存在差异,则生成所述补丁包。4.一种安卓产品安装包的动态修复终端,其特征在于,包括:新增模块,用于在安卓产品安装包打包过程中,新增动态修复逻辑;生成模块,用于在所述动态修复逻辑下,生成补丁包,所述补丁包仅包括修改后的类数据;发送模块,用于将所述补丁包发送至客户端,以使所述客户端通过安卓的类加载机制加载所述补丁包,完成安卓...

【专利技术属性】
技术研发人员:张震牛充
申请(专利权)人:玩咖欢聚文化传媒北京有限公司
类型:发明
国别省市:北京,11

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1