CN106951279A - 应用的热修复装置及方法 - Google Patents
应用的热修复装置及方法 Download PDFInfo
- Publication number
- CN106951279A CN106951279A CN201710110771.XA CN201710110771A CN106951279A CN 106951279 A CN106951279 A CN 106951279A CN 201710110771 A CN201710110771 A CN 201710110771A CN 106951279 A CN106951279 A CN 106951279A
- Authority
- CN
- China
- Prior art keywords
- application
- repaired
- service packs
- information
- download
- 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.)
- Withdrawn
Links
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04M—TELEPHONIC COMMUNICATION
- H04M1/00—Substation equipment, e.g. for use by subscribers
- H04M1/72—Mobile telephones; Cordless telephones, i.e. devices for establishing wireless links to base stations without route selection
- H04M1/724—User interfaces specially adapted for cordless or mobile telephones
- H04M1/72403—User interfaces specially adapted for cordless or mobile telephones with means for local support of applications that increase the 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/656—Updates while running
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- General Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Human Computer Interaction (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Stored Programmes (AREA)
Abstract
本发明公开了一种应用的热修复装置,该装置包括:获取模块,用于获取待修复的应用当前的应用版本信息,以及应用当前的已有补丁版本信息;下载模块,用于基于应用版本信息以及已有补丁版本信息,从服务器下载待修复补丁包;确定模块,用于根据下载的待修复补丁包以及已有补丁版本信息,确定待修复的目标方法;修复模块,用于在应用的运行过程中,基于待修复补丁包以及预设的修复框架,对目标方法的调用进行拦截并修改处理,以实现对应用的修复。本发明还提出一种应用的热修复方法。本发明提出的应用的热修复装置及方法,解决了现有技术中对于应用漏洞的修复成本高且流程过于繁琐的问题。
Description
技术领域
本发明涉及通信技术领域,尤其涉及一种应用的热修复装置及方法。
背景技术
随着智能设备的发展,智能设备上的软件层出不穷。但是一些软件在使用的过程中可能会出现一些漏洞(bug),例如功能性或逻辑性的错误,如对话框弹出出错、***执行某功能失败等,这些bug会影响到用户的对软件的正常使用,因此需要及时地进行修复。
目前,在一个应用发布之后,如果发现出现严重的bug需要进行修复,按照常规的做法一般是:重新打包应用、测试、向各个应用市场和渠道推出新的安装包、提示用户升级、用户下载、覆盖安装。这种方式不仅需要各个应用市场及渠道进行安装包的更新,还需要用户进行应用的重新覆盖安装,不仅为用户带来不便,而且成本高且流程过于繁琐。
发明内容
本发明提供一种应用的热修复装置及方法,其主要目的在于解决现有技术中对于应用漏洞的修复成本高且流程过于繁琐的问题。
为实现上述目的,本发明提供一种应用的热修复装置,该应用的热修复装置包括:
获取模块,用于获取待修复的应用当前的应用版本信息,以及所述应用当前的已有补丁版本信息;
下载模块,用于基于所述应用版本信息以及已有补丁版本信息,从服务器下载待修复补丁包;
确定模块,用于根据下载的待修复补丁包以及所述已有补丁版本信息,确定待修复的目标方法;
修复模块,用于在所述应用的运行过程中,基于所述待修复补丁包以及预设的修复框架,对所述目标方法的调用进行拦截并修改处理,以实现对所述应用的修复。
可选地,所述确定模块包括:
解压缩单元,用于对下载的所述待修复补丁包进行解压缩处理,并将解压缩得到的补丁文件存储至所述应用的私有文件夹中;
确定单元,用于基于所述私有文件中的所述补丁文件,以及所述已有补丁版本信息,确定待修复的目标方法。
可选地,所述修复模块包括:
拦截单元,用于在所述应用的运行过程中,对所述应用的***调用信息进行监测,以在调用所述目标方法之前,在应用的native层对所述目标方法的地址进行拦截;
修改单元,用于基于所述补丁文件以及预设的修复框架,对所述目标方法的执行逻辑进行修改,以实现对所述应用的修复。
可选地,所述下载模块包括:
请求单元,用于根据获取的应用版本信息以及所述已有补丁版本信息向所述应用服务器发送查询请求;
下载单元,用于在接收到所述服务器基于所述查询请求返回的应答信息,并基于所述应答信息判定当前具有与所述应用适配的待修复补丁包时,下载所述待修复补丁包。
可选地,所述应用的热修复装置还包括校验模块和上报模块,其中,
所述校验模块用于:对所述待修复补丁包进行有效性校验;
所述上报模块用于:若校验通过,则向所述服务器上报下载成功的状态信息;
所述确定模块还用于:在所述上报模块向所述服务器上报下载成功的状态信息后,根据下载的待修复补丁包以及所述已有补丁版本信息,确定待修复的目标方法;
所述上报模块还用于:若校验失败,则向所述服务器上报补丁包无效的状态信息。
此外,为实现上述目的,本发明还提供一种应用的热修复方法,该应用的热修复方法包括:
获取待修复的应用当前的应用版本信息,以及所述应用当前的已有补丁版本信息;
基于所述应用版本信息以及已有补丁版本信息,从服务器下载待修复补丁包;
根据下载的待修复补丁包以及所述已有补丁版本信息,确定待修复的目标方法;
在所述应用的运行过程中,基于所述待修复补丁包以及预设的修复框架,对所述目标方法的调用进行拦截并修改处理,以实现对所述应用的修复。
可选地,所述根据下载的待修复补丁包以及所述已有补丁版本信息,确定待修复的目标方法的步骤包括:
对下载的所述待修复补丁包进行解压缩处理,并将解压缩得到的补丁文件存储至所述应用的私有文件夹中;
基于所述私有文件中的所述补丁文件,以及所述已有补丁版本信息,确定待修复的目标方法。
可选地,所述在所述应用的运行过程中,基于所述待修复补丁包以及预设的修复框架,对所述目标方法的调用进行拦截并修改处理,以实现对所述应用的修复的步骤包括:
在所述应用的运行过程中,对所述应用的***调用信息进行监测,以在调用所述目标方法之前,在应用的native层对所述目标方法的地址进行拦截;
基于所述补丁文件以及预设的修复框架,对所述目标方法的执行逻辑进行修改,以实现对所述应用的修复。
可选地,所述基于所述应用版本信息以及已有补丁版本信息,从服务器下载待修复补丁包的步骤包括:
根据获取的应用版本信息以及所述已有补丁版本信息向所述应用服务器发送查询请求;
在接收到所述服务器基于所述查询请求返回的应答信息,并基于所述应答信息判定当前具有与所述应用适配的待修复补丁包时,下载所述待修复补丁包。
可选地,所述在接收到所述服务器基于所述查询请求返回的应答信息,并基于所述应答信息判定当前具有与所述应用适配的待修复补丁包时,下载所述待修复补丁包的步骤之后,所述应用的热修复方法还包括步骤:
对所述待修复补丁包进行有效性校验;
若校验通过,则向所述服务器上报下载成功的状态信息,并执行所述根据下载的待修复补丁包以及所述已有补丁版本信息,确定待修复的目标方法的步骤;
若校验失败,则向所述服务器上报补丁包无效的状态信息。
本发明提出的应用的热修复装置及方法,获取待修复的应用当前的应用版本信息,以及该应用当前的已有补丁版本信息,基于上述获取的信息从服务器下载修复补丁包,根据下载的修复补丁包以及已有补丁版本信息,确定修复的目标方法,在应用的运行过程中,基于待修复补丁包和预设的修复框架,对上述目标方法的调用进行拦截及修改,以实现对应用的修复。本发明获取待修复的应用的修复补丁包,通过预设的修复框架对应用进行方法级的修复,在应用的运行过程中,对目标方法的调用进行拦截、修改即可,不需要下载新的安装包,修复可以立即生效,不需要重新启动应用,即可正常使用,满足了快速修复应用bug的功能,简化了修复流程,对于服务器来说,也不需要发布新的安装包即可实现应用的修复,节约了成本。
附图说明
图1为实现本发明各个实施例的移动终端的硬件结构示意图;
图2为如图1所示的移动终端的无线通信装置示意图;
图3为本发明应用的热修复装置第一实施例的功能模块示意图;
图4为本发明应用的热修复装置第一实施例中的目标方法修复示意图;
图5为本发明应用的热修复装置第二实施例的功能模块示意图;
图6为本发明应用的热修复方法第一实施例的流程图。
本发明目的的实现、功能特点及优点将结合实施例,参照附图做进一步说明。
具体实施方式
应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。
现在将参考附图描述实现本发明各个实施例的移动终端。在后续的描述中,使用用于表示元件的诸如“模块”、“部件”或“单元”的后缀仅为了有利于本发明的说明,其本身并没有特定的意义。因此,“模块”与“部件”可以混合地使用。
移动终端可以以各种形式来实施。例如,本发明中描述的终端可以包括诸如移动电话、智能电话、笔记本电脑、数字广播接收器、PDA(个人数字助理)、PAD(平板电脑)、PMP(便携式多媒体播放器)、导航装置等等的移动终端以及诸如数字TV、台式计算机等等的固定终端。下面,假设终端是移动终端。然而,本领域技术人员将理解的是,除了特别用于移动目的的元件之外,根据本发明的实施方式的构造也能够应用于固定类型的终端。
图1为实现本发明各个实施例的移动终端的硬件结构示意。
移动终端100可以包括无线通信单元110、用户输入单元130、输出单元150、存储器160、接口单元170、控制器180和电源单元190等等。图1示出了具有各种组件的移动终端,但是应理解的是,并不要求实施所有示出的组件。可以替代地实施更多或更少的组件。将在下面详细描述移动终端的元件。
无线通信单元110通常包括一个或多个组件,其允许移动终端100与无线通信装置或网络之间的无线电通信。例如,无线通信单元可以包括广播接收模块111、移动通信模块112、无线互联网模块113、短程通信模块114和位置信息模块115中的至少一个。
广播接收模块111经由广播信道从外部广播管理服务器接收广播信号和/或广播相关信息。广播信道可以包括卫星信道和/或地面信道。广播管理服务器可以是生成并发送广播信号和/或广播相关信息的服务器或者接收之前生成的广播信号和/或广播相关信息并且将其发送给终端的服务器。广播信号可以包括TV广播信号、无线电广播信号、数据广播信号等等。而且,广播信号可以进一步包括与TV或无线电广播信号组合的广播信号。广播相关信息也可以经由移动通信网络提供,并且在该情况下,广播相关信息可以由移动通信模块112来接收。广播信号可以以各种形式存在,例如,其可以以数字多媒体广播(DMB)的电子节目指南(EPG)、数字视频广播手持(DVB-H)的电子服务指南(ESG)等等的形式而存在。广播接收模块111可以通过使用各种类型的广播装置接收信号广播。特别地,广播接收模块111可以通过使用诸如多媒体广播-地面(DMB-T)、数字多媒体广播-卫星(DMB-S)、数字视频广播-手持(DVB-H),前向链路媒体(MediaFLO@)的数据广播装置、地面数字广播综合服务(ISDB-T)等等的数字广播装置接收数字广播。广播接收模块111可以被构造为适合提供广播信号的各种广播装置以及上述数字广播装置。经由广播接收模块111接收的广播信号和/或广播相关信息可以存储在存储器160(或者其它类型的存储介质)中。
移动通信模块112将无线电信号发送到基站(例如,接入点、节点B等等)、外部终端以及服务器中的至少一个和/或从其接收无线电信号。这样的无线电信号可以包括语音通话信号、视频通话信号、或者根据文本和/或多媒体消息发送和/或接收的各种类型的数据。
无线互联网模块113支持移动终端的无线互联网接入。该模块可以内部或外部地耦接到终端。该模块所涉及的无线互联网接入技术可以包括WLAN(无线LAN)(Wi-Fi)、Wibro(无线宽带)、Wimax(全球微波互联接入)、HSDPA(高速下行链路分组接入)等等。
短程通信模块114是用于支持短程通信的模块。短程通信技术的一些示例包括蓝牙TM、射频识别(RFID)、红外数据协会(IrDA)、超宽带(UWB)、紫蜂TM等等。
位置信息模块115是用于检查或获取移动终端的位置信息的模块。位置信息模块的典型示例是GPS(全球定位装置)。根据当前的技术,GPS模块115计算来自三个或更多卫星的距离信息和准确的时间信息并且对于计算的信息应用三角测量法,从而根据经度、纬度和高度准确地计算三维当前位置信息。当前,用于计算位置和时间信息的方法使用三颗卫星并且通过使用另外的一颗卫星校正计算出的位置和时间信息的误差。此外,GPS模块115能够通过实时地连续计算当前位置信息来计算速度信息。
用户输入单元130可以根据用户输入的命令生成键输入数据以控制移动终端的各种操作。用户输入单元130允许用户输入各种类型的信息,并且可以包括键盘、锅仔片、触摸板(例如,检测由于被接触而导致的电阻、压力、电容等等的变化的触敏组件)、滚轮、摇杆等等。特别地,当触摸板以层的形式叠加在显示单元151上时,可以形成触摸屏。
接口单元170用作至少一个外部装置与移动终端100连接可以通过的接口。例如,外部装置可以包括有线或无线头戴式耳机端口、外部电源(或电池充电器)端口、有线或无线数据端口、存储卡端口、用于连接具有识别模块的装置的端口、音频输入/输出(I/O)端口、视频I/O端口、耳机端口等等。识别模块可以是存储用于验证用户使用移动终端100的各种信息并且可以包括用户识别模块(UIM)、客户识别模块(SIM)、通用客户识别模块(USIM)等等。另外,具有识别模块的装置(下面称为“识别装置”)可以采取智能卡的形式,因此,识别装置可以经由端口或其它连接装置与移动终端100连接。接口单元170可以用于接收来自外部装置的输入(例如,数据信息、电力等等)并且将接收到的输入传输到移动终端100内的一个或多个元件或者可以用于在移动终端和外部装置之间传输数据。
另外,当移动终端100与外部底座连接时,接口单元170可以用作允许通过其将电力从底座提供到移动终端100的路径或者可以用作允许从底座输入的各种命令信号通过其传输到移动终端的路径。从底座输入的各种命令信号或电力可以用作用于识别移动终端是否准确地安装在底座上的信号。输出单元150被构造为以视觉、音频和/或触觉方式提供输出信号(例如,音频信号、视频信号、警报信号、振动信号等等)。输出单元150可以包括显示单元151、音频输出模块152等等。
显示单元151可以显示在移动终端100中处理的信息。例如,当移动终端100处于电话通话模式时,显示单元151可以显示与通话或其它通信(例如,文本消息收发、多媒体文件下载等等)相关的用户界面(UI)或图形用户界面(GUI)。当移动终端100处于视频通话模式或者图像捕获模式时,显示单元151可以显示捕获的图像和/或接收的图像、示出视频或图像以及相关功能的UI或GUI等等。
同时,当显示单元151和触摸板以层的形式彼此叠加以形成触摸屏时,显示单元151可以用作输入装置和输出装置。显示单元151可以包括液晶显示器(LCD)、薄膜晶体管LCD(TFT-LCD)、有机发光二极管(OLED)显示器、柔性显示器、三维(3D)显示器等等中的至少一种。这些显示器中的一些可以被构造为透明状以允许用户从外部观看,这可以称为透明显示器,典型的透明显示器可以例如为TOLED(透明有机发光二极管)显示器等等。根据特定想要的实施方式,移动终端100可以包括两个或更多显示单元(或其它显示装置),例如,移动终端可以包括外部显示单元(未示出)和内部显示单元(未示出)。触摸屏可用于检测触摸输入压力以及触摸输入位置和触摸输入面积。
音频输出模块152可以在移动终端处于呼叫信号接收模式、通话模式、记录模式、语音识别模式、广播接收模式等等模式下时,将无线通信单元110接收的或者在存储器160中存储的音频数据转换音频信号并且输出为声音。而且,音频输出模块152可以提供与移动终端100执行的特定功能相关的音频输出(例如,呼叫信号接收声音、消息接收声音等等)。音频输出模块152可以包括拾音器、蜂鸣器等等。
存储器160可以存储由控制器180执行的处理和控制操作的软件程序等等,或者可以暂时地存储己经输出或将要输出的数据(例如,电话簿、消息、静态图像、视频等等)。而且,存储器160可以存储关于当触摸施加到触摸屏时输出的各种方式的振动和音频信号的数据。
存储器160可以包括至少一种类型的存储介质,所述存储介质包括闪存、硬盘、多媒体卡、卡型存储器(例如,SD或DX存储器等等)、随机访问存储器(RAM)、静态随机访问存储器(SRAM)、只读存储器(ROM)、电可擦除可编程只读存储器(EEPROM)、可编程只读存储器(PROM)、磁性存储器、磁盘、光盘等等。而且,移动终端100可以与通过网络连接执行存储器160的存储功能的网络存储装置协作。
控制器180通常控制移动终端的总体操作。例如,控制器180执行与语音通话、数据通信、视频通话等等相关的控制和处理。另外,控制器180可以包括用于再现(或回放)多媒体数据的多媒体模块181,多媒体模块181可以构造在控制器180内,或者可以构造为与控制器180分离。控制器180可以执行模式识别处理,以将在触摸屏上执行的手写输入或者图片绘制输入识别为字符或图像。
电源单元190在控制器180的控制下接收外部电力或内部电力并且提供操作各元件和组件所需的适当的电力。
这里描述的各种实施方式可以以使用例如计算机软件、硬件或其任何组合的计算机可读介质来实施。对于硬件实施,这里描述的实施方式可以通过使用特定用途集成电路(ASIC)、数字信号处理器(DSP)、数字信号处理装置(DSPD)、可编程逻辑装置(PLD)、现场可编程门阵列(FPGA)、处理器、控制器、微控制器、微处理器、被设计为执行这里描述的功能的电子单元中的至少一种来实施,在一些情况下,这样的实施方式可以在控制器180中实施。对于软件实施,诸如过程或功能的实施方式可以与允许执行至少一种功能或操作的单独的软件模块来实施。软件代码可以由以任何适当的编程语言编写的软件应用程序(或程序)来实施,软件代码可以存储在存储器160中并且由控制器180执行。
至此,己经按照其功能描述了移动终端。下面,为了简要起见,将描述诸如折叠型、直板型、摆动型、滑动型移动终端等等的各种类型的移动终端中的滑动型移动终端作为示例。因此,本发明能够应用于任何类型的移动终端,并且不限于滑动型移动终端。
如图1中所示的移动终端100可以被构造为利用经由帧或分组发送数据的诸如有线和无线通信装置以及基于卫星的通信装置来操作。
现在将参考图2描述其中根据本发明的移动终端能够操作的通信装置。
这样的通信装置可以使用不同的空中接口和/或物理层。例如,由通信装置使用的空中接口包括例如频分多址(FDMA)、时分多址(TDMA)、码分多址(CDMA)和通用移动通信装置(UMTS)(特别地,长期演进(LTE))、全球移动通信装置(GSM)等等。作为非限制性示例,下面的描述涉及CDMA通信装置,但是这样的教导同样适用于其它类型的装置。
参考图2,CDMA无线通信装置可以包括多个移动终端100、多个基站(BS)270、基站控制器(BSC)275和移动交换中心(MSC)280。MSC280被构造为与公共电话交换网络(PSTN)290形成接口。MSC280还被构造为与可以经由回程线路耦接到基站270的BSC275形成接口。回程线路可以根据若干己知的接口中的任一种来构造,所述接口包括例如E1/T1、ATM,IP、PPP、帧中继、HDSL、ADSL或xDSL。将理解的是,如图2中所示的装置可以包括多个BSC2750。
每个BS270可以服务一个或多个分区(或区域),由多向天线或指向特定方向的天线覆盖的每个分区放射状地远离BS270。或者,每个分区可以由用于分集接收的两个或更多天线覆盖。每个BS270可以被构造为支持多个频率分配,并且每个频率分配具有特定频谱(例如,1.25MHz,5MHz等等)。
分区与频率分配的交叉可以被称为CDMA信道。BS270也可以被称为基站收发器子装置(BTS)或者其它等效术语。在这样的情况下,术语"基站"可以用于笼统地表示单个BSC275和至少一个BS270。基站也可以被称为"蜂窝站"。或者,特定BS270的各分区可以被称为多个蜂窝站。
如图2中所示,广播发射器(BT)295将广播信号发送给在装置内操作的移动终端100。如图1中所示的广播接收模块111被设置在移动终端100处以接收由BT295发送的广播信号。在图2中,示出了几个全球定位装置(GPS)卫星300。卫星300帮助定位多个移动终端100中的至少一个。
在图2中,描绘了多个卫星300,但是可以理解的是,可以利用任何数目的卫星获得有用的定位信息。如图1中所示的GPS模块115通常被构造为与卫星300配合以获得想要的定位信息。替代GPS跟踪技术或者在GPS跟踪技术之外,可以使用可以跟踪移动终端的位置的其它技术。另外,至少一个GPS卫星300可以选择性地或者额外地处理卫星DMB传输。
作为无线通信装置的一个典型操作,BS270接收来自各种移动终端100的反向链路信号。移动终端100通常参与通话、消息收发和其它类型的通信。特定基站270接收的每个反向链路信号被在特定BS270内进行处理。获得的数据被转发给相关的BSC275。BSC提供通话资源分配和包括BS270之间的软切换过程的协调的移动管理功能。BSC275还将接收到的数据路由到MSC280,其提供用于与PSTN290形成接口的额外的路由服务。类似地,PSTN290与MSC280形成接口,MSC与BSC275形成接口,并且BSC275相应地控制BS270以将正向链路信号发送到移动终端100。
基于上述移动终端硬件结构、通信装置的结构,提出本发明方法各个实施例。
本发明提供一种应用的热修复装置。
参照图3所示,为本发明应用的热修复装置的第一实施例的示意图。
在第一实施例中,该应用的热修复装置包括:
获取模块10,用于获取待修复的应用当前的应用版本信息,以及所述应用当前的已有补丁版本信息。
下载模块20,用于基于所述应用版本信息以及已有补丁版本信息,从服务器下载待修复补丁包。
在本发明的实施例中,在服务器端对各个版本的应用对应版本的补丁包进行维护,可以根据对应用中出现的bug发布补丁包,即patch包,并且,即使在发布补丁包之后,再次发现新的bug,也可以再次发布新的补丁包。可以实现在服务器中对补丁包的管理,不仅能够对某个应用追加新的补丁包,还可以撤销发布过的补丁包。
本发明中的终端可以是手机、平板电脑等配置有智能操作***的智能终端,如Android***。在本实施例中,可以在应用启动时,或者在检测到应用出现bug时,执行步骤S10。获取应用当前的应用版本信息以及当前的已有补丁版本信息。其中,应用版本信息包括AppVersionName(AndroidManifest中的版本名称),即应用的版本名称,AppVersionCode(AndroidManifest中的版本号),即应用的版本号,PackageName(应用的包名称);当前的已有补丁版本信息包括PatchVersionName(补丁包版本名称)和PatchVersionCode(补丁包版本号)。
在获取到上述信息后,可以根据获取到的上述信息从服务器下载待修复补丁包。具体地,作为一种实施方式,直接根据上述应用版本信息以及已有补丁版本信息向服务器发送修复请求,服务器根据接收到的修复请求中的应用版本信息以及已有补丁版本信息判断是否有与该应用当前的版本适配的待修复的补丁包,即该待修复补丁包中包含有除了应用当前已有补丁之外,还具有新的补丁文件。若有,则直接将待修复补丁包发送给终端以供终端进行应用修复。或者,在其他的实施方式中,根据获取的应用版本信息以及所述已有补丁版本信息向所述应用服务器发送查询请求;在接收到所述服务器基于所述查询请求返回的应答信息,并基于所述应答信息判定当前具有与所述应用适配的待修复补丁包时,下载所述待修复补丁包。也就是说,在获取到应用版本信息以及已有补丁版本信息后,先向服务器发送查询请求,接收服务器发送的应答信息,根据应答信息判断服务器中是否有新的待修复补丁包,若有,则下载新的待修复补丁包。
例如,应用第一次进行修复时,下载的补丁包修复了应用当前的bug,但是随着应用的使用,又发现了其他3个bug,此时,服务器根据应用的使用情况更新了新的待修复补丁包,这个补丁包就可以修复应用目前已经出现过的5个bug,此时,应用将已经安装过的补丁版本信息以及应用版本信息发送给服务器,服务器就可以判断应用目前已经安装的补丁情况,则可以判定当前有新的3个适用于该应用的补丁,因此,可以应终端的修复请求,将上述新的待修复补丁包下发给终端,以供终端修复应用。
确定模块30,用于根据下载的待修复补丁包以及所述已有补丁版本信息,确定待修复的目标方法;
修复模块40,用于在所述应用的运行过程中,基于所述待修复补丁包以及预设的修复框架,对所述目标方法的调用进行拦截并修改处理,以实现对所述应用的修复。。
本实施例中,在下载得到待修复补丁包中,根据待修复补丁包确定该应用中需要修复的目标方法,即出现bug、导致应用的java逻辑执行到该目标方法时,就无法正常运行的文件。
可选地,关于下载得到的待修复补丁包,为了补丁包中的补丁文件能够正常的使用,需要对补丁包进行解压缩处理得到补丁文件,并且得到的补丁文件需要存放在该应用的私有文件夹中。具体地,确定模块30包括:
解压缩单元,用于对下载的所述待修复补丁包进行解压缩处理,并将解压缩得到的补丁文件存储至所述应用的私有文件夹中;
确定单元,用于基于所述私有文件中的所述补丁文件,以及所述已有补丁版本信息,确定待修复的目标方法。
在本实施例中,还需要在应用中预先配置预设的修复框架,当解压缩得到补丁文件之后,通过该补丁文件对应用进行修复时,需要基于上述修复框架,使用补丁文件对应用进行修复。
具体地,修复模块40可以包括以下单元:
拦截单元,用于在所述应用的运行过程中,对所述应用的***调用信息进行监测,以在调用所述目标方法之前,在应用的native层对所述目标方法的地址进行拦截;
修改单元,用于基于所述补丁文件以及预设的修复框架,对所述目标方法的执行逻辑进行修改,以实现对所述应用的修复。
具体地,本实施例的装置,主要通过Native Hook的方式,对目标方法进行拦截并修改,其中,Hook是一种API(Application Programming Interface,应用程序编程接口)调用的拦截机制,能够截获正常的***调用,对调用信息进行修改,从而影响调用的过程或结果。在该实施例中,在在Java逻辑执行到目标方法前在Native层对目标方法的内存地址实施拦截,以修改原始的代码逻辑,注入补丁包中的新的需要执行到的代码,以实现对目标方法中的补光的修复。例如,参照图4所示,当应用的类文件A.class中的func2方法出现Bug时,使用补丁包中的B.class中的fun2’方法来对func2方法加以替换(replace),实现对A.class的修复。
具体的操作流程如下:
获取A.class中的func2方法的数据结构的底层实现代码,例如:
使用B.class中的fun2’方法来对func2方法中地址实行拦截并替换:
通过上述方式,在应用对目标方法进行调用时,对其进行拦截,采用补丁包中的新的目标方法替换修的方法地址,实现对目标方法的修复。
本实施例提出的应用的热修复装置,获取待修复的应用当前的应用版本信息,以及该应用当前的已有补丁版本信息,基于上述获取的信息从服务器下载修复补丁包,根据下载的修复补丁包以及已有补丁版本信息,确定修复的目标方法,在应用的运行过程中,基于待修复补丁包和预设的修复框架,对上述目标方法的调用进行拦截及修改,以实现对应用的修复。本发明获取待修复的应用的修复补丁包,通过预设的修复框架对应用进行方法级的修复,在应用的运行过程中,对目标方法的调用进行拦截、修改即可,不需要下载新的安装包,修复可以立即生效,不需要重新启动应用,即可正常使用,满足了快速修复应用bug的功能,简化了修复流程,对于服务器来说,也不需要发布新的安装包即可实现应用的修复,节约了成本。
参照图5所示,基于本发明应用的热修复装置的第一实施例提出本发明应用的热修复装置的第二实施例。在本实施例中,所述装置与第一实施例的区别在于,应用的热修复装置还包括校验模块50和上报模块60,其中:
校验模块50用于:对所述待修复补丁包进行有效性校验;
上报模块60用于:若校验通过,则向所述服务器上报下载成功的状态信息;
确定模块30还用于:在所述上报模块向所述服务器上报下载成功的状态信息后,根据下载的待修复补丁包以及所述已有补丁版本信息,确定待修复的目标方法;
上报模块60还用于:若校验失败,则向所述服务器上报补丁包无效的状态信息。
在下载得到待修复补丁包后,对该补丁包进行有效性校验,例如通过md5校验的方式,以检测该补丁包是否在传输过程中被修改,以保证应用的安全性,过校验通过,则认为该补丁包为有效补丁包,向服务器上报下载成功的状态消息,若校验失败,则认为该补丁包为无效补丁包,则不再继续使用该补丁包进行修复,并向服务器上报补丁包无效的状态信息。以便于服务器端收集待修复补丁包的下载情况,便于对该应用的用户群对该应用的修复情况进行统计,进而对该应用的修复补丁包进行更好的维护。
进一步地,作为一种实施方式,上报模块60用于:将应用的修复结果上报至服务器,以供服务器对应用的修复成功率进行统计,以便于更好地对修复补丁包进行维护。此外,如果下载补丁包失败,上报模块60也可以也向服务器发送下载失败的状态信息,例如,当前的通信状态不好,无法正常下载等愿意导致下载失败。
本实施例提出的装置通过对补丁包进行有效性检验,以提高应用修复的安全性,并且及时地向服务器上报安装包的是否有效的状态信息,以便于服务端对补丁包进行更好的维护,进而提高应用修复的成功率。
本发明还提出一种应用的热修复方法。
参照图6所示,为本发明应用的热修复方法第一实施例的流程图。
在第一实施例中,该应用的热修复方法包括:
步骤S10,获取待修复的应用当前的应用版本信息,以及所述应用当前的已有补丁版本信息。
步骤S20,基于所述应用版本信息以及已有补丁版本信息,从服务器下载待修复补丁包。
在本发明的实施例中,在服务器端对各个版本的应用对应版本的补丁包进行维护,可以根据对应用中出现的bug发布补丁包,即patch包,并且,即使在发布补丁包之后,再次发现新的bug,也可以再次发布新的补丁包。可以实现在服务器中对补丁包的管理,不仅能够对某个应用追加新的补丁包,还可以撤销发布过的补丁包。
本发明中的终端可以是手机、平板电脑等配置有智能操作***的智能终端,如Android***。在本实施例中,可以在应用启动时,或者在检测到应用出现bug时,执行步骤S10。获取应用当前的应用版本信息以及当前的已有补丁版本信息。其中,应用版本信息包括AppVersionName(AndroidManifest中的版本名称),即应用的版本名称,AppVersionCode(AndroidManifest中的版本号),即应用的版本号,PackageName(应用的包名称);当前的已有补丁版本信息包括PatchVersionName(补丁包版本名称)和PatchVersionCode(补丁包版本号)。
在获取到上述信息后,可以根据获取到的上述信息从服务器下载待修复补丁包。具体地,作为一种实施方式,直接根据上述应用版本信息以及已有补丁版本信息向服务器发送修复请求,服务器根据接收到的修复请求中的应用版本信息以及已有补丁版本信息判断是否有与该应用当前的版本适配的待修复的补丁包,即该待修复补丁包中包含有除了应用当前已有补丁之外,还具有新的补丁文件。若有,则直接将待修复补丁包发送给终端以供终端进行应用修复。或者,在其他的实施方式中,根据获取的应用版本信息以及所述已有补丁版本信息向所述应用服务器发送查询请求;在接收到所述服务器基于所述查询请求返回的应答信息,并基于所述应答信息判定当前具有与所述应用适配的待修复补丁包时,下载所述待修复补丁包。也就是说,在获取到应用版本信息以及已有补丁版本信息后,先向服务器发送查询请求,接收服务器发送的应答信息,根据应答信息判断服务器中是否有新的待修复补丁包,若有,则下载新的待修复补丁包。
例如,应用第一次进行修复时,下载的补丁包修复了应用当前的bug,但是随着应用的使用,又发现了其他3个bug,此时,服务器根据应用的使用情况更新了新的待修复补丁包,这个补丁包就可以修复应用目前已经出现过的5个bug,此时,应用将已经安装过的补丁版本信息以及应用版本信息发送给服务器,服务器就可以判断应用目前已经安装的补丁情况,则可以判定当前有新的3个适用于该应用的补丁,因此,可以应终端的修复请求,将上述新的待修复补丁包下发给终端,以供终端修复应用。
步骤S30,根据下载的待修复补丁包以及所述已有补丁版本信息,确定待修复的目标方法。
步骤S40,在所述应用的运行过程中,基于所述待修复补丁包以及预设的修复框架,对所述目标方法的调用进行拦截并修改处理,以实现对所述应用的修复。
本实施例中,在下载得到待修复补丁包中,根据待修复补丁包确定该应用中需要修复的目标方法,即出现bug、导致应用的java逻辑执行到该目标方法时,就无法正常运行的文件。
可选地,关于下载得到的待修复补丁包,为了补丁包中的补丁文件能够正常的使用,需要对补丁包进行解压缩处理得到补丁文件,并且得到的补丁文件需要存放在该应用的私有文件夹中。具体地,对下载的所述待修复补丁包进行解压缩处理,并将解压缩得到的补丁文件存储至所述应用的私有文件夹中;基于所述私有文件中的所述补丁文件,以及所述已有补丁版本信息,确定待修复的目标方法。
在本实施例中,还需要在应用中预先配置预设的修复框架,当解压缩得到补丁文件之后,通过该补丁文件对应用进行修复时,需要基于上述修复框架,使用补丁文件对应用进行修复。
在确定待修复的目标方法之后,在所述应用的运行过程中,对所述应用的***调用信息进行监测,以在调用所述目标方法之前,在应用的native层对所述目标方法的地址进行拦截;基于所述补丁文件以及预设的修复框架,对所述目标方法的执行逻辑进行修改,以实现对所述应用的修复。
本实施例的方法,主要通过Native Hook的方式,对目标方法进行拦截并修改,其中,Hook是一种API(Application Programming Interface,应用程序编程接口)调用的拦截机制,能够截获正常的***调用,对调用信息进行修改,从而影响调用的过程或结果。在该实施例中,在在Java逻辑执行到目标方法前在Native层对目标方法的内存地址实施拦截,以修改原始的代码逻辑,注入补丁包中的新的需要执行到的代码,以实现对目标方法中的补光的修复。例如,参照图4所示,当应用的类文件A.class中的func2方法出现Bug时,使用补丁包中的B.class中的fun2’方法来对func2方法加以替换(replace),实现对A.class的修复。
具体的操作流程如下:
获取A.class中的func2方法的数据结构的底层实现代码,例如:
使用B.class中的fun2’方法来对func2方法中地址实行拦截并替换:
通过上述方式,在应用对目标方法进行调用时,对其进行拦截,采用补丁包中的新的目标方法替换修的方法地址,实现对目标方法的修复。
本实施例提出的应用的热修复方法,获取待修复的应用当前的应用版本信息,以及该应用当前的已有补丁版本信息,基于上述获取的信息从服务器下载修复补丁包,根据下载的修复补丁包以及已有补丁版本信息,确定修复的目标方法,在应用的运行过程中,基于待修复补丁包和预设的修复框架,对上述目标方法的调用进行拦截及修改,以实现对应用的修复。本发明获取待修复的应用的修复补丁包,通过预设的修复框架对应用进行方法级的修复,在应用的运行过程中,对目标方法的调用进行拦截、修改即可,不需要下载新的安装包,修复可以立即生效,不需要重新启动应用,即可正常使用,满足了快速修复应用bug的功能,简化了修复流程,对于服务器来说,也不需要发布新的安装包即可实现应用的修复,节约了成本。
基于本发明应用的热修复方法的第一实施例提出本发明应用的热修复方法的第二实施例。在本实施例中,所述方法与第一实施例的区别在于,在步骤S20之后、步骤S30之前,该应用的热修复方法还包括:
对所述待修复补丁包进行有效性校验;
若校验通过,则向所述服务器上报下载成功的状态信息,并执行步骤S30;
若校验失败,则向所述服务器上报补丁包无效的状态信息。
在下载得到待修复补丁包后,对该补丁包进行有效性校验,例如通过md5校验的方式,以检测该补丁包是否在传输过程中被修改,以保证应用的安全性,过校验通过,则认为该补丁包为有效补丁包,向服务器上报下载成功的状态消息,若校验失败,则认为该补丁包为无效补丁包,则不再继续使用该补丁包进行修复,并向服务器上报补丁包无效的状态信息。以便于服务器端收集待修复补丁包的下载情况,便于对该应用的用户群对该应用的修复情况进行统计,进而对该应用的修复补丁包进行更好的维护。
进一步地,作为一种实施方式,在步骤S40之后,该方法还包括步骤:
将应用的修复结果上报至服务器,以供服务器对应用的修复成功率进行统计,以便于更好地对修复补丁包进行维护。此外,在步骤S20之后,如果下载补丁包失败,也向服务器发送下载失败的状态信息,例如,当前的通信状态不好,无法正常下载等愿意导致下载失败。
本实施例提出的方法通过对补丁包进行有效性检验,以提高应用修复的安全性,并且及时地向服务器上报安装包的是否有效的状态信息,以便于服务端对补丁包进行更好的维护,进而提高应用修复的成功率。
需要说明的是,在本文中,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者装置不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者装置所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括该要素的过程、方法、物品或者装置中还存在另外的相同要素。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到上述实施例方法可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质(如ROM/RAM、磁碟、光盘)中,包括若干指令用以使得一台终端设备(可以是手机,计算机,服务器,或者网络设备等)执行本发明各个实施例所述的方法。
以上仅为本发明的优选实施例,并非因此限制本发明的专利范围,凡是利用本发明说明书及附图内容所作的等效结构或等效流程变换,或直接或间接运用在其他相关的技术领域,均同理包括在本发明的专利保护范围内。
Claims (10)
1.一种应用的热修复装置,其特征在于,所述应用的热修复装置包括:
获取模块,用于获取待修复的应用当前的应用版本信息,以及所述应用当前的已有补丁版本信息;
下载模块,用于基于所述应用版本信息以及已有补丁版本信息,从服务器下载待修复补丁包;
确定模块,用于根据下载的待修复补丁包以及所述已有补丁版本信息,确定待修复的目标方法;
修复模块,用于在所述应用的运行过程中,基于所述待修复补丁包以及预设的修复框架,对所述目标方法的调用进行拦截并修改处理,以实现对所述应用的修复。
2.根据权利要求1所述的应用的热修复装置,其特征在于,所述确定模块包括:
解压缩单元,用于对下载的所述待修复补丁包进行解压缩处理,并将解压缩得到的补丁文件存储至所述应用的私有文件夹中;
确定单元,用于基于所述私有文件中的所述补丁文件,以及所述已有补丁版本信息,确定待修复的目标方法。
3.根据权利要求2所述的应用的热修复装置,其特征在于,所述修复模块包括:
拦截单元,用于在所述应用的运行过程中,对所述应用的***调用信息进行监测,以在调用所述目标方法之前,在应用的native层对所述目标方法的地址进行拦截;
修改单元,用于基于所述补丁文件以及预设的修复框架,对所述目标方法的执行逻辑进行修改,以实现对所述应用的修复。
4.根据权利要求1至3中任一项所述的应用的热修复装置,其特征在于,所述下载模块包括:
请求单元,用于根据获取的应用版本信息以及所述已有补丁版本信息向所述应用服务器发送查询请求;
下载单元,用于在接收到所述服务器基于所述查询请求返回的应答信息,并基于所述应答信息判定当前具有与所述应用适配的待修复补丁包时,下载所述待修复补丁包。
5.根据权利要求4所述的应用的热修复装置,其特征在于,所述应用的热修复装置还包括校验模块和上报模块,其中,
所述校验模块用于:对所述待修复补丁包进行有效性校验;
所述上报模块用于:若校验通过,则向所述服务器上报下载成功的状态信息;
所述确定模块还用于:在所述上报模块向所述服务器上报下载成功的状态信息后,根据下载的待修复补丁包以及所述已有补丁版本信息,确定待修复的目标方法;
所述上报模块还用于:若校验失败,则向所述服务器上报补丁包无效的状态信息。
6.一种应用的热修复方法,其特征在于,所述应用的热修复方法包括:
获取待修复的应用当前的应用版本信息,以及所述应用当前的已有补丁版本信息;
基于所述应用版本信息以及已有补丁版本信息,从服务器下载待修复补丁包;
根据下载的待修复补丁包以及所述已有补丁版本信息,确定待修复的目标方法;
在所述应用的运行过程中,基于所述待修复补丁包以及预设的修复框架,对所述目标方法的调用进行拦截并修改处理,以实现对所述应用的修复。
7.根据权利要求6所述的应用的热修复方法,其特征在于,所述根据下载的待修复补丁包以及所述已有补丁版本信息,确定待修复的目标方法的步骤包括:
对下载的所述待修复补丁包进行解压缩处理,并将解压缩得到的补丁文件存储至所述应用的私有文件夹中;
基于所述私有文件中的所述补丁文件,以及所述已有补丁版本信息,确定待修复的目标方法。
8.根据权利要求7所述的应用的热修复方法,其特征在于,所述在所述应用的运行过程中,基于所述待修复补丁包以及预设的修复框架,对所述目标方法的调用进行拦截并修改处理,以实现对所述应用的修复的步骤包括:
在所述应用的运行过程中,对所述应用的***调用信息进行监测,以在调用所述目标方法之前,在应用的native层对所述目标方法的地址进行拦截;
基于所述补丁文件以及预设的修复框架,对所述目标方法的执行逻辑进行修改,以实现对所述应用的修复。
9.根据权利要求6至8中任一项所述的应用的热修复方法,其特征在于,所述基于所述应用版本信息以及已有补丁版本信息,从服务器下载待修复补丁包的步骤包括:
根据获取的应用版本信息以及所述已有补丁版本信息向所述应用服务器发送查询请求;
在接收到所述服务器基于所述查询请求返回的应答信息,并基于所述应答信息判定当前具有与所述应用适配的待修复补丁包时,下载所述待修复补丁包。
10.根据权利要求9所述的应用的热修复方法,其特征在于,所述在接收到所述服务器基于所述查询请求返回的应答信息,并基于所述应答信息判定当前具有与所述应用适配的待修复补丁包时,下载所述待修复补丁包的步骤之后,所述应用的热修复方法还包括步骤:
对所述待修复补丁包进行有效性校验;
若校验通过,则向所述服务器上报下载成功的状态信息,并执行所述根据下载的待修复补丁包以及所述已有补丁版本信息,确定待修复的目标方法的步骤;
若校验失败,则向所述服务器上报补丁包无效的状态信息。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710110771.XA CN106951279A (zh) | 2017-02-27 | 2017-02-27 | 应用的热修复装置及方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710110771.XA CN106951279A (zh) | 2017-02-27 | 2017-02-27 | 应用的热修复装置及方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN106951279A true CN106951279A (zh) | 2017-07-14 |
Family
ID=59467020
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201710110771.XA Withdrawn CN106951279A (zh) | 2017-02-27 | 2017-02-27 | 应用的热修复装置及方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN106951279A (zh) |
Cited By (16)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107370834A (zh) * | 2017-09-11 | 2017-11-21 | 北京小米移动软件有限公司 | 用户设备的异常调试方法、装置、设备和存储介质 |
CN107608707A (zh) * | 2017-07-31 | 2018-01-19 | 努比亚技术有限公司 | 具有热修复功能之应用检测方法、终端及可读存储介质 |
CN107729042A (zh) * | 2017-10-16 | 2018-02-23 | 东软集团股份有限公司 | 移动应用升级方法及装置、存储介质、电子设备 |
CN107992319A (zh) * | 2017-12-11 | 2018-05-04 | 北京奇虎科技有限公司 | 补丁数据更新方法及装置 |
CN108989299A (zh) * | 2018-07-03 | 2018-12-11 | 杭州安恒信息技术股份有限公司 | 一种物联网设备漏洞的监测方法与*** |
CN109344619A (zh) * | 2018-08-15 | 2019-02-15 | 北京奇艺世纪科技有限公司 | 应用程序的热修复方法和装置 |
WO2019037522A1 (zh) * | 2017-08-23 | 2019-02-28 | 北京奇虎科技有限公司 | 漏洞修复方法、漏洞修复装置及服务器 |
CN109656611A (zh) * | 2018-12-24 | 2019-04-19 | 成都四方伟业软件股份有限公司 | 三维可视化应用热更新方法、装置和终端 |
CN110297655A (zh) * | 2019-06-21 | 2019-10-01 | 百度在线网络技术(北京)有限公司 | 生成补丁包的方法、装置、设备及存储介质 |
CN110321135A (zh) * | 2019-06-28 | 2019-10-11 | 百度在线网络技术(北京)有限公司 | 热修复方法、装置、设备及计算机可读存储介质 |
CN110471693A (zh) * | 2019-08-21 | 2019-11-19 | 网易(杭州)网络有限公司 | 应用程序发布、运行方法及设备 |
CN111614628A (zh) * | 2020-04-28 | 2020-09-01 | 上海汽车集团股份有限公司 | 内核加固***及其方法、云服务端、客户端、电子设备和存储介质 |
CN114285744A (zh) * | 2020-09-17 | 2022-04-05 | 北京金山云网络技术有限公司 | 配置信息的更新方法、装置、服务器及存储介质 |
CN114443109A (zh) * | 2021-07-19 | 2022-05-06 | 荣耀终端有限公司 | 补丁修复方法、电子设备及存储介质 |
CN114461264A (zh) * | 2021-07-22 | 2022-05-10 | 荣耀终端有限公司 | 打补丁方法、生成补丁的方法及相关设备 |
CN115617379A (zh) * | 2022-12-19 | 2023-01-17 | 成都数默科技有限公司 | 基于JavaAgent的热更新修复Java应用漏洞的方法 |
Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102402438A (zh) * | 2010-09-16 | 2012-04-04 | 金蝶软件(中国)有限公司 | 一种补丁文件的自动合并方法、装置及通信终端 |
US20120297375A1 (en) * | 2011-05-20 | 2012-11-22 | Xerox Corporation | Methods and systems for providing software updates using a cloud administration system |
CN103246528A (zh) * | 2012-02-10 | 2013-08-14 | 中兴通讯股份有限公司 | 软件升级方法和装置 |
CN103473505A (zh) * | 2012-06-06 | 2013-12-25 | 腾讯科技(深圳)有限公司 | 一种软件漏洞的扫描提示方法和装置 |
CN105320554A (zh) * | 2015-12-11 | 2016-02-10 | 网易(杭州)网络有限公司 | 程序更新的方法、用于程序更新的客户端及*** |
CN105446712A (zh) * | 2014-08-08 | 2016-03-30 | 阿里巴巴集团控股有限公司 | 一种应用程序缺陷修补方法及装置 |
CN106020873A (zh) * | 2016-05-13 | 2016-10-12 | 腾讯科技(深圳)有限公司 | 补丁包加载方法及装置 |
-
2017
- 2017-02-27 CN CN201710110771.XA patent/CN106951279A/zh not_active Withdrawn
Patent Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102402438A (zh) * | 2010-09-16 | 2012-04-04 | 金蝶软件(中国)有限公司 | 一种补丁文件的自动合并方法、装置及通信终端 |
US20120297375A1 (en) * | 2011-05-20 | 2012-11-22 | Xerox Corporation | Methods and systems for providing software updates using a cloud administration system |
CN103246528A (zh) * | 2012-02-10 | 2013-08-14 | 中兴通讯股份有限公司 | 软件升级方法和装置 |
CN103473505A (zh) * | 2012-06-06 | 2013-12-25 | 腾讯科技(深圳)有限公司 | 一种软件漏洞的扫描提示方法和装置 |
CN105446712A (zh) * | 2014-08-08 | 2016-03-30 | 阿里巴巴集团控股有限公司 | 一种应用程序缺陷修补方法及装置 |
CN105320554A (zh) * | 2015-12-11 | 2016-02-10 | 网易(杭州)网络有限公司 | 程序更新的方法、用于程序更新的客户端及*** |
CN106020873A (zh) * | 2016-05-13 | 2016-10-12 | 腾讯科技(深圳)有限公司 | 补丁包加载方法及装置 |
Non-Patent Citations (1)
Title |
---|
花落惊雨辰: "最全面的Android热修复技术", 《HTTPS://BLOG.CSDN.NET/U010299178/ARTICLE/DETAILS/52031505#COMMENTBOX》 * |
Cited By (22)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107608707A (zh) * | 2017-07-31 | 2018-01-19 | 努比亚技术有限公司 | 具有热修复功能之应用检测方法、终端及可读存储介质 |
WO2019037522A1 (zh) * | 2017-08-23 | 2019-02-28 | 北京奇虎科技有限公司 | 漏洞修复方法、漏洞修复装置及服务器 |
CN107370834B (zh) * | 2017-09-11 | 2020-12-25 | 北京小米移动软件有限公司 | 用户设备的异常调试方法、装置、设备和存储介质 |
CN107370834A (zh) * | 2017-09-11 | 2017-11-21 | 北京小米移动软件有限公司 | 用户设备的异常调试方法、装置、设备和存储介质 |
CN107729042A (zh) * | 2017-10-16 | 2018-02-23 | 东软集团股份有限公司 | 移动应用升级方法及装置、存储介质、电子设备 |
CN107992319A (zh) * | 2017-12-11 | 2018-05-04 | 北京奇虎科技有限公司 | 补丁数据更新方法及装置 |
CN107992319B (zh) * | 2017-12-11 | 2021-08-20 | 北京奇虎科技有限公司 | 补丁数据更新方法及装置 |
CN108989299A (zh) * | 2018-07-03 | 2018-12-11 | 杭州安恒信息技术股份有限公司 | 一种物联网设备漏洞的监测方法与*** |
CN109344619A (zh) * | 2018-08-15 | 2019-02-15 | 北京奇艺世纪科技有限公司 | 应用程序的热修复方法和装置 |
CN109344619B (zh) * | 2018-08-15 | 2021-08-20 | 北京奇艺世纪科技有限公司 | 应用程序的热修复方法和装置 |
CN109656611A (zh) * | 2018-12-24 | 2019-04-19 | 成都四方伟业软件股份有限公司 | 三维可视化应用热更新方法、装置和终端 |
CN110297655A (zh) * | 2019-06-21 | 2019-10-01 | 百度在线网络技术(北京)有限公司 | 生成补丁包的方法、装置、设备及存储介质 |
CN110321135A (zh) * | 2019-06-28 | 2019-10-11 | 百度在线网络技术(北京)有限公司 | 热修复方法、装置、设备及计算机可读存储介质 |
CN110321135B (zh) * | 2019-06-28 | 2023-04-11 | 百度在线网络技术(北京)有限公司 | 热修复方法、装置、设备及计算机可读存储介质 |
CN110471693A (zh) * | 2019-08-21 | 2019-11-19 | 网易(杭州)网络有限公司 | 应用程序发布、运行方法及设备 |
CN111614628B (zh) * | 2020-04-28 | 2022-06-10 | 上海汽车集团股份有限公司 | 内核加固***及其方法、云服务端、客户端、电子设备和存储介质 |
CN111614628A (zh) * | 2020-04-28 | 2020-09-01 | 上海汽车集团股份有限公司 | 内核加固***及其方法、云服务端、客户端、电子设备和存储介质 |
CN114285744A (zh) * | 2020-09-17 | 2022-04-05 | 北京金山云网络技术有限公司 | 配置信息的更新方法、装置、服务器及存储介质 |
CN114443109A (zh) * | 2021-07-19 | 2022-05-06 | 荣耀终端有限公司 | 补丁修复方法、电子设备及存储介质 |
CN114443109B (zh) * | 2021-07-19 | 2023-08-22 | 荣耀终端有限公司 | 补丁修复方法、电子设备及存储介质 |
CN114461264A (zh) * | 2021-07-22 | 2022-05-10 | 荣耀终端有限公司 | 打补丁方法、生成补丁的方法及相关设备 |
CN115617379A (zh) * | 2022-12-19 | 2023-01-17 | 成都数默科技有限公司 | 基于JavaAgent的热更新修复Java应用漏洞的方法 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN106951279A (zh) | 应用的热修复装置及方法 | |
CN107239302A (zh) | 一种固件升级方法、终端和服务器 | |
CN105915623A (zh) | 应用安装包处理装置及方法 | |
CN106506548A (zh) | 跨站脚本攻击的防御装置及方法 | |
CN105894280B (zh) | 一种隐藏支付码的移动终端和方法 | |
CN105263195B (zh) | 数据传输装置及方法 | |
CN105740008A (zh) | 禁止应用程序链式启动的装置和方法 | |
CN106095464B (zh) | 一种应用程序无痕运行的方法及装置 | |
CN106453652A (zh) | 日志文件上传方法及*** | |
CN106791123A (zh) | 用户终端及应用处理方法 | |
CN105204992A (zh) | 测试脚本生成装置及方法 | |
CN106559571A (zh) | 参数配置装置、移动终端及方法 | |
CN106102086A (zh) | 数据处理装置和方法 | |
CN110109528A (zh) | 应用程序的管控方法、移动终端及计算机可读存储介质 | |
CN105573916B (zh) | 故障检测方法及移动终端 | |
CN106600278A (zh) | 移动支付方法及装置 | |
CN106502526A (zh) | 一种后台管理方法及终端 | |
CN106886713A (zh) | 一种终端、服务器和安装软件的风险检测方法 | |
CN106162651A (zh) | 一种识别伪基站的方法和装置 | |
CN105808049A (zh) | 一种实现移动终端的控制方法和装置 | |
CN106547674A (zh) | 一种指纹录入方法、装置及终端 | |
CN106502714A (zh) | 一种应用程序管理方法、移动终端、服务器及*** | |
CN106548339A (zh) | 一种安全支付方法及设备 | |
CN106529274A (zh) | 终端及其信息安全保护方法 | |
CN106209417A (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 | ||
WW01 | Invention patent application withdrawn after publication |
Application publication date: 20170714 |
|
WW01 | Invention patent application withdrawn after publication |