应用程序的热修复方法、装置及终端、存储介质制造方法及图纸

技术编号:22501784 阅读:60 留言:0更新日期:2019-11-09 02:28
本发明专利技术公开一种应用程序的热修复方法、装置及终端、计算机可读存储介质,该方法包括步骤:加载应用程序的功能模块的热修复文件,并将类加载器注入所述应用程序的功能模块;根据应用程序的功能模块的热修复文件以及类加载器,对应用程序的功能模块的功能组件进行解析和加载;对解析和加载后的所述应用程序的功能模块的功能组件进行管理。本发明专利技术通过热修复文件更新应用程序的功能模块,并通过注入技术动态加载实现了应用的热更新;既节省了用户流量,又省去了安装的麻烦;降低用户成本,提升用户体验。

Hot fix method, device, terminal and storage medium of application program

The invention discloses a hot repair method, device and terminal of an application program, and a computer-readable storage medium. The method comprises the following steps: loading a hot repair file of a functional module of an application program, and injecting a classloader into the functional module of the application program; according to the hot repair file of the functional module of the application program and the classloader, the function of the functional module of the application program It can analyze and load the components, and manage the functional components of the functional modules of the application program after the analysis and load. The invention updates the function module of the application program through the hot repair file, realizes the hot update of the application through the dynamic loading of the injection technology, saves the user flow and the trouble of installation, reduces the user cost and improves the user experience.

【技术实现步骤摘要】
应用程序的热修复方法、装置及终端、存储介质
本专利技术涉及通信
,尤其涉及一种应用程序的热修复方法、装置及终端、计算机可读存储介质。
技术介绍
随着移动通信技术的不断发展,越来越多的App(Application,应用程序)出现在移动终端中,移动终端用户经常使用移动终端上的App来满足日常生活的需求,使移动终端用户的生活及工作变得更加便利和舒适。移动终端中的App由于新功能发布、故障修改以及视效提升等原因,频繁的需要进行升级,而App的每次升级都需要下载新版本并且覆盖安装。因此,App的升级过程非常繁琐,耗费流量且浪费时间。如果用户移动终端中的App较多,那么App的升级将耗费大量的流量,增加用户的成本,降低用户体验。
技术实现思路
有鉴于此,本专利技术实施例的目的在于提供一种应用程序的热修复方法、装置及终端、计算机可读存储介质,以解决现有移动终端中应用程序的热修复问题。本专利技术实施例解决上述技术问题所采用的技术方案如下:根据本专利技术实施例的一个方面,提供的一种应用程序的热修复方法,所述方法包括步骤:加载应用程序的功能模块的热修复文件,并将类加载器注入所述应用程序的功能模块;根据所述应用程序的功能模块的热修复文件以及所述类加载器,对所述应用程序的功能模块的功能组件进行解析和加载;对解析和加载后的所述应用程序的功能模块的功能组件进行管理,以实现对所述应用程序的功能模块的热修复。根据本专利技术实施例的另一个方面,提供的一种应用程序的热修复装置,所述装置包括钩子模块、解析加载模块以及管理模块;所述钩子模块,用于加载应用程序的功能模块的热修复文件,并将类加载器注入所述应用程序的功能模块;所述解析加载模块,用于根据所述应用程序的功能模块的热修复文件以及所述类加载器,对所述应用程序的功能模块的功能组件进行解析和加载;所述管理模块,用于对解析和加载后的所述应用程序的功能模块的功能组件进行管理,以实现对所述应用程序的功能模块的热修复。根据本专利技术实施例的另一个方面,提供的一种终端,所述终端包括:存储器、处理器及存储在所述存储器上并可在所述处理器上运行的应用程序的热修复程序,所述应用程序的热修复程序被所述处理器执行时实现上述的应用程序的热修复方法的步骤。根据本专利技术实施例的另一个方面,提供的一种计算机可读存储介质,所述计算机可读存储介质上存储有应用程序的热修复程序,所述应用程序的热修复程序被处理器执行时实现上述的应用程序的热修复方法的步骤。本专利技术实施例的应用程序的热修复方法、装置及终端、计算机可读存储介质,通过热修复文件更新应用程序的功能模块,并通过注入技术动态加载实现了应用的热更新;既节省了用户流量,又省去了安装的麻烦;降低用户成本,提升用户体验。附图说明图1为本专利技术第一实施例的应用程序的热修复方法流程示意图;图2为本专利技术第二实施例的应用程序的热修复装置结构示意图;图3为本专利技术第二实施例的应用程序的热修复装置另一结构示意图;图4为本专利技术第二实施例的应用程序的热修复装置中更新模块结构示意图;图5为本专利技术第三实施例的终端结构示意图;图6为本专利技术实施例的应用程序架构结构示意图;图7为本专利技术实施例的应用程序运行时结构示意图;图8为本专利技术实施例的音乐应用程序结构示意图。本专利技术目的的实现、功能特点及优点将结合实施例,参照附图做进一步说明。具体实施方式为了使本专利技术所要解决的技术问题、技术方案及有益效果更加清楚、明白,以下结合附图和实施例,对本专利技术进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本专利技术,并不用于限定本专利技术。第一实施例如图1所示,本专利技术第一实施例提供一种应用程序的热修复方法,所述方法包括:步骤S11:加载应用程序的功能模块的热修复文件,并将类加载器注入所述应用程序的功能模块。在一实施例中,注入(inject)技术是指Java中可以利用反射技术,根据搜索规则取得对应对象和方法,然后利用反射技术注入。在本实施例中,将应用程序的各个部分功能分别进行组件化或者模块化,并且各个独立化的功能模块要符合正交化原则。所谓正交化原则是指各个功能模块之间是独立的、互不依赖的,这样能够保证某个功能模块的故障修复和更新不受其他功能模块的波及和影响。在本实施例中,可根据所述应用程序的上下文环境获取所述类加载器,然后加载应用程序的功能模块的热修复文件,并将所述类加载器注入所述功能模块,即所述功能模块被加载后经过初始化时通过反射方式获得所述应用程序的类加载器。在一种实施方式中,所述加载应用程序的功能模块的热修复文件,并通过反射方式获得所述应用程序的类加载器之前还包括步骤:获取所述应用程序的功能模块的热修复文件。在该实施方式中,所述功能模块的热修复文件可以以APK(AndroidPackage,安卓安装包)或者是JAR(JavaArchive,Java归档文件)包的方式存在。假设对应用程序的某个功能模块做了故障修改或者是新的实现功能发布,可以将该功能模块打包成单独的APK或者是JAR包发布。在该实施方式中,所述获取所述应用程序的功能模块的热修复文件包括步骤:在服务器中检测是否有更新的所述应用程序的功能模块的热修复文件;若在所述服务器中检测到有更新的所述应用程序的功能模块的热修复文件,则从所述服务器中下载所述应用程序的功能模块的热修复文件。步骤S12:根据所述应用程序的功能模块的热修复文件以及所述类加载器,对所述应用程序的功能模块的功能组件进行解析和加载。在本实施例中,所述功能模块的功能组件包括活动类、服务类、内容提供者、广播接收器、系统服务类中的至少一种。步骤S13:对解析和加载后的所述应用程序的功能模块的功能组件进行管理,以实现对所述应用程序的功能模块的热修复。在一实施方式中,步骤S13中的对功能组件进行管理,包括但不限于:对服务的注册、启动、调用、注销等操作。在一实施方式中,所述热修复(Hotfix)也可以称为打补丁,指能够修复软件漏洞的一些代码,是一种快速、低成本修复产品软件版本缺陷的方式。为了更好地阐述本实施例,以下结合图6和图7对应用程序的热修复过程进行阐述。如图6所示,为本专利技术实施例的应用程序架构结构示意图,本专利技术实施例的应用程序架构在原有架构的基础上,增加了功能模块1S03-功能模块nS03、Hook模块S04、解析与加载模块S05、ActivityS06、BroadcastS07、ProviderS08、ServiceS09、AudioS10、MMSS11、NotificationS12、TelephonyS13。功能模块1-功能模块n之间是独立的、互不依赖的,支持独立发布和更新。Hook模块S04是应用程序架构的核心。应用程序的热更新流程为:首先通过HTTP(HyperTextTransferProtocol,超文本传输协议)请求下载需要更新的业务组件,然后再将业务组件存放在系统原有APK的存储路径,之后通过Hook模块S04进行动态处理,再通过解析与加载模块S05对更新的APK组件进行动态解析和加载,加载完成后进入APP运行时流程。ActivityS06、BroadcastS07、ProviderS08以及ServiceS09分别用于对Android系统的四大组件Activity(活动)、Service(服务)、Bro本文档来自技高网...

【技术保护点】
1.一种应用程序的热修复方法,其特征在于,所述方法包括步骤:加载应用程序的功能模块的热修复文件,并将类加载器注入所述应用程序的功能模块;根据所述应用程序的功能模块的热修复文件以及所述类加载器,对所述应用程序的功能模块的功能组件进行解析和加载;对解析和加载后的所述应用程序的功能模块的功能组件进行管理,以实现对所述应用程序的功能模块的热修复。

【技术特征摘要】
1.一种应用程序的热修复方法,其特征在于,所述方法包括步骤:加载应用程序的功能模块的热修复文件,并将类加载器注入所述应用程序的功能模块;根据所述应用程序的功能模块的热修复文件以及所述类加载器,对所述应用程序的功能模块的功能组件进行解析和加载;对解析和加载后的所述应用程序的功能模块的功能组件进行管理,以实现对所述应用程序的功能模块的热修复。2.根据权利要求1所述的方法,其特征在于,所述加载应用程序的功能模块的热修复文件,并将类加载器注入所述应用程序功能模块之前还包括步骤:获取所述应用程序的功能模块的热修复文件。3.根据权利要求2所述的方法,其特征在于,所述获取所述应用程序的功能模块的热修复文件包括步骤:在服务器中检测是否有更新的所述应用程序的功能模块的热修复文件;若在所述服务器中检测到有更新的所述应用程序的功能模块的热修复文件,则从所述服务器中下载所述应用程序的功能模块的热修复文件。4.根据权利要求1所述的方法,其特征在于,所述功能模块的功能组件包括活动类、服务类、内容提供者、广播接收器、系统服务类中的至少一种。5.一种应用程序的热修复装置,其特征在于,所述装置包括钩子模块、解析加载模块以及管理模块;所述钩子模块,用于加载应用程序的功能模块的热修复文件,并将类加载器注入所述应用程序的功能模块;所述解析加载模块,用于根据所述应用程序的功能模块的热修...

【专利技术属性】
技术研发人员:李焰峰张建
申请(专利权)人:中兴通讯股份有限公司
类型:发明
国别省市:广东,44

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

1