一种安卓应用的热修复方法、装置、服务器和系统制造方法及图纸

技术编号:13989724 阅读:46 留言:0更新日期:2016-11-13 15:26
本发明专利技术公开了一种安卓应用的热修复方法、装置、服务器和系统。该方法包括:获取指定安卓应用的补丁包,所述补丁包中包括指定安卓应用中的修复后的指定的类文件;当指定安卓应用启动时,加载所述补丁包;当指定安卓应用需要调用指定的类文件时,从所述补丁包中调用修复后的指定的类文件以执行相应功能。可知,本方案与现有技术相比,该修复过程无需经历发布方重新打包指定安卓应用、测试、向各个应用市场和渠道换包、提示用户升级、提示用户下载、利用新安装包覆盖安装指定安卓应用等一系列步骤,在不改动原安卓应用的基础上,利用一个补丁包即可实现安卓应用的热修复,极大地降低了安卓应用的修复成本。

【技术实现步骤摘要】

本专利技术涉及互联网
,具体涉及一种安卓应用的热修复方法、装置、服务器和系统
技术介绍
现有技术中,当一个安卓应用在发布之后,突然发现该安卓应用中出现严重问题需要进行紧急修复,这时候开发方就会忙得焦头烂额:需要对该安卓应用进行修复,将修复后的安卓应用整体打包成安卓应用安装包,对安卓应用安装包进行测试,测试通过后向各个应用市场和渠道换包,提示用户升级,提示用户下载修复后的安卓应用安装包,对该修复后的安卓应用安装包进行安装以覆盖修复前的安卓应用;有时候仅仅是为了修改一行代码,也要付出巨大的成本进行换包和重新发布;而对于用户来说,一款安卓应用的反复升级、重新下载安装的过程也将大大降低用户的使用体验。
技术实现思路
鉴于上述问题,提出了本专利技术以便提供一种克服上述问题或者至少部分地解决上述问题的安卓应用的热修复方法、装置、服务器和系统。依据本专利技术的一个方面,提供了一种安卓应用的热修复方法,该方法包括:获取指定安卓应用的补丁包,所述补丁包中包括:指定安卓应用中的修复后的指定的类文件;当指定安卓应用启动时,加载所述补丁包;当指定安卓应用需要调用指定的类文件时,从所述补丁包中调用修复后的指定的类文件以执行相应功能。可选地,加载所述补丁包包括:根据所述补丁包所在的文件目录,构造类加载器,通过该类加载器加载所述补丁包。可选地,所述加载所述补丁包还包括:获取对所述补丁包进行加载的过程对应的第一加载集合,所述补丁包为该第一加载集合中的唯一元素;获取对指定安卓应用中的各执行文件进行加载的过程对应的第二加载集合,指定安卓应用中的各执行文件为该第二加载集合中的元素;将第一加载集合和第二加载集合合并为一个加载集合,使得所述补丁包作为该加载集合中的第一个元素。可选地,所述当指定安卓应用需要调用指定的类文件时,从所述补丁包中调用修复后的指定的类文件以执行相应功能包括:当指定安卓应用需要调用一个类文件时,按照所述加载集合的元素顺序,依次从每个元素中查找所需要调用的类文件;如果查找到需要调用的类文件,停止查找,直接调用该类文件执行相应功能;如果未查找到需要调用的类文件,跳转到下一个元素查找需要调用的类文件,直至查找到为止。可选地,该方法进一步包括:在指定安卓应用启动之前,获取一个第三方执行文件,将该第三方执行文件放入指定安卓应用的指定文件目录中;在指定安卓应用的各执行文件中的各类文件中,注入指示该类文件对所述第三方执行文件进行引用的代码;在指定安卓应用启动时,先加载所述第三方文件,再加载指定安卓应用中的各执行文件。可选地,所述在指定安卓应用的各执行文件中的各类文件中,注入指示该类文件对所述第三方执行文件进行引用的代码包括:设置一个排除列表;获取指定安卓应用中的每个类文件,判断该类文件是否命中所述排除列表,如果否,在该类文件中注入指示该类文件对所述第三方执行文件进行引用的代码;如果是,不在该类文件中注入代码。可选地,所述排除列表中包括:指定安卓应用中的Application类文件的子类文件。可选地,所述补丁包中的修复后的指定的类文件不包括所述排除列表中的类文件。可选地,所述补丁包中的每个修复后的指定的类文件中包括:该修复后的指定的类文件的标识信息;则在从所述补丁包中调用修复后的指定的类文件执行相应功能之前,该方法进一步包括:判断该修复后的指定的类文件的标识信息与相应的指定的类文件的标识信息是否相同,是则调用该修复后的指定的类文件,否则停止调用该修复后的指定的类文件。可选地,所述补丁包中的每个修复后的指定的类文件中包括:该修复后的指定的类文件关于安卓应用的描述信息;则在从所述补丁包中调用修复后的指定的类文件执行相应功能之前,该方法进一步包括:判断指定安卓应用是否符合该修复后的指定的类文件关于安卓应用的描述信息,是则调用该修复后的指定的类文件,否则停止调用该修复后的指定的类文件。可选地,所述补丁包是在服务器生成并下发到本地的。可选地,该方法进一步包括:如果指定安卓应用在启动后的预设时间内发生崩溃,卸载所述补丁包。依据本专利技术的另一个方面,提供了一种安卓应用的热修复方法,该方法包括:生成修复后的指定安卓应用,获取修复后的指定安卓应用中的各类文件;保留修复前的指定安卓应用,获取修复前的指定安卓应用中的各类文件;将修复后的指定安卓应用中的各类文件与修复前的指定安卓应用中的各类文件进行比较;对于每个类文件,如果该类文件的内容在修复前后发生变化,则该类文件为指定的类文件;将各经修复的指定的类文件放入补丁文件中,生成补丁包;将所述补丁包下发至客户端,由客户端加载所述补丁包以对指定安卓应用进行修复。可选地,如果修复前的指定安卓应用中的类文件进行了混淆,则该方法进一步包括:保留修复前的指定安卓应用中的类文件的混淆映射关系;所述将修复后的指定安卓应用中的各类文件与修复前的指定安卓应用中的各类文件进行比较包括:对于修复后的指定安卓应用中的每个类文件,根据所述混淆映射关系,确定对应的修复前的指定安卓应用中的类文件,比较类文件的内容在修复前后是否发生变化。可选地,如果修复前的指定安卓应用中的每个类文件的内容以MD5值表示,该方法进一步包括:计算修复后的指定安卓应用中的每个类文件的内容的MD5值;则所述将修复后的指定安卓应用中的各类文件与修复前的指定安卓应用中的各类文件进行比较包括:对于修复后的指定安卓应用中的每个类文件,将该类文件的MD5值与相应的修复前的指定安卓应用中的类文件的MD5值进行比较。依据本专利技术的又一个方面,提供了一种安卓应用的热修复装置,该装置包括:获取单元,适于获取指定安卓应用的补丁包,所述补丁包中包括:指定安卓应用中的修复后的指定的类文件;加载单元,适于当指定安卓应用启动时,加载所述补丁包;调用单元,适于当指定安卓应用需要调用指定的类文件时,从所述补丁包中调用修复后的指定的类文件以执行相应功能。可选地,所述加载单元,适于根据所述补丁包所在的文件目录,构造类加载器,通过该类加载器加载所述补丁包。可选地,所述加载单元,还适于获取对所述补丁包进行加载的过程对应的第一加载集合,所述补丁包为该第一加载集合中的唯一元素;获取对指定安卓应用中的各执行文件进行加载的过程对应的第二加载集合,指定安卓应用中的各执行文件为该第二加载集合中的元素;将第一加载集合和第二加载集合合并为一个加载集合,使得所述补丁包作为该加载集合中的第一个元素。可选地,所述调用单元,适于当指定安卓应用需要调用一个类文件时,按照所述加载集合的元素顺序,依次从每个元素中查找所需要调用的类文件;如果查找到需要调用的类文件,停止查找,直接调用该类文件执行相应功能;如果未查找到需要调用的类文件,跳转到下一个元素查找需要调用的类文件,直至查找到为止。可选地,该装置进一步包括:预处理单元;预处理单元,适于在指定安卓应用启动之前,获取一个第三方执行文件,将该第三方执行文件放入指定安卓应用的指定文件目录中;在指定安卓应用的各执行文件中的各类文件中,注入指示该类文件对所述第三方执行文件进行引用的代码;所述加载单元,进一步适于在指定安卓应用启动时,先加载所述第三方文件,再加载指定安卓应用中的各执行文件。可选地,所述预处理单元,适于设置一个排除列表;获取指定安卓应用中的每个类文件,判断该类文件是否命中所述排除本文档来自技高网...

【技术保护点】
一种安卓应用的热修复方法,其中,该方法包括:获取指定安卓应用的补丁包,所述补丁包中包括:指定安卓应用中的修复后的指定的类文件;当指定安卓应用启动时,加载所述补丁包;当指定安卓应用需要调用指定的类文件时,从所述补丁包中调用修复后的指定的类文件以执行相应功能。

【技术特征摘要】
1.一种安卓应用的热修复方法,其中,该方法包括:获取指定安卓应用的补丁包,所述补丁包中包括:指定安卓应用中的修复后的指定的类文件;当指定安卓应用启动时,加载所述补丁包;当指定安卓应用需要调用指定的类文件时,从所述补丁包中调用修复后的指定的类文件以执行相应功能。2.如权利要求1所述的方法,其中,加载所述补丁包包括:根据所述补丁包所在的文件目录,构造类加载器,通过该类加载器加载所述补丁包。3.如权利要求2所述的方法,其中,所述加载所述补丁包还包括:获取对所述补丁包进行加载的过程对应的第一加载集合,所述补丁包为该第一加载集合中的唯一元素;获取对指定安卓应用中的各执行文件进行加载的过程对应的第二加载集合,指定安卓应用中的各执行文件为该第二加载集合中的元素;将第一加载集合和第二加载集合合并为一个加载集合,使得所述补丁包作为该加载集合中的第一个元素。4.一种安卓应用的热修复方法,其中,该方法包括:生成修复后的指定安卓应用,获取修复后的指定安卓应用中的各类文件;保留修复前的指定安卓应用,获取修复前的指定安卓应用中的各类文件;将修复后的指定安卓应用中的各类文件与修复前的指定安卓应用中的各类文件进行比较;对于每个类文件,如果该类文件的内容在修复前后发生变化,则该类文件为指定的类文件;将各经修复的指定的类文件放入补丁文件中,生成补丁包;将所述补丁包下发至客户端,由客户端加载所述补丁包以对指定安卓应用进行修复。5.如权利要求4所述的方法,其中,如果修复前的指定安卓应用中的类文件进行了混淆,则该方法进一步包括:保留修复前的指定安卓应用中的类文件的混淆映射关系;所述将修复后的指定安卓应用中的各类文件与修复前的指定安卓应用中的各类文件进行比较包括:对于修复后的指定安卓应用中的每个类文件,根据所述混淆映射关...

【专利技术属性】
技术研发人员:刘刚王楠
申请(专利权)人:北京奇虎科技有限公司奇智软件北京有限公司
类型:发明
国别省市:北京;11

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

1