CN115296999A - 移动端热修复方法、装置、热修复***及可读存储介质 - Google Patents
移动端热修复方法、装置、热修复***及可读存储介质 Download PDFInfo
- Publication number
- CN115296999A CN115296999A CN202211185949.4A CN202211185949A CN115296999A CN 115296999 A CN115296999 A CN 115296999A CN 202211185949 A CN202211185949 A CN 202211185949A CN 115296999 A CN115296999 A CN 115296999A
- Authority
- CN
- China
- Prior art keywords
- thermal
- file
- hot repair
- restoration
- data
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L41/00—Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
- H04L41/08—Configuration management of networks or network elements
- H04L41/0803—Configuration setting
- H04L41/0813—Configuration setting characterised by the conditions triggering a change of settings
- H04L41/082—Configuration setting characterised by the conditions triggering a change of settings the condition being updates or upgrades of network functionality
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/60—Software deployment
- G06F8/65—Updates
- G06F8/658—Incremental updates; Differential updates
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/70—Software maintenance or management
- G06F8/71—Version control; Configuration management
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/445—Program loading or initiating
- G06F9/44505—Configuring for program initiating, e.g. using registry, configuration files
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L41/00—Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
- H04L41/08—Configuration management of networks or network elements
- H04L41/0803—Configuration setting
- H04L41/0806—Configuration setting for initial configuration or provisioning, e.g. plug-and-play
- H04L41/0809—Plug-and-play configuration
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L63/00—Network architectures or network communication protocols for network security
- H04L63/12—Applying verification of the received information
- H04L63/123—Applying verification of the received information received data contents, e.g. message integrity
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/06—Protocols specially adapted for file transfer, e.g. file transfer protocol [FTP]
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- General Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Computer Hardware Design (AREA)
- Computing Systems (AREA)
- Stored Programmes (AREA)
Abstract
本申请提出了一种移动端热修复方法、装置、热修复***及可读存储介质。该方法包括:响应热修复请求,启动热修复引擎;获取热修复引擎所需的初始化数据;根据初始化数据发起补丁请求,获取补丁请求对应的热修复补丁数据;对热修复补丁数据进行本地版本管理,得到对应的本地管理数据信息;根据本地管理数据信息下载对应的热修复文件;对热修复文件进行脚本解析,得到对应的热修复脚本后,执行热修复脚本。本申请通过提供一站式可插拔的热修复服务,使得用户可以自定义热修复的相关组件服务,能够快速执行可插拔式的热修复任务,提高热修复的效率和灵活性,并且降低成本的同时提高数据安全性。
Description
技术领域
本申请涉及计算机技术领域,具体涉及一种移动端热修复方法、装置、热修复***及可读存储介质。
背景技术
如今,随着移动终端技术的飞速发展,出现了各种各样的移动端APP,应用于各个领域中。目前现有的移动端APP开发技术中,现有方案大多都是一种内置文件下发、文件管理、统计平台和热修解析执行器等各种服务的整套SDK(Software Development Kit,软件开发工具包)的方案。这种方式虽然集成简易,整套SDK源码闭源,用户可以无需关心内部实现问题;用户通过直接使用供应商提供的一整套服务,可以很友好地实现热修复线上APP出现的问题,并且热修文件解析执行器经过市场验证,具有一定的稳定性和可靠性。
但是,在对现有技术的研究与实践中,本申请的发明人发现,现有技术存在如下一些缺陷:例如,全部服务内置在整套SDK,导致缺乏一定的定制属性,无法实现用户的私有部署,也无法实现用户自研自定义部分组件服务;另外,针对iOS***的应用,使用热修技术的APP有被禁止上架苹果商店的风险,现有技术无法快速应对下架的风险,需要通过整套方案剔除,导致剔除成本高,且无法通过简单替换某个风险组件的方式重新快速上架带热修服务的APP。
前面的叙述在于提供一般的背景信息,并不一定构成现有技术。
发明内容
针对上述技术问题,本申请提供一种移动端热修复方法、装置、热修复***及可读存储介质,实现一站式的可插拔热修复,提高热修复的效率和灵活性。
为解决上述技术问题,本申请提供一种移动端热修复方法,至少包括如下步骤:
响应热修复请求,启动热修复引擎;
获取所述热修复引擎所需的初始化数据;
根据所述初始化数据发起补丁请求,获取所述补丁请求对应的热修复补丁数据;
对所述热修复补丁数据进行本地版本管理,得到对应的本地管理数据信息;
根据所述本地管理数据信息下载对应的热修复文件;
对所述热修复文件进行脚本解析,得到对应的热修复脚本后,执行所述热修复脚本。
可选地,所述移动端热修复方法还包括:
实时获取热修复日志并进行上报;
实时统计热修复过程中的数据信息并进行上报。
可选地,在所述获取所述热修复引擎所需的初始化数据之前,所述移动端热修复方法还包括:
对所述热修复引擎对应的初始化数据进行配置,所述初始化数据包括热修开关信息、灰度数据以及所述热修复引擎包含的各个服务组件的使用情况。
可选地,在所述根据所述本地管理数据信息下载对应的热修复文件之后,所述移动端热修复方法还包括:
通过预设协议接口将所述热修复文件回调至已下载文件路径,并对所述热修复文件进行缓存管理、文件解密和完整性校验;
更新所述热修复文件对应的补丁版本信息。
可选地,所述移动端热修复方法还包括:
对所述热修复文件进行管理,包括文件上传、版本管理、文件加密、灰度管理、文件下发、信息统计和日志管理。
可选地,所述移动端热修复方法还包括:
获取用户需求对应的配置信息,根据配置信息切换所述热修复引擎包含的各个服务组件。
相应地,本申请实施例还提供了一种移动端热修复装置,包括:
启动模块,用于响应热修复请求,启动热修复引擎;
初始化模块,用于获取所述热修复引擎所需的初始化数据;
补丁模块,用于根据所述初始化数据发起补丁请求,获取所述补丁请求对应的热修复补丁数据;
版本管理模块,用于对所述热修复补丁数据进行本地版本管理,得到对应的本地管理数据信息;
文件下载模块,用于根据所述本地管理数据信息下载对应的热修复文件;
脚本执行模块,用于对所述热修复文件进行脚本解析,得到对应的热修复脚本后,执行所述热修复脚本。
本申请实施例还提供了一种热修复***,包括移动端热修复装置和文件下发装置,其中,所述移动端热修复装置,用于响应热修复请求,启动热修复引擎;获取所述热修复引擎所需的初始化数据;根据所述初始化数据发起补丁请求,获取所述补丁请求对应的热修复补丁数据;对所述热修复补丁数据进行本地版本管理,得到对应的本地管理数据信息;根据所述本地管理数据信息下载对应的热修复文件;对所述热修复文件进行脚本解析,得到对应的热修复脚本后,执行所述热修复脚本;所述文件下发装置,用于为所述移动端热修复装置提供文件及信息管理服务。
可选地,所述文件下发装置包括功能开关单元、文件上传单元、文件加密单元、灰度管理单元、文件下发单元、统计信息单元和日志管理单元。
本申请实施例还提供了包括存储器和处理器,所述存储器存储有计算机程序,所述处理器执行所述计算机程序时实现如上所述的移动端热修复方法的步骤。
本申请实施例还提供了一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时如上所述的移动端热修复方法的步骤。
实施本发明实施例,具有如下有益效果:
如上所述,本申请提供的一种移动端热修复方法、装置、热修复***及可读存储介质,所述方法包括:首先响应热修复请求,启动热修复引擎;然后获取热修复引擎所需的初始化数据;根据初始化数据发起补丁请求,获取补丁请求对应的热修复补丁数据;接着对热修复补丁数据进行本地版本管理,得到对应的本地管理数据信息;根据本地管理数据信息下载对应的热修复文件;最后对热修复文件进行脚本解析,得到对应的热修复脚本后,执行热修复脚本。本申请的移动端热修复方法,通过提供一站式可插拔的热修复服务,使得用户可以自定义热修复的相关组件服务,能够快速执行可插拔式的热修复任务,提高热修复的效率和灵活性,并且降低成本的同时提高数据安全性。
附图说明
此处的附图被并入说明书中并构成本说明书的一部分,示出了符合本申请的实施例,并与说明书一起用于解释本申请的原理。为了更清楚地说明本申请实施例的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,对于本领域普通技术人员而言,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1是本申请实施例提供的移动端热修复方法的流程示意图;
图2是本申请实施例提供的移动端热修复方法装置的结构示意图;
图3是本申请实施例提供的热修复方法***的结构示意图;
图4是本申请实施例提供的计算机设备的第一种实施方式的结构示意图;
图5是本申请实施例提供的计算机设备的第二种实施方式的结构示意图。
本申请目的的实现、功能特点及优点将结合实施例,参照附图做进一步说明。通过上述附图,已示出本申请明确的实施例,后文中将有更详细的描述。这些附图和文字描述并不是为了通过任何方式限制本申请构思的范围,而是通过参考特定实施例为本领域技术人员说明本申请的概念。
具体实施方式
这里将详细地对示例性实施例进行说明,其示例表示在附图中。下面的描述涉及附图时,除非另有表示,不同附图中的相同数字表示相同或相似的要素。以下示例性实施例中所描述的实施方式并不代表与本申请相一致的所有实施方式。相反,它们仅是与如所附权利要求书中所详述的、本申请的一些方面相一致的装置和方法的例子。
需要说明的是,在本文中,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者装置不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者装置所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括该要素的过程、方法、物品或者装置中还存在另外的相同要素,此外,本申请不同实施例中具有同样命名的部件、特征、要素可能具有相同含义,也可能具有不同含义,其具体含义需以其在该具体实施例中的解释或者进一步结合该具体实施例中上下文进行确定。
应当理解,尽管在本文可能采用术语第一、第二、第三等来描述各种信息,但这些信息不应限于这些术语。这些术语仅用来将同一类型的信息彼此区分开。例如,在不脱离本文范围的情况下,第一信息也可以被称为第二信息,类似地,第二信息也可以被称为第一信息。取决于语境,如在此所使用的词语"如果"可以被解释成为“在……时”或“当……时”或“响应于确定”。再者,如同在本文中所使用的,单数形式“一”、“一个”和“该”旨在也包括复数形式,除非上下文中有相反的指示。应当进一步理解,术语“包含”、“包括”表明存在所述的特征、步骤、操作、元件、组件、项目、种类、和/或组,但不排除一个或多个其他特征、步骤、操作、元件、组件、项目、种类、和/或组的存在、出现或添加。本申请使用的术语“或”、“和/或”、“包括以下至少一个”等可被解释为包括性的,或意味着任一个或任何组合。例如,“包括以下至少一个:A、B、C”意味着“以下任一个:A;B;C;A和B;A和C;B和C;A和B和C”,再如,“A、B或C”或者“A、B和/或C”意味着“以下任一个:A;B;C;A和B;A和C;B和C;A和B和C”。仅当元件、功能、步骤或操作的组合在某些方式下内在地互相排斥时,才会出现该定义的例外。
应该理解的是,虽然本申请实施例中的流程图中的各个步骤按照箭头的指示依次显示,但是这些步骤并不是必然按照箭头指示的顺序依次执行。除非本文中有明确的说明,这些步骤的执行并没有严格的顺序限制,其可以以其他的顺序执行。而且,图中的至少一部分步骤可以包括多个子步骤或者多个阶段,这些子步骤或者阶段并不必然是在同一时刻执行完成,而是可以在不同的时刻执行,其执行顺序也不必然是依次进行,而是可以与其他步骤或者其他步骤的子步骤或者阶段的至少一部分轮流或者交替地执行。
取决于语境,如在此所使用的词语“如果”、“若”可以被解释成为“在……时”或“当……时”或“响应于确定”或“响应于检测”。类似地,取决于语境,短语“如果确定”或“如果检测(陈述的条件或事件)”可以被解释成为“当确定时”或“响应于确定”或“当检测(陈述的条件或事件)时”或“响应于检测(陈述的条件或事件)”。
需要说明的是,在本文中,采用了诸如S1、S2等步骤代号,其目的是为了更清楚简要地表述相应内容,不构成顺序上的实质性限制,本领域技术人员在具体实施时,可能会先执行S2后执行S1等,但这些均应在本申请的保护范围之内。
应当理解,此处所描述的具体实施例仅仅用以解释本申请,并不用于限定本申请。
在后续的描述中,使用用于表示元件的诸如“模块”、“部件”或者“单元”的后缀仅为了有利于本申请的说明,其本身没有特定的意义。因此,“模块”、“部件”或者“单元”可以混合地使用。
本申请实施例可以应用于服务器中,服务器可以是独立的服务器,也可以是提供云服务、云数据库、云计算、云函数、云存储、网络服务、云通信、中间件服务、域名服务、安全服务、内容分发网络(Content Delivery Network,CDN)、以及大数据和人工智能平台等基础云计算服务的云服务器。
首先介绍本申请可以提供的应用场景,如提供一种移动端热修复方法、装置、热修复***及可读存储介质,能够提供一站式可插拔的热修复服务,使得用户可以自定义热修复的相关组件服务,快速执行可插拔式的热修复任务。
请参阅图1,图1是本申请实施例提供的移动端热修复方法的流程示意图。该移动端热修复方法具体可以包括:
S1.响应热修复请求,启动热修复引擎。
具体的,对于步骤S1,主要是响应用户通过APP发起的热修复请求,启动热修复请求对应的热修复引擎。
S2.获取热修复引擎所需的初始化数据。
具体的,对于步骤S2,主要是在热修复引擎启动后,获取热修复引擎所需要的初始化数据。
可选地,在一些实施例中,在步骤S2之前,所述移动端热修复方法具体还可以包括:
对热修复引擎对应的初始化数据进行配置,该初始化数据包括热修开关信息、灰度数据以及热修复引擎包含的各个服务组件的使用情况。
具体的,在获取热修复引擎所需的初始化数据之前,还包括通过热修复引擎初始化配置器配置热修复引擎所需要的初始话数据,包括热修开关和灰度数据配置,以及配置热修复引擎架构流程下的各组件的服务使用,如文件下载服务、热修解析执行服务、日志及数据统计服务等组件服务是通过内置的组件服务实现或者通过用户自定义实现,此处对于实现可插拔的模式,提供前置的配置初始化方法。
S3.根据初始化数据发起补丁请求,获取补丁请求对应的热修复补丁数据。
具体的,对于步骤S3,根据用户的初始化数据发起补丁请求,请求文件洗发***的补丁数据,从而获取补丁请求对应的热修复补丁数据。
S4.对热修复补丁数据进行本地版本管理,得到对应的本地管理数据信息。
具体的,对于步骤S4,根据获取到的热修复补丁数据进行本地版本管理,管理更新的历史记录,例如记录添加或更改源代码的过程,回滚到特定阶段,回复误删除的文件等,在完成本地版本管理后,得到对应的本地管理数据信息,从而给后续流程补丁下载及执行提供准确的数据信息。
S5.根据本地管理数据信息下载对应的热修复文件。
具体的,对于步骤S5,根据本地版本管理信息触发需要下载的热修复文件,在此过程,可以根据用户可插拔配置,按需触发对应的组件进行下载服务,并支持断点续传。
可选地,在一些实施例中,在步骤S5之后,所述移动端热修复方法具体还可以包括:
通过预设协议接口将热修复文件回调至已下载文件路径,并对热修复文件进行缓存管理、文件解密和完整性校验;
更新热修复文件对应的补丁版本信息。
具体的,在根据本地管理数据信息下载对应的热修复文件之后,对应的下载组件通过协议接口回调已下载文件路径,然后对下载文件进行缓存管理、文件解密和完整性校验等安全处理,同时更新补丁版本信息至管理数据库。
S6.对热修复文件进行脚本解析,得到对应的热修复脚本后,执行热修复脚本。
具体的,对于步骤S6,对下载的热修复文件进行脚本解析,得到热修复脚本后,执行该热修复脚本完成热修复任务。在具体的实施例中,可通过热修脚本解析器对热修脚本进行解析,并通过热修脚本执行器执行热修复脚本,也可以根据用户的可插拔配置执行上述过程,用户可通过配置使用内置方法或者自定义方案执行热修解析和执行方案。
可选地,在一些实施例中,所述移动端热修复方法具体还可以包括:
实时获取热修复日志并进行上报;
实时统计热修复过程中的数据信息并进行上报。
具体的,在移动端热修复方法的过程中,即在整个热修引擎架构流程上的关键节点都会通过信息统计上报管理器进行日志上报和统计数据信息上报,将数据信息和日志上报到热修引擎架构提供的后端管理平台,保证数据的安全及可靠性,并且使得热修流程可控。
可选地,在一些实施例中,所述移动端热修复方法具体还可以包括:
对热修复文件进行管理,包括文件上传、版本管理、文件加密、灰度管理、文件下发、信息统计和日志管理。
具体的,本实施例还通过文件下发***为后端提供一系列的文件及信息管理服务,例如功能开关、文件上传及管理、文件加密、文件下发、灰度管理、统计信息和日志管理,并对热修复文件进行管理。
可选地,在一些实施例中,所述移动端热修复方法具体还可以包括:
获取用户需求对应的配置信息,根据配置信息切换热修复引擎包含的各个服务组件。
具体的,对于本实施例中的移动端热修复方法,获取用户需求,从而得到用户需求对应的配置信息,根据该配置信息,确定热修复引擎包含的各个服务组件的使用状态和功能开关,从而实现用户通过组件开启服务配置使用本架构引擎提供内置的组件服务,或者用户通过协议接口层自定义自研组件实现整个热修流程的执行,最终根据用户配置安全切换组件服务,实现一站式的可插拔热修复。
由上可知,本申请实施例提供的移动端热修复方法,包括:首先响应热修复请求,启动热修复引擎;然后获取热修复引擎所需的初始化数据;根据初始化数据发起补丁请求,获取补丁请求对应的热修复补丁数据;接着对热修复补丁数据进行本地版本管理,得到对应的本地管理数据信息;根据本地管理数据信息下载对应的热修复文件;最后对热修复文件进行脚本解析,得到对应的热修复脚本后,执行热修复脚本。本申请的移动端热修复方法,通过提供一站式可插拔的热修复服务,使得用户可以自定义热修复的相关组件服务,能够快速执行可插拔式的热修复任务,提高热修复的效率和灵活性,并且降低成本的同时提高数据安全性。
相应的,本申请还提供一种移动端热修复装置,请参阅图2,图2是本申请提供的移动端热修复装置的结构示意图,具体可以包括启动模块100、初始化模块200、补丁模块300、版本管理模块400、文件下载模块500和脚本执行模块600。
其中,启动模块100,用于响应热修复请求,启动热修复引擎。
具体的,对于启动模块100,主要是响应用户通过APP发起的热修复请求,启动热修复请求对应的热修复引擎。
初始化模块200,用于获取热修复引擎所需的初始化数据。
具体的,对于初始化模块200,主要是在热修复引擎启动后,获取热修复引擎所需要的初始化数据。
补丁模块300,用于根据初始化数据发起补丁请求,获取补丁请求对应的热修复补丁数据。
具体的,对于补丁模块300,根据用户的初始化数据发起补丁请求,请求文件洗发***的补丁数据,从而获取补丁请求对应的热修复补丁数据。
版本管理模块400,用于对热修复补丁数据进行本地版本管理,得到对应的本地管理数据信息。
具体的,对于版本管理模块400,根据获取到的热修复补丁数据进行本地版本管理,管理更新的历史记录,例如记录添加或更改源代码的过程,回滚到特定阶段,回复误删除的文件等,在完成本地版本管理后,得到对应的本地管理数据信息,从而给后续流程补丁下载及执行提供准确的数据信息。
文件下载模块500,用于根据本地管理数据信息下载对应的热修复文件。
具体的,对于文件下载模块500,根据本地版本管理信息触发需要下载的热修复文件,在此过程,可以根据用户可插拔配置,按需触发对应的组件进行下载服务,并支持断点续传。
脚本执行模块600,用于对热修复文件进行脚本解析,得到对应的热修复脚本后,执行热修复脚本。
具体的,对于脚本执行模块600,对下载的热修复文件进行脚本解析,得到热修复脚本后,执行该热修复脚本完成热修复任务。在具体的实施例中,可通过热修脚本解析器对热修脚本进行解析,并通过热修脚本执行器执行热修复脚本,也可以根据用户的可插拔配置执行上述过程,用户可通过配置使用内置方法或者自定义方案执行热修解析和执行方案。
可选地,在一些实施例中,移动端热修复装置具体还可以包括:
上报模块,用于实时获取热修复日志并进行上报;以及用于实时统计热修复过程中的数据信息并进行上报。
文件管理模块,用于对热修复文件进行管理,包括文件上传、版本管理、文件加密、灰度管理、文件下发、信息统计和日志管理。
配置模块,用于获取用户需求对应的配置信息,根据配置信息切换热修复引擎包含的各个服务组件。
综上所述,本申请实施例提供的移动端热修复装置,通过启动模块100响应热修复请求,启动热修复引擎;通过初始化模块200获取热修复引擎所需的初始化数据;通过补丁模块300根据初始化数据发起补丁请求,获取补丁请求对应的热修复补丁数据;通过版本管理模块400对热修复补丁数据进行本地版本管理,得到对应的本地管理数据信息;通过文件下载模块500根据本地管理数据信息下载对应的热修复文件;通过脚本执行模块600对热修复文件进行脚本解析,得到对应的热修复脚本后,执行热修复脚本。可见,本申请实施例的移动端热修复装置,通过提供一站式可插拔的热修复服务,使得用户可以自定义热修复的相关组件服务,能够快速执行可插拔式的热修复任务,提高热修复的效率和灵活性,并且降低成本的同时提高数据安全性。
本申请实施例还提供一种热修复***,包括移动端热修复装置和文件下发装置,其中,移动端热修复装置,用于响应热修复请求,启动热修复引擎;获取热修复引擎所需的初始化数据;根据初始化数据发起补丁请求,获取补丁请求对应的热修复补丁数据;对热修复补丁数据进行本地版本管理,得到对应的本地管理数据信息;根据本地管理数据信息下载对应的热修复文件;对热修复文件进行脚本解析,得到对应的热修复脚本后,执行热修复脚本;文件下发装置,用于为移动端热修复装置提供文件及信息管理服务。
在具体的实施例中,如图3所示,热修复***可以包括移动端热修复装置和文件下发***,其中,移动端热修复装置包括热修引擎初始化配置器、热修补丁版本管理器、热修文件下载器、热修引擎核心运行管理器、信息统计统计上报管理器,文件下发***包括功能开关单元、文件上传单元、文件加密单元、文件下发单元、统计信息单元和日志管理单元。
具体的,对于热修引擎初始化配置器,此配置器实现热修引擎所需要要的初始化数据配置,热修开关、灰度数据配置,配置热修引擎架构流程下的各组件的服务使用,如文件下载服务、热修解析执行服务、日志及数据统计服务等组件服务是通过内置的组件服务实现或者通过用户自定义实现,此处对于实现可插拔的模式,提供前置的配置初始化方法。同时,用户在热修引擎架构流程下的各组件配置的协议接口上实现用户自定义的组件,遵循协议约定的数据接口返回即可。本热修引擎架构可通过用户配置,安全切换组件服务、实现可插拔。
具体的,对于热修补丁版本管理器,主要根据用户的初始化数据,请求文件下发***的补丁数据,拿到数据后进行本地版本管理,给后续流程提供补丁下载及执行准确的数据信息。
具体的,对于热修文件下载器,用于根据本地版本管理数据信息触发需要下载热修文件,此组件,可根据用户可插拔配置,按需触发对应的组件进行下载服务,支持断点续传,当下载完成时,对应的下载组件通过协议接口回调已下载文件路径,然后对文件进行缓存管理、文件解密、完整性校验等安全处理。同时更新补丁版本信息管理数据库。
具体的,对于热修引擎核心运行管理器,此核心组件包含热修脚本解析器、热修脚本执行器。此核心组件服务支持可插拔,用户可通过配置使用内置方案或者自定义方案。只要遵循可插拔开放协议接口,用户可使用自研或者JSPatch、Tinker、AndFix、MangoFix、基于Lex、YACC技术等热修解析执行方案。
具体的,对于信息统计上报管理器,此组件提供日志上报、统计数据信息上报。此组件的提供通用接口,在整个热修引擎架构流程上的关键节点都会存在使用。此组件提供可插拔服务,用户可使用内置的组件服务,数据和日志都会上报到本引擎架构提供的后端管理平台;若用户通过开放协议接口自定义自研的组件服务,数据和日志都会上传到用户期望的后端管理平台,这样对用户来说,能实现保证数据的安全及可靠,流程可控。
可选地,在一些实施例中,文件下发装置包括功能开关单元、文件上传单元、文件加密单元、灰度管理单元、文件下发单元、统计信息单元和日志管理单元。
在具体的实施例中,文件下发***提供后端一系列文件及信息管理服务,如:功能开关、文件上传及管理、文件加密、文件下发、灰度管理、统计信息、日志管理等服务。
其中,功能开关单元,实现App是否启用热修引擎的开关功能,App可通过接口在App启动时进行网络请求开关配置,拿到数据后即可控制热修引擎的的相关流程。
文件上传单元,热修文件可通过文件下发***的文件上传入口进行上传,此模块管控文件的格式、大小、安全扫描及脚本代码自动扫描审核等功能;同时会实现文件版本管理,提供精准的文件下发功能。
文件加密单元,用于在文件上传完后,根据协商好的加密方式进行加密,并且生成MD5信息存储到数据库。
灰度管理单元,用于对于每个已上传的文件进行灰度配置管理,实现对App版本、用户、设备、***版本、机型、数量等配置进行灰度下发。
文件下发单元,通过文件版本管理功能及灰度管理,提供精准的文件下发功能,App可通过接口请求是否符合灰度配置的文件信息,有则进行文件下载,否则忽略。
统计信息单元,用于提供关键信息上报接口,管理App上报的当前热修文件的发布数、请求数、命中数、下载成功/失败、解密成功/失败、执行成功/失败等统计信息,从而实现数据分析及下发实时监控。
日志管理单元,用于提供日志接口上报接口,管理App各流程关键节点的日志记录,从而实现能快速根据日志分析定位相关问题,给用户提供准确的日志搜索功能。
可见,本实施例提供的热修复***,以一种流程化协议接口的方式提供一站式可插拔的热修服务,以可插拔的组件以及内置基本功能的架构方案实现流程化的移动端热修服务,使得用户可通过组件开启服务配置使用本架构引擎提供内置的组件服务,或者可通过协议接口层用户自定义自研组件实现整个热修流程的执行,从而给用户带来轻量性、灵活性、可自定义、数据安全性、且能低成本的以一套引擎架构适配未来各组件技术改进等收益。
首先响应热修复请求,启动热修复引擎;然后获取热修复引擎所需的初始化数据;根据初始化数据发起补丁请求,获取补丁请求对应的热修复补丁数据;接着对热修复补丁数据进行本地版本管理,得到对应的本地管理数据信息;根据本地管理数据信息下载对应的热修复文件;最后对热修复文件进行脚本解析,得到对应的热修复脚本后,执行热修复脚本。本申请的移动端热修复方法,通过提供一站式可插拔的热修复服务,使得用户可以自定义热修复的相关组件服务,能够快速执行可插拔式的热修复任务,提高热修复的效率和灵活性,并且降低成本的同时提高数据安全性。
本申请实施例中还提供一种计算机设备,请参阅图4,图4是本申请实施例提供的计算机设备的第一种实施方式的结构示意图。该计算机设备包括存储器10和处理器20,该存储器10存储有计算机程序,该处理器20执行计算机程序时实现一种移动端热修复方法,包括:首先响应热修复请求,启动热修复引擎;然后获取热修复引擎所需的初始化数据;根据初始化数据发起补丁请求,获取补丁请求对应的热修复补丁数据;接着对热修复补丁数据进行本地版本管理,得到对应的本地管理数据信息;根据本地管理数据信息下载对应的热修复文件;最后对热修复文件进行脚本解析,得到对应的热修复脚本后,执行热修复脚本。
本申请实施例中还提供一种计算机设备,该计算机设备可以是服务器。请参阅图5,图5是本申请实施例提供的计算机设备的第二种实施方式的结构示意图。该计算机设备包括通过***总线连接的处理器、存储器、网络接口和数据库。其中,该计算机设计的处理器用于提供计算和控制能力。该计算机设备的存储器包括非易失性存储介质、内存储器。该非易失性存储介质存储有操作***、计算机程序和数据库。该内存器为非易失性存储介质中的操作***和计算机程序的运行提供环境。该计算机设备的数据库用于储存移动端热修复方法等数据。该计算机设备的网络接口用于与外部的终端通过网络连接通信。该计算机程序被处理器执行时以实现一种移动端热修复方法。所述移动端热修复方法,包括:首先响应热修复请求,启动热修复引擎;然后获取热修复引擎所需的初始化数据;根据初始化数据发起补丁请求,获取补丁请求对应的热修复补丁数据;接着对热修复补丁数据进行本地版本管理,得到对应的本地管理数据信息;根据本地管理数据信息下载对应的热修复文件;最后对热修复文件进行脚本解析,得到对应的热修复脚本后,执行热修复脚本。
本申请一实施例还提供一种计算机可读存储介质,其上存储有计算机程序,计算机程序被处理器执行时实现一种移动端热修复方法,包括步骤:首先响应热修复请求,启动热修复引擎;然后获取热修复引擎所需的初始化数据;根据初始化数据发起补丁请求,获取补丁请求对应的热修复补丁数据;接着对热修复补丁数据进行本地版本管理,得到对应的本地管理数据信息;根据本地管理数据信息下载对应的热修复文件;最后对热修复文件进行脚本解析,得到对应的热修复脚本后,执行热修复脚本。
上述执行的移动端热修复方法,本申请实施例通过提供一站式可插拔的热修复服务,使得用户可以自定义热修复的相关组件服务,能够快速执行可插拔式的热修复任务,提高热修复的效率和灵活性,并且降低成本的同时提高数据安全性。
可以理解,上述场景仅是作为示例,并不构成对于本申请实施例提供的技术方案的应用场景的限定,本申请的技术方案还可应用于其他场景。例如,本领域普通技术人员可知,随着***架构的演变和新业务场景的出现,本申请实施例提供的技术方案对于类似的技术问题,同样适用。
上述本申请实施例序号仅仅为了描述,不代表实施例的优劣。
本申请实施例方法中的步骤可以根据实际需要进行顺序调整、合并和删减。
本申请实施例设备中的单元可以根据实际需要进行合并、划分和删减。
在本申请中,对于相同或相似的术语概念、技术方案和/或应用场景描述,一般只在第一次出现时进行详细描述,后面再重复出现时,为了简洁,一般未再重复阐述,在理解本申请技术方案等内容时,对于在后未详细描述的相同或相似的术语概念、技术方案和/或应用场景描述等,可以参考其之前的相关详细描述。
在本申请中,对各个实施例的描述都各有侧重,某个实施例中没有详述或记载的部分,可以参见其它实施例的相关描述。
本申请技术方案的各技术特征可以进行任意的组合,为使描述简洁,未对上述实施例中的各个技术特征所有可能的组合都进行描述,然而,只要这些技术特征的组合不存在矛盾,都应当认为是本申请记载的范围。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到上述实施例方法可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在如上的一个存储介质(如ROM/RAM、磁碟、光盘)中,包括若干指令用以使得一台终端设备(可以是手机,计算机,服务器,被控终端,或者网络设备等)执行本申请每个实施例的方法。
在上述实施例中,可以全部或部分地通过软件、硬件、固件或者其任意组合来实现。当使用软件实现时,可以全部或部分地以计算机程序产品的形式实现。计算机程序产品包括一个或多个计算机指令。在计算机上加载和执行计算机程序指令时,全部或部分地产生按照本申请实施例的流程或功能。计算机可以是通用计算机、专用计算机、计算机网络,或者其他可编程装置。计算机指令可以存储在计算机可读存储介质中,或者从一个计算机可读存储介质向另一个计算机可读存储介质传输,例如,计算机指令可以从一个网站站点、计算机、服务器或数据中心通过有线(例如同轴电缆、光纤、数字用户线)或无线(例如红外、无线、微波等)方式向另一个网站站点、计算机、服务器或数据中心进行传输。计算机可读存储介质可以是计算机能够存取的任何可用介质或者是包含一个或多个可用介质集成的服务器、数据中心等数据存储设备。可用介质可以是磁性介质,(例如,软盘、存储盘、磁带)、光介质(例如,DVD),或者半导体介质(例如固态存储盘Solid State Disk (SSD))等。
以上仅为本申请的优选实施例,并非因此限制本申请的专利范围,凡是利用本申请说明书及附图内容所作的等效结构或等效流程变换,或直接或间接运用在其他相关的技术领域,均同理包括在本申请的专利保护范围内。
Claims (10)
1.一种移动端热修复方法,其特征在于,包括如下步骤:
响应热修复请求,启动热修复引擎;
获取所述热修复引擎所需的初始化数据;
根据所述初始化数据发起补丁请求,获取所述补丁请求对应的热修复补丁数据;
对所述热修复补丁数据进行本地版本管理,得到对应的本地管理数据信息;
根据所述本地管理数据信息下载对应的热修复文件;
对所述热修复文件进行脚本解析,得到对应的热修复脚本后,执行所述热修复脚本。
2.根据权利要求1所述的移动端热修复方法,其特征在于,所述方法还包括:
实时获取热修复日志并进行上报;
实时统计热修复过程中的数据信息并进行上报。
3.根据权利要求1所述的移动端热修复方法,其特征在于,在所述获取所述热修复引擎所需的初始化数据之前,所述方法还包括:
对所述热修复引擎对应的初始化数据进行配置,所述初始化数据包括热修开关信息、灰度数据以及所述热修复引擎包含的各个服务组件的使用情况。
4.根据权利要求1所述的移动端热修复方法,其特征在于,在所述根据所述本地管理数据信息下载对应的热修复文件之后,所述方法还包括:
通过预设协议接口将所述热修复文件回调至已下载文件路径,并对所述热修复文件进行缓存管理、文件解密和完整性校验;
更新所述热修复文件对应的补丁版本信息。
5.根据权利要求1所述的移动端热修复方法,其特征在于,所述方法还包括:
对所述热修复文件进行管理,包括文件上传、版本管理、文件加密、灰度管理、文件下发、信息统计和日志管理。
6.根据权利要求1所述的移动端热修复方法,其特征在于,所述方法还包括:
获取用户需求对应的配置信息,根据配置信息切换所述热修复引擎包含的各个服务组件。
7.一种移动端热修复装置,其特征在于,包括:
启动模块,用于响应热修复请求,启动热修复引擎;
初始化模块,用于获取所述热修复引擎所需的初始化数据;
补丁模块,用于根据所述初始化数据发起补丁请求,获取所述补丁请求对应的热修复补丁数据;
版本管理模块,用于对所述热修复补丁数据进行本地版本管理,得到对应的本地管理数据信息;
文件下载模块,用于根据所述本地管理数据信息下载对应的热修复文件;
脚本执行模块,用于对所述热修复文件进行脚本解析,得到对应的热修复脚本后,执行所述热修复脚本。
8.一种热修复***,其特征在于,包括移动端热修复装置和文件下发装置,其中,所述移动端热修复装置,用于响应热修复请求,启动热修复引擎;获取所述热修复引擎所需的初始化数据;根据所述初始化数据发起补丁请求,获取所述补丁请求对应的热修复补丁数据;对所述热修复补丁数据进行本地版本管理,得到对应的本地管理数据信息;根据所述本地管理数据信息下载对应的热修复文件;对所述热修复文件进行脚本解析,得到对应的热修复脚本后,执行所述热修复脚本;所述文件下发装置,用于为所述移动端热修复装置提供文件及信息管理服务。
9.根据权利要求8所述的热修复***,其特征在于,所述文件下发装置包括功能开关单元、文件上传单元、文件加密单元、灰度管理单元、文件下发单元、统计信息单元和日志管理单元。
10.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现如权利要求1至6中任一项所述的移动端热修复方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211185949.4A CN115296999B (zh) | 2022-09-28 | 2022-09-28 | 移动端热修复方法、装置、热修复***及可读存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211185949.4A CN115296999B (zh) | 2022-09-28 | 2022-09-28 | 移动端热修复方法、装置、热修复***及可读存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN115296999A true CN115296999A (zh) | 2022-11-04 |
CN115296999B CN115296999B (zh) | 2023-01-10 |
Family
ID=83834610
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202211185949.4A Active CN115296999B (zh) | 2022-09-28 | 2022-09-28 | 移动端热修复方法、装置、热修复***及可读存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN115296999B (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN116257278A (zh) * | 2023-05-15 | 2023-06-13 | 北京阿帕科蓝科技有限公司 | 一种应用软件的补丁执行方法和存储介质 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6493871B1 (en) * | 1999-09-16 | 2002-12-10 | Microsoft Corporation | Method and system for downloading updates for software installation |
CN107329781A (zh) * | 2017-06-21 | 2017-11-07 | 努比亚技术有限公司 | 软件热修复方法、终端、***及计算机可读存储介质 |
CN107391171A (zh) * | 2017-06-14 | 2017-11-24 | 广东网金控股股份有限公司 | 一种解决iOS热修复问题的方法以及用户终端 |
CN111026401A (zh) * | 2019-12-05 | 2020-04-17 | 杭州有赞科技有限公司 | 一种移动端热修复方法 |
CN114968406A (zh) * | 2022-05-27 | 2022-08-30 | 北京青云科技股份有限公司 | 一种插件管理方法、装置、电子设备及存储介质 |
-
2022
- 2022-09-28 CN CN202211185949.4A patent/CN115296999B/zh active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6493871B1 (en) * | 1999-09-16 | 2002-12-10 | Microsoft Corporation | Method and system for downloading updates for software installation |
CN107391171A (zh) * | 2017-06-14 | 2017-11-24 | 广东网金控股股份有限公司 | 一种解决iOS热修复问题的方法以及用户终端 |
CN107329781A (zh) * | 2017-06-21 | 2017-11-07 | 努比亚技术有限公司 | 软件热修复方法、终端、***及计算机可读存储介质 |
CN111026401A (zh) * | 2019-12-05 | 2020-04-17 | 杭州有赞科技有限公司 | 一种移动端热修复方法 |
CN114968406A (zh) * | 2022-05-27 | 2022-08-30 | 北京青云科技股份有限公司 | 一种插件管理方法、装置、电子设备及存储介质 |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN116257278A (zh) * | 2023-05-15 | 2023-06-13 | 北京阿帕科蓝科技有限公司 | 一种应用软件的补丁执行方法和存储介质 |
CN116257278B (zh) * | 2023-05-15 | 2023-10-31 | 北京阿帕科蓝科技有限公司 | 一种应用软件的补丁执行方法和存储介质 |
Also Published As
Publication number | Publication date |
---|---|
CN115296999B (zh) | 2023-01-10 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP6742650B2 (ja) | モバイルブラウザを用いたアプリケーションの呼び出し方法及び装置 | |
CN110519380B (zh) | 一种数据访问方法、装置、存储介质及电子设备 | |
JP5658283B2 (ja) | アプリケーションの稼働方法、装置及びシステム | |
US9600477B2 (en) | Acquiring information dynamically regarding a hardware component in the cloud computing system while on the floor of the data center | |
US8484625B2 (en) | Method and apparatus to vet an executable program using a model | |
US10698797B2 (en) | Mobile application program testing method, server, terminal, and storage medium | |
US20060200658A1 (en) | Agent framework for mobile devices | |
US10587422B2 (en) | Thresholds on scripts executable by unified extensible firmware interface systems | |
CN105307195B (zh) | 一种更新接入点名称参数的方法及装置 | |
WO2015060965A2 (en) | Delivery of branding content and customizations to a mobile communication device | |
US11516732B2 (en) | Provisioning an embedded universal integrated circuit card (eUICC) of a mobile communication device | |
US20130111458A1 (en) | Method and system for on-demand patch generation and management | |
CN104021141B (zh) | 数据处理和云服务的方法、装置及*** | |
BRPI0520464B1 (pt) | método para obter serviço de telecomunicações através de um terminal de telecomunicações e terminal de telecomunicações | |
CN115296999B (zh) | 移动端热修复方法、装置、热修复***及可读存储介质 | |
CN105554136B (zh) | 备份数据还原方法、装置及*** | |
US20230273782A1 (en) | Information processing method, device, apparatus and system, medium, andprogram | |
CN113595788A (zh) | 一种基于插件的api网关管理方法及装置 | |
CN101895883A (zh) | 一种支持鉴权算法更新的智能卡及方法 | |
CN112099757A (zh) | 一种应用保活的方法以及装置 | |
CN115543489B (zh) | 一种启动应用的实现方法及装置 | |
CN116546062A (zh) | 云手机控制方法及装置、云服务端、存储介质 | |
CN111417109B (zh) | 一种eSIM卡及其运营商文件管理方法和管理*** | |
CN104580429A (zh) | 一种加载通讯信息的方法、服务器和云盘客户端 | |
CN113760688A (zh) | 一种远程调试方法、***、网页服务器、设备及存储介质 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |