CN104407889B - 应用程序的修复方法和装置 - Google Patents
应用程序的修复方法和装置 Download PDFInfo
- Publication number
- CN104407889B CN104407889B CN201410642030.2A CN201410642030A CN104407889B CN 104407889 B CN104407889 B CN 104407889B CN 201410642030 A CN201410642030 A CN 201410642030A CN 104407889 B CN104407889 B CN 104407889B
- Authority
- CN
- China
- Prior art keywords
- unit
- script
- application program
- plug
- script plug
- 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.)
- Active
Links
Abstract
本发明提出一种应用程序的修复方法和装置,该应用程序的修复方法包括安装脚本插件,所述脚本插件能够提供修复功能,且所述脚本插件的编写语言与要修复的应用程序的编写语言具有互通性;运行所述脚本插件,使得所述脚本插件利用所述脚本插件与所述应用程序之间的语言互通性,调用所述应用程序的运行环境修复所述应用程序。该方法能够简便的实现应用程序的修复。
Description
技术领域
本发明涉及信息技术领域,尤其涉及一种应用程序的修复方法和装置。
背景技术
目前很多移动操作系统出于自己生态系统的考虑,在应用程序的审核方面有着极为严格的限制,尤其不允许使用动态链接库的方式实现代码的共享和下载。这虽然给操作系统生产商带来了足够的好处,但是却不利于程序员的生产和消费者的使用。一个产品的更新和修复只能通过发布新版本,审核,上线这一系列操作之后才能跟消费者见面,纵使应用出现极端缺陷,消费者和开发者也束手无策等审核。审核的周期更是无法提前评估,波动性和随机性比较大。这导致应用程序的修复非常不方便。
发明内容
本发明旨在至少在一定程度上解决相关技术中的技术问题之一。
为此,本发明的一个目的在于提出一种应用程序的修复方法,该方法可以简便的实现应用程序的修复。
本发明的另一个目的在于提出一种应用程序的修复装置。
为达到上述目的,本发明第一方面实施例提出的应用程序的修复方法,包括:安装脚本插件,所述脚本插件能够提供修复功能,且所述脚本插件的编写语言与要修复的应用程序的编写语言具有互通性;运行所述脚本插件,使得所述脚本插件利用所述脚本插件与所述应用程序之间的语言互通性,调用所述应用程序的运行环境修复所述应用程序
本发明第一方面实施例提出的应用程序的修复方法,通过脚本插件实现应用程序的修复,脚本插件具有与要修复的应用程序的语言互通性,可以在安装并运行该脚本插件后实现应用程序的修复,从而简便的实现应用程序的修复。
为达到上述目的,本发明第二方面实施例提出的应用程序的修复装置,包括:安装模块,用于安装脚本插件,所述脚本插件能够提供修复功能,且所述脚本插件的编写语言与要修复的应用程序的编写语言具有互通性;运行模块,用于运行所述脚本插件,使得所述脚本插件利用所述脚本插件与所述应用程序之间的语言互通性,调用所述应用程序的运行环境修复所述应用程序。
本发明第二方面实施例提出的应用程序的修复装置,通过脚本插件实现应用程序的修复,脚本插件具有与要修复的应用程序的语言互通性,可以在安装并运行该脚本插件后实现应用程序的修复,从而简便的实现应用程序的修复。
本发明附加的方面和优点将在下面的描述中部分给出,部分将从下面的描述中变得明显,或通过本发明的实践了解到。
附图说明
本发明上述的和/或附加的方面和优点从下面结合附图对实施例的描述中将变得明显和容易理解,其中:
图1是本发明一实施例提出的应用程序的修复方法的流程示意图;
图2是本发明另一实施例提出的应用程序的修复方法的流程示意图;
图3是本发明另一实施例提出的应用程序的修复装置的结构示意图;
图4是本发明另一实施例提出的应用程序的修复装置的结构示意图。
具体实施方式
下面详细描述本发明的实施例,所述实施例的示例在附图中示出,其中自始至终相同或类似的标号表示相同或类似的元件或具有相同或类似功能的元件。下面通过参考附图描述的实施例是示例性的,仅用于解释本发明,而不能理解为对本发明的限制。相反,本发明的实施例包括落入所附加权利要求书的精神和内涵范围内的所有变化、修改和等同物。
图1是本发明一实施例提出的应用程序的修复方法的流程示意图,该方法包括:
S11:安装脚本插件,所述脚本插件能够提供修复功能,且所述脚本插件的编写语言与要修复的应用程序的编写语言具有互通性。
其中,应用程序可以是指移动设备上的应用程序。
脚本插件可以包括一个或者多个脚本文件。
脚本插件可以初始设置在客户端本地,应用程序从本地安装脚本插件;或者,
脚本插件也可以初始设置在服务端,应用程序从服务端下载脚本插件后安装该脚本插件。
脚本插件是能够提供修复功能的插件,例如,当启动应用程序出现异常后,可以用该脚本插件进行修复。
脚本插件可以是需要修复的应用程序的开发者编写的。
脚本插件是使用指定脚本编写的,指定脚本的语言与要修复的应用程序的编写语言具有互通性,例如,要修复的应用程序的编写语言是C语言,脚本插件的编写语言可以是LUA语言等。
S12:运行所述脚本插件,使得所述脚本插件利用所述脚本插件与所述应用程序之间的语言互通性,调用所述应用程序的运行环境修复所述应用程序。
其中,要修复的应用程序中可以预先设置与脚本插件对应的脚本解释器,通过脚本解释器可以解释脚本插件,从而正确运行脚本插件。
例如,将脚本插件安装在要修复的应用程序的沙盒中,在运行要修复的应用程序后,要修复的应用程序从沙盒中加载脚本插件,并调用脚本解释器解释并运行脚本插件。
运行脚本插件后,脚本插件可以利用与要修复的应用程序的语言互通性,调用要修复的应用程序的运行环境(runtime),达到修复应用程序的目的。
本实施例通过脚本插件实现应用程序的修复,脚本插件具有与要修复的应用程序的语言互通性,可以在安装并运行该脚本插件后实现应用程序的修复,从而简便的实现应用程序的修复。
图2是本发明另一实施例提出的应用程序的修复方法的流程示意图,该方法包括:
S21:在需要修复所述应用程序时,采用指定脚本生成所述脚本插件,所述指定脚本的语言与所述应用程序的编写语言具有互通性。
指定脚本是具有与要修复的应用程序的本地语言具有互通性的语言的脚本,例如,要修复的应用程序的本地语言是C语言,指定脚本的语言可以是LUA语言等。
Lua是一个小巧的脚本语言。该语言的设计目的是为了嵌入应用程序中,从而为应用程序提供灵活的扩展和定制功能。Lua脚本可以很容易的被C/C++代码调用,也可以反过来调用C/C++的函数,这使得Lua在应用程序中可以被广泛应用。不仅仅作为扩展脚本,也可以作为普通的配置文件,代替XML,ini等文件格式,并且更容易理解和维护。
S22:在所述要修复的应用程序内设置与所述指定脚本对应的脚本解释器。
脚本解释器可以用于脚本文本的解释及运行。
脚本通常具有跨平台的特性,但在特点的平台下需要安装特定版本的脚本解释器以支持脚本的运行。
S23:从本地或服务端获取脚本插件,并将该脚本插件安装在要修复的应用程序的沙盒中。
其中,脚本插件可以初始设置在客户端本地或者设置在服务端,客户端从初始设置的本地或者服务端获取脚本插件。
在获取脚本插件后,可以将脚本插件安装在要修复的应用程序的沙盒内。沙盒是一种可以应用程序的保护机制。
S24:运行要修复的应用程序,要修复的应用程序从本地加载脚本插件,并调用脚本解释器运行脚本插件。
例如,要修复的应用程序在运行后,可以从沙盒中加载脚本插件,通过调用脚本解释器,保证脚本插件的正确运行。
S25:脚本插件在运行后,利用脚本插件与要修复的应用程序之间的语言互通性,调用要修复的应用程序的本地语言的运行环境,修复要修复的应用程序。
由于脚本插件与要修复的应用程序具有语言互通性,因此,脚本插件运行时可以调用要修复的应用程序的运行环境(runtime),通过调用本地语言的运行环境,可以对要修复的应用程序的功能进行修改,实现应用程序的修复。
通过脚本插件修复应用程序的功能后,用户可以观察到应用程序的功能变化,实现应用程序的修复。
另外,用户重启应用程序后,可以重新从本地加载脚本插件并运行。
另外,当需要修复应用程序的另外缺陷后,可以重新安装新的脚本插件并运行该脚本插件,实现与新的脚本插件对应的功能的修复。
本实施例中,采用脚本插件实现功能修复,可以利用插件的灵活性,提升了修复响应速度;本实施例通过脚本插件实现功能修复,不依赖版本发布,大大加快了开发进度;本实施例的脚本插件可以适用于所有支持脚本的应用程序,可以在所有支持脚本的应用程序上线后都能进行修复,不会出现新版本修复而旧版本未修复的情况。
图3是本发明另一实施例提出的应用程序的修复装置的结构示意图,该装置30包括:安装模块31和运行模块32。
安装模块31用于安装脚本插件,所述脚本插件能够提供修复功能,且所述脚本插件的编写语言与要修复的应用程序的编写语言具有互通性;
其中,应用程序可以是指移动设备上的应用程序。
脚本插件可以包括一个或者多个脚本文件。
脚本插件是能够提供修复功能的插件,例如,当启动应用程序出现异常后,可以用该脚本插件进行修复。
脚本插件可以是需要修复的应用程序的开发者编写的。
脚本插件是使用指定脚本编写的,指定脚本的语言与要修复的应用程序的编写语言具有互通性,例如,要修复的应用程序的编写语言是C语言,脚本插件的编写语言可以是LUA语言等。
可选的,所述安装模块31具体用于:
从本地安装脚本插件;或者,
从服务端下载后安装脚本插件。
运行模块32用于运行所述脚本插件,使得所述脚本插件利用所述脚本插件与所述应用程序之间的语言互通性,调用所述应用程序的运行环境修复所述应用程序。
其中,要修复的应用程序中可以预先设置与脚本插件对应的脚本解释器,通过脚本解释器可以解释脚本插件,从而正确运行脚本插件。
例如,将脚本插件安装在要修复的应用程序的沙盒中,在运行要修复的应用程序后,要修复的应用程序从沙盒中加载脚本插件,并调用脚本解释器解释并运行脚本插件。
运行脚本插件后,脚本插件可以利用与要修复的应用程序的语言互通性,调用要修复的应用程序的运行环境(runtime),达到修复应用程序的目的。
另一实施例中,参见图4,该装置30还包括:
生成模块33,用于在需要修复所述应用程序时,采用指定脚本生成所述脚本插件,所述指定脚本的语言与所述应用程序的编写语言具有互通性。
指定脚本是具有与要修复的应用程序的本地语言具有互通性的语言的脚本,例如,要修复的应用程序的本地语言是C语言,指定脚本的语言可以是LUA语言等。
Lua是一个小巧的脚本语言。该语言的设计目的是为了嵌入应用程序中,从而为应用程序提供灵活的扩展和定制功能。Lua脚本可以很容易的被C/C++代码调用,也可以反过来调用C/C++的函数,这使得Lua在应用程序中可以被广泛应用。不仅仅作为扩展脚本,也可以作为普通的配置文件,代替XML,ini等文件格式,并且更容易理解和维护。
可选的,该装置30还包括:
设置模块34,用于在所述应用程序内设置与所述指定脚本对应的脚本解释器。
脚本解释器可以用于脚本文本的解释及运行。
脚本通常具有跨平台的特性,但在特点的平台下需要安装特定版本的脚本解释器以支持脚本的运行。
相应的,所述运行模块32具体用于:
加载所述脚本插件,并调用所述脚本解释器,解释运行所述脚本插件。
例如,要修复的应用程序在运行后,可以从沙盒中加载脚本插件,通过调用脚本解释器,保证脚本插件的正确运行。
由于脚本插件与要修复的应用程序具有语言互通性,因此,脚本插件运行时可以调用要修复的应用程序的运行环境(runtime),通过调用本地语言的运行环境,可以对要修复的应用程序的功能进行修改,实现应用程序的修复。
通过脚本插件修复应用程序的功能后,用户可以观察到应用程序的功能变化,实现应用程序的修复。
另外,用户重启应用程序后,可以重新从本地加载脚本插件并运行。
另外,当需要修复应用程序的另外缺陷后,可以重新安装新的脚本插件并运行该脚本插件,实现与新的脚本插件对应的功能的修复。
本实施例通过脚本插件实现应用程序的修复,脚本插件具有与要修复的应用程序的语言互通性,可以在安装并运行该脚本插件后实现应用程序的修复,从而简便的实现应用程序的修复。
需要说明的是,在本发明的描述中,术语“第一”、“第二”等仅用于描述目的,而不能理解为指示或暗示相对重要性。此外,在本发明的描述中,除非另有说明,“多个”的含义是两个或两个以上。
流程图中或在此以其他方式描述的任何过程或方法描述可以被理解为,表示包括一个或更多个用于实现特定逻辑功能或过程的步骤的可执行指令的代码的模块、片段或部分,并且本发明的优选实施方式的范围包括另外的实现,其中可以不按所示出或讨论的顺序,包括根据所涉及的功能按基本同时的方式或按相反的顺序,来执行功能,这应被本发明的实施例所属技术领域的技术人员所理解。
应当理解,本发明的各部分可以用硬件、软件、固件或它们的组合来实现。在上述实施方式中,多个步骤或方法可以用存储在存储器中且由合适的指令执行系统执行的软件或固件来实现。例如,如果用硬件来实现,和在另一实施方式中一样,可用本领域公知的下列技术中的任一项或他们的组合来实现:具有用于对数据信号实现逻辑功能的逻辑门电路的离散逻辑电路,具有合适的组合逻辑门电路的专用集成电路,可编程门阵列(PGA),现场可编程门阵列(FPGA)等。
本技术领域的普通技术人员可以理解实现上述实施例方法携带的全部或部分步骤是可以通过程序来指令相关的硬件完成,所述的程序可以存储于一种计算机可读存储介质中,该程序在执行时,包括方法实施例的步骤之一或其组合。
此外,在本发明各个实施例中的各功能单元可以集成在一个处理模块中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个模块中。上述集成的模块既可以采用硬件的形式实现,也可以采用软件功能模块的形式实现。所述集成的模块如果以软件功能模块的形式实现并作为独立的产品销售或使用时,也可以存储在一个计算机可读取存储介质中。
上述提到的存储介质可以是只读存储器,磁盘或光盘等。
在本说明书的描述中,参考术语“一个实施例”、“一些实施例”、“示例”、“具体示例”、或“一些示例”等的描述意指结合该实施例或示例描述的具体特征、结构、材料或者特点包含于本发明的至少一个实施例或示例中。在本说明书中,对上述术语的示意性表述不一定指的是相同的实施例或示例。而且,描述的具体特征、结构、材料或者特点可以在任何的一个或多个实施例或示例中以合适的方式结合。
尽管上面已经示出和描述了本发明的实施例,可以理解的是,上述实施例是示例性的,不能理解为对本发明的限制,本领域的普通技术人员在本发明的范围内可以对上述实施例进行变化、修改、替换和变型。
Claims (4)
1.一种应用程序的修复方法,其特征在于,包括:
安装脚本插件,所述脚本插件能够提供修复功能,且所述脚本插件的编写语言与要修复的应用程序的编写语言具有互通性;
运行所述脚本插件,使得所述脚本插件利用所述脚本插件与所述应用程序之间的语言互通性,调用所述应用程序的运行环境修复所述应用程序;
其中,所述安装脚本插件之前,所述方法还包括:
在需要修复所述应用程序时,采用指定脚本生成所述脚本插件,所述指定脚本的语言与所述应用程序的编写语言具有互通性;
所述安装脚本插件之前,所述方法还包括:
在所述应用程序内设置与所述指定脚本对应的脚本解释器;
所述运行所述脚本插件,包括:
加载所述脚本插件,并调用所述脚本解释器,解释运行所述脚本插件。
2.根据权利要求1所述的方法,其特征在于,所述安装脚本插件,包括:
从本地安装脚本插件;或者,从服务端下载后安装脚本插件。
3.一种应用程序的修复装置,其特征在于,包括:
安装模块,用于安装脚本插件,所述脚本插件能够提供修复功能,且所述脚本插件的编写语言与要修复的应用程序的编写语言具有互通性;
运行模块,用于运行所述脚本插件,使得所述脚本插件利用所述脚本插件与所述应用程序之间的语言互通性,调用所述应用程序的运行环境修复所述应用程序;
所述应用程序的修复装置还包括:
生成模块,用于在需要修复所述应用程序时,采用指定脚本生成所述脚本插件,所述指定脚本的语言与所述应用程序的编写语言具有互通性;
设置模块,用于在所述应用程序内设置与所述指定脚本对应的脚本解释器;
其中,所述运行模块具体用于:加载所述脚本插件,并调用所述脚本解释器,解释运行所述脚本插件。
4.根据权利要求3所述的装置,其特征在于,所述安装模块具体用于:
从本地安装脚本插件;或者,从服务端下载后安装脚本插件。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201410642030.2A CN104407889B (zh) | 2014-11-11 | 2014-11-11 | 应用程序的修复方法和装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201410642030.2A CN104407889B (zh) | 2014-11-11 | 2014-11-11 | 应用程序的修复方法和装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN104407889A CN104407889A (zh) | 2015-03-11 |
CN104407889B true CN104407889B (zh) | 2018-09-07 |
Family
ID=52645522
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201410642030.2A Active CN104407889B (zh) | 2014-11-11 | 2014-11-11 | 应用程序的修复方法和装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN104407889B (zh) |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104866307B (zh) * | 2015-05-14 | 2018-04-27 | 百度在线网络技术(北京)有限公司 | 一种应用程序的修复方法和装置 |
CN109408114B (zh) * | 2018-08-20 | 2021-06-22 | 哈尔滨工业大学 | 一种程序错误自动修正方法、装置、电子设备及存储介质 |
Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103246533A (zh) * | 2013-04-11 | 2013-08-14 | 北京小米科技有限责任公司 | 一种在通讯录中添加插件的方法、装置和设备 |
Family Cites Families (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20060179484A1 (en) * | 2005-02-09 | 2006-08-10 | Scrimsher John P | Remediating effects of an undesired application |
CN103995715B (zh) * | 2014-05-06 | 2017-11-17 | 百度在线网络技术(北京)有限公司 | 应用程序的修复方法、装置及服务器 |
CN104021053B (zh) * | 2014-06-13 | 2017-02-08 | 广州金山网络科技有限公司 | 一种修复、备份应用程序的方法、移动终端及网络服务器 |
-
2014
- 2014-11-11 CN CN201410642030.2A patent/CN104407889B/zh active Active
Patent Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103246533A (zh) * | 2013-04-11 | 2013-08-14 | 北京小米科技有限责任公司 | 一种在通讯录中添加插件的方法、装置和设备 |
Also Published As
Publication number | Publication date |
---|---|
CN104407889A (zh) | 2015-03-11 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN105893094B (zh) | 应用程序插件化的实现方法和装置 | |
CN104391700A (zh) | 应用程序功能扩展方法和装置 | |
US11080066B2 (en) | Method for starting embedded apparatus, and apparatus | |
US20160321067A1 (en) | Infrastructure for hosting and publishing software packages | |
US7290208B2 (en) | Executing a dialog using one or more XML components and one or more embedded scripts | |
CN105550007B (zh) | 用于移动终端的控制方法、装置和移动终端 | |
US20160019073A1 (en) | Dynamically Loaded Plugin Architecture | |
US20110041124A1 (en) | Version Management System | |
CN104239037A (zh) | 一种业务功能可重构的软件框架 | |
WO2007109717A3 (en) | Apparatus and method for live loading of version upgrades in a process control environment | |
US9158521B2 (en) | Automatic provisioning of a software platform to a device ecosystem | |
TWI649694B (zh) | 一種安卓動態框架及其方法 | |
CN103488466A (zh) | 用于执行应用程序的方法和装置 | |
CN104407889B (zh) | 应用程序的修复方法和装置 | |
CN102156654A (zh) | 一种软件安装包的安装方法及系统 | |
US20150067668A1 (en) | Installation engine and package format | |
CN104360925A (zh) | 统计应用程序使用频率的方法及装置 | |
CN103995696B (zh) | 移动终端的程序包定制系统及定制方法 | |
CN103577196A (zh) | 实现应用程序隐藏的方法及装置 | |
CN104461623A (zh) | 应用程序的运行方法和装置 | |
CN111158743B (zh) | 大数据运维管理平台 | |
CN113961259A (zh) | 启动引导程序加载方法、装置、系统、电子设备及介质 | |
CN108829406B (zh) | 安装包打包方法、装置、电子设备及存储介质 | |
CN105740408A (zh) | 调用hadoop集群的方法和装置 | |
AU2016378425A1 (en) | Application program running method and apparatus |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |