一种用于对目标应用进行动态定制的设备及方法与流程

文档序号:12123173阅读:233来源:国知局
一种用于对目标应用进行动态定制的设备及方法与流程

本发明涉及应用定制领域,并且更具体地,涉及一种用于对目标应用进行动态定制的设备、方法以及移动终端。



背景技术:

目前,随着移动终端的使用日益频繁,用户对于移动终端上的各种类型应用的更新速度以及定制显示出了极大地需求。另一方面,各个提供商也加快了对于各种类型的应用进行开发和更新的速度,以满足用户对于应用的新颖性、安全性、可用性、便利性以及适配性的需求。然而,即使各个提供商加快了对于应用的开发和更新速度,但是仍然无法达到发现错误立即更新版本的程度。另一方面,部分错误可能只涉及部分类型的移动终端,而其它类型的移动终端运行相同的操作系统以及系统应用不会出现问题。

此外,在应用仅存在较小缺陷的情况下,立即更新版本的方式也是不合适的。在这种情况下,部分用户可能会面临系统安全漏洞、可用性降低、便利性缺失以及无法适配最新应用的情况。或者,大部分用户都将面临应用问题所带来的体验降低的情况。

部分用户对于修改提供商所开发的应用以满足定制需求显示出了很大的兴趣。这类用户通常需要对已有的应用进行修改,从而实现部分功能的修改、替代或删除。另一方面,这种定制也是源自提供商对于应用开发的不同理解。例如,提供商固执地将某些应用的执行过程设置为固定的顺序,而没有考虑部分用户希望以不同顺序来执行应用的需求。

为此,当新的应用发布且发现存在问题或无法满足用户需求时,需要对应用进行动态定制而无需等待下一次版本更新。



技术实现要素:

为了解决上述问题,本发明提供了一种用于对目标应用进行动态定制的设备,所述设备包括:

运行单元,用于为一个或多个应用提供运行环境,并且对所述一个或多个应用的运行进行监控,以确定是否存在能够触发适配单元对所述一个或多个应用中的目标应用进行动态定制的事件;

判断单元,当确定存在能够触发适配单元进行动态定制的事件时,判断所述目标应用是否需要基于所述事件进行动态定制,以及如果所述目标应用需要基于所述事件进行动态定制,则将所述事件推送给适配单元;

适配单元,根据所述事件确定所述目标应用中需要动态定制的修改内容;以及

动态定制单元,根据预先存储的动态定制内容来替代所述修改内容,以使得运行单元继续运行所述目标应用。

优选地,所述一个或多个应用中的每个应用为:微信应用、通讯录应用、浏览器应用、拨号应用、相机应用、游戏应用、学习应用或工具应用。

优选地,其中所述目标应用包括:内容存在缺陷的应用、用户希望修改的应用和/或运行出现故障的应用。

优选地,所述事件包括:目标应用中特定功能的启动、目标应用中特定部分的运行和/或目标应用特定参数的赋值。

优选地,所述修改内容为:目标应用中存在缺陷的内容、目标应用中运行故障的内容或目标应用中用户希望修改的内容。

优选地,所述根据所述事件确定所述目标应用中需要动态定制的修改内容包括:根据目标应用的标识确定与所述目标内容相对应的一个或多个修改内容,并且从一个或多个修改内容选择与所述事件相对应的修改内容。

优选地,还包括存储单元,用于预先存储与目标应用相对应的一个或多个动态定制内容。

优选地,其中对于需要动态定制的目标应用,其修改内容与动态定制内容一一对应。

优选地,所述根据预先存储的动态定制内容来替代所述修改内容包括:以补丁或插件的形式将所述预先存储的动态定制内容替代所述修改内容。

优选地,所述运行单元继续运行所述目标应用包括:所述运行单元在所述事件处,运行所述预先存储的动态定制内容而不是所述修改内容。

根据本发明的另一方面,提供一种移动终端,包括或用于执行如上所述的用于对目标应用进行动态定制的设备。

根据本发明的另一方面,提供一种用于对目标应用进行动态定制的方法,所述方法包括:

为一个或多个应用提供运行环境,并且对所述一个或多个应用的运行进行监控,以确定是否存在能够触发对所述一个或多个应用中的目标应用进行动态定制的事件;

当确定存在能够触发动态定制的事件时,判断所述目标应用是否需要基于所述事件进行动态定制;

如果所述目标应用需要基于所述事件进行动态定制,则根据所述事件确定所述目标应用中需要动态定制的修改内容;以及

根据预先存储的动态定制内容来替代所述修改内容,以使得继续运行所述目标应用。

优选地,所述一个或多个应用中的每个应用为:微信应用、通讯录应用、浏览器应用、拨号应用、相机应用、游戏应用、学习应用或工具应用。

优选地,其中所述目标应用包括:内容存在缺陷的应用、用户希望修改的应用和/或运行出现故障的应用。

优选地,所述事件包括:目标应用中特定功能的启动、目标应用中特定部分的运行和/或目标应用特定参数的赋值。

优选地,所述修改内容为:目标应用中存在缺陷的内容、目标应用中运行故障的内容或目标应用中用户希望修改的内容。

优选地,所述根据所述事件确定所述目标应用中需要动态定制的修改内容包括:根据目标应用的标识确定与所述目标内容相对应的一个或多个修改内容,并且从一个或多个修改内容选择与所述事件相对应的修改内容。

优选地,还包括预先存储与目标应用相对应的一个或多个动态定制内容。

优选地,其中对于需要动态定制的目标应用,其修改内容与动态定制内容一一对应。

优选地,所述根据预先存储的动态定制内容来替代所述修改内容包括:以补丁或插件的形式将所述预先存储的动态定制内容替代所述修改内容。

优选地,所述继续运行所述目标应用包括:在所述事件处,运行所述预先存储的动态定制内容而不是所述修改内容。

附图说明

通过参考下面的附图,可以更为完整地理解本发明的示例性实施方式:

图1为根据本发明优选实施方式的对目标应用进行动态定制的设备的硬件结构示意图;

图2为根据本发明优选实施方式的动态定制设备的存储结构示意图;

图3为根据本发明优选实施方式的用于对目标应用进行动态定制的设备的结构示意图;

图4为根据本发明优选实施方式的用于对目标应用进行动态定制的实例示意图;以及

图5为根据本发明优选实施方式的用于对目标应用进行动态定制的方法的流程图。

具体实施方式

现在参考附图介绍本发明的示例性实施方式,然而,本发明可以用许多不同的形式来实施,并且不局限于此处描述的实施方式,提供这些实施方式是为了详尽地且完全地公开本发明,并且向所属技术领域的技术人员充分传达本发明的范围。对于表示在附图中的示例性实施方式中的术语并不是对本发明的限定。在附图中,相同的单元/元件使用相同的附图标记。

除非另有说明,此处使用的术语(包括科技术语)对所属技术领域的技术人员具有通常的理解含义。另外,可以理解的是,以通常使用的词典限定的术语,应当被理解为与其相关领域的语境具有一致的含义,而不应该被理解为理想化的或过于正式的意义。

图1为根据本发明优选实施方式的对目标应用进行动态定制的设备100的硬件结构示意图。设备100能够根据预先设置的动态定制内容来对用户终端内各种类型的应用进行动态定制。动态定制可以包括对应用漏洞和问题的修改,并且还可以包括对应用进行个性化修改。动态定制的一种应用是修复应用漏洞的代码、插件或组件。动态定制是一种快速且低成本修复应用版本缺陷或对应用进行个性化修改的手段。应用的动态定制部分不会作为常规补丁随系统自动更新,一般情况下由云端服务器通过网络或者其他途径来通知用户有关动态定制部分的消息。用户可以在应用供应商的网站上免费下载动态定制部分,或应用供应商通过云端服务器将动态定制部分推送给用户。和升级应用版本相比,动态定制的主要优势是不会使设备当前正在运行的业务中断,即在不重启设备的情况下,可以对设备当前应用版本的缺陷进行修复或对应用进行个性化修改。

此外,由于应用版本的升级通常不会很频繁,即两个相邻版本之间通常需要间隔一个月以上,在这种情况下,用户无法通过软件版本更新来及时解决目前出现的问题。为此,动态定制能够解决应用版本更新后较短时间内(即,应用的下一更新版本发布之前)出现的故障。此外,对于应用提供商不再更新的应用(例如,windows XP系统),在某些情况下,用户需要对应用进行更新或修改。动态定制还可以实现对应用提供商不再更新的应用进行更新、修改或定制,从而满足用户对于应用更新的需要。此外,在用户需要对应用进行定制的情况中,动态定制通过修复的方式来实现对应用的修改从而满足用户的定制需求。

如图1所示,设备100包括:处理器101,通信总线102,通信接口103、I/O接口104和存储器105。优选地,处理器101可以是一个通用中央处理器(CPU),微处理器,特定应用集成电路(application-specific integrated circuit,ASIC),或一个或多个用于控制本发明方案程序执行的集成电路。

优选地,通信总线102可包括一通路,在上述组件之间传送信息。通信接口104,使用任何收发器一类的装置,用于与其他设备或通信网络通信,如以太网,无线接入网(RAN),无线局域网(Wireless LocalArea Networks,WLAN)等。

优选地,存储器105可以是只读存储器(read-only memory,ROM)或可存储静态信息和指令的其他类型的静态存储设备,随机存取存储器(random access memory,RAM)或者可存储信息和指令的其他类型的动态存储设备,也可以是电可擦可编程只读存储器(Electrically Erasable Programmable Read-Only Memory,EEPROM)、只读光盘(Compact Disc Read-Only Memory,CD-ROM)或其他光盘存储、光碟存储(包括压缩光碟、激光碟、光碟、数字通用光碟、蓝光光碟等)、磁盘存储介质或者其他磁存储设备、或者能够用于携带或存储具有指令或数据结构形式的期望的程序代码并能够由计算机存取的任何其他介质,但不限于此。存储器可以是独立存在,通过总线与处理器相连接。存储器也可以和处理器集成在一起。

其中,存储器105用于存储执行本发明方案的应用程序代码,并由处理器101来控制执行。所述处理器101用于执行存储器105中存储的应用的代码。在具体实施方式中,处理器101可以包括一个或多个CPU,每个CPU可以是一个单核(single-core)处理器,也可以是一个多核(multi-Core)处理器。这里的处理器可以指一个或多个设备、电路、和/或用于处理数据(例如计算机程序指令)的处理核。

在具体实现中,作为一种实施方式,设备100还可以包括输入/输出(I/O)接口104。例如,输出设备可以是液晶显示器(liquid crystal display,LCD),发光二级管(light emitting diode,LED)显示设备,阴极射线管(cathode ray tube,CRT)显示设备,或投影仪(projector)等。输入设备可以是鼠标、键盘、触摸屏设备或传感设备等。优选地,设备100可以是一个通用计算机设备或者是一个专用计算机设备。在具体实现中,设备100可以是台式机、便携式电脑、网络服务器、掌上电脑(Personal Digital Assistant,PDA)、移动手机、平板电脑、无线终端设备、通信设备、嵌入式设备等设备。本发明实施方式不限定设备的类型。

优选地,设备100用于为一个或多个应用提供运行环境,并且对所述一个或多个应用的运行进行监控,以确定是否存在能够触发适配单元对所述一个或多个应用中的目标应用进行动态定制的事件。通常,设备100上的应用可以用于订购商品、预定火车票、预定飞机票、预定餐馆或建立约车业务等。为此,设备100上可以运行购物应用、订票应用、订餐应用和约车应用。此外,设备100上运行的应用还可以是微信应用、通讯录应用、浏览器应用、拨号应用、相机应用、游戏应用、学习应用或工具应用等。

优选地,为了能够对应用进行动态定制,设备100要确定何时进行介入以及对应用中的哪些部分进行定制。为此,设备100需要对其上运行的一个或多个应用进行实时监控,以确定进行动态定制的时机。通常,在运行中,一个或多个应用中的特定应用会出现进行动态定制的时机。这种时机的出现通常是以特定事件的触发为基础。例如,设备100确定一个或多个应用中的购物应用(目标应用)在运行时触发了进行动态定制的事件,并且这种动态定制是针对购物应用的定制。这种定制例如是对特定种类物品的比价功能。优选地,目标应用可以是内容存在缺陷的应用、用户希望修改的应用和/或运行出现故障的应用。通常,当应用的内容存在缺陷时,用户需要对缺陷进行修复。当一些用户希望对应用进行定制以增加或修改特定功能时,也需要对应用进行修改。或者,更为严重的情况是,应用的运行已经出现故障并且重新启动也无法避免故障时,需要对应用进行修复。

优选地,触发对目标应用进行定制的事件可以包括:目标应用中特定功能的启动、目标应用中特定部分的运行和/或目标应用特定参数的赋值。例如,当目标应用中特定功能存在缺陷或会触发运行故障时,它的启动会触发应用故障。为此,将目标应用中特定功能的启动作为触发对目标应用进行定制的事件。即,在目标应用中特定功能将启动时,对其进行定制,例如利用正确/无缺陷的部分来进行替代。或者,当用户希望目标应用中特定部分进行修改以满足个性化需求时,见目标应用中特定部分的运行作为触发对目标应用进行定制的事件。即,在目标应用中特定功能运行时,对其中的一个或多个部分(还未开始运行的部分)进行个性化修改。又或者,当目标应用特定参数值被修改为预定值时,会触发对目标应用的定制。例如,当判断语句中的入口参数为1(例如,是),不对目标应用进行定制,而当判断语句中的入口参数为0(例如,否),则对目标应用进行定制。

优选地,当确定存在能够触发动态定制的事件时,设备100判断所述目标应用是否需要基于所述事件进行动态定制,以及如果目标应用需要基于所述事件进行动态定制,则将所述事件推送给适配单元以进行定制。通常,在确定存在能够触发动态定制的事件时,设备100可以根据实际情况或预先设置来确定是否需要基于所述事件进行动态定制。这是因为,在某些情况下,即使已经满足了触发动态定制的事件,但是并不触发动态定制。而仅在目标应用需要基于事件进行动态定制,才进行动态定制。

优选地,设备100根据事件确定目标应用中需要动态定制的修改内容。优选地,修改内容可以时目标应用中存在缺陷的内容、目标应用中运行故障的内容或目标应用中用户希望修改的内容。其中根据所述事件确定所述目标应用中需要动态定制的修改内容包括,根据目标应用的标识确定与目标内容相对应的一个或多个修改内容,并且从一个或多个修改内容选择与事件相对应的修改内容。优选地,目标应用可能存在一个或多个修改内容并且这些修改修改内容与目标应用相关联。进一步,根据触发动态定制的事件的不同,可能会触发针对一个或多个修改内容中不同修改内容的定制。因此,设备100基于事件从一个或多个修改内容选择相对应的修改内容,并且利用与修改内容想对应的动态定制内容来进行定制。设备100预先存储与目标应用相对应的一个或多个动态定制内容。优选地,对于需要动态定制的目标应用,其修改内容与动态定制内容一一对应。

优选地,设备100根据预先存储的动态定制内容来替代修改内容,以使得运行单元继续运行目标应用。优选地,根据预先存储的动态定制内容来替代所述修改内容包括:以补丁或插件的形式将所述预先存储的动态定制内容替代所述修改内容。其中运行单元继续运行所述目标应用包括,所述运行单元在所述事件处,运行所述预先存储的动态定制内容而不是所述修改内容。

根据本发明的优选实施方式,可以使用黑魔法(BM,Black Magic)为Android应用提供动态扩展和修复能力的技术,如:云修复、云广告、模块解耦、黑科技等。BM由BMAndroidRuntime(运行环境)、BMActivityThread(活动线程)、BlackMagic.apk(安装包)和BMagic文件四部分组成。其中BMAndroidRuntime负责提供核心能力,BMActivityThread负责构建运行环境,BlackMagic.apk负责提供核心接口(BMCore)以及身份认证等管理机制,而最终的功能特性由BMagic文件提供。

优选地,BMAndroidRuntime是专门为BM提供改造Java类和方法的能力(如:钩子Hook)的定制安卓运行环境ART。BMActivityThread用于提供一套判断和启动BM的机制,从而将BlackMagic对第三方应用的性能影响降低到最小,目前所测量的实际延迟仅为1ms。目前采用通过路径快速判断目标应用是否需要BM支持的方式来决定是否对目标应用加载BM文件以进行能力扩展。

BlackMagic.apk是一个非常普通的App,但是必须使用提供商签名,否则无法工作。BlackMagic.apk内部携带基础的BM文件所需要的接口。这种接口是一个API最小集合,即BMCore,用于确保BM对目标应用的内存占用量最低。同时也确保在加载BM文件的时候对目标应用性能影响最小。

BMCore是一个Jar包,用于开发人员开发BM文件时使用。Jar包中提供常用的基本应用程序接口API,使得BM文件能够动态修改Java类和方法以及Hook某些方法。BM文件会由BlackMagic.apk内部集成,便于版本控制和减少BM文件大小。基于BMCore可以开发更多的通用基础库以及扩展库。其中扩展库不是具体功能,而是为实现某些具体功能提供一些必要能力,可以各种模块所共享。

BM文件是实现业务功能的主体,并且每一个BM文件都是由多个BMagic和BMagicKnife组成。其中,一个BMagic可以包括多个BMagicKnif。BMagic是对要进行Hook的类的抽象,并且BMagicKnife是对要进行Hook的方法的一个抽象,因此它们之间是映射关系。某个具体的功能是由多个BMagic通过BMagicKnife获取到信息后以共享的方式实现的。

优选地,根据本发明的优选实施方式,如上所述的设备100可以被包括在移动终端中,或由移动终端来执行。

图2为根据本发明优选实施方式的动态定制设备的存储结构200的示意图。如图2所示,动态定制设备中会存储各种类型的应用并且利用应用控制器进行管理和控制。此外,在应用执行过程中所生成的业务数据和用户数据也一并存储在动态定制设备中。此外,用于对修改内容进行替代的动态定制内容也会被预先存储在动态定制设备中。

图3为根据本发明优选实施方式的用于对目标应用进行动态定制的设备300的结构示意图。设备300能够根据预先设置的动态定制内容来对用户终端内各种类型的应用进行动态定制。动态定制可以包括对应用漏洞和问题的修改,并且还可以包括对应用进行个性化修改。动态定制的一种应用是修复应用漏洞的代码、插件或组件。动态定制是一种快速且低成本修复应用版本缺陷或对应用进行个性化修改的手段。应用的动态定制部分不会作为常规补丁随系统自动更新,一般情况下由云端服务器通过网络或者其他途径来通知用户有关动态定制部分的消息。用户可以在应用供应商的网站上免费下载动态定制部分,或应用供应商通过云端服务器将动态定制部分推送给用户。和升级应用版本相比,动态定制的主要优势是不会使设备当前正在运行的业务中断,即在不重启的情况下,可以对当前应用版本的缺陷进行修复或对应用进行个性化修改。

如图3所示,设备300包括:运行单元301、判断单元302、适配单元303、动态定制单元304以及存储单元305。优选地,运行单元301用于为一个或多个应用提供运行环境,并且对所述一个或多个应用的运行进行监控,以确定是否存在能够触发适配单元对所述一个或多个应用中的目标应用进行动态定制的事件。通常,各种类型的应用可以用于订购商品、预定火车票、预定飞机票、预定餐馆或建立约车业务等。为此,用户可以运行购物应用、订票应用、订餐应用和约车应用。此外,用户所运行的应用还可以是微信应用、通讯录应用、浏览器应用、拨号应用、相机应用、游戏应用、学习应用或工具应用等。

优选地,为了能够对应用进行动态定制,设备200要确定何时进行介入以及对应用中的哪些部分进行定制。为此,运行单元301需要对其上运行的一个或多个应用进行实时监控,以确定进行动态定制的时机。通常,在运行中,一个或多个应用中的特定应用会出现进行动态定制的时机。这种时机的出现通常是以特定事件的触发为基础。例如,运行单元301确定一个或多个应用中的购物应用(目标应用)在运行时触发了进行动态定制的事件,并且这种动态定制是针对购物应用的定制。这种定制例如是对特定种类物品的比价功能。优选地,目标应用可以是内容存在缺陷的应用、用户希望修改的应用和/或运行出现故障的应用。通常,当应用的内容存在缺陷时,用户需要对缺陷进行修复。当一些用户希望对应用进行定制以增加或修改特定功能时,也需要对应用进行修改。或者,更为严重的情况是,应用的运行已经出现故障并且重新启动也无法避免故障时,需要对应用进行修复。

优选地,触发对目标应用进行定制的事件可以包括:目标应用中特定功能的启动、目标应用中特定部分的运行和/或目标应用特定参数的赋值。例如,当目标应用中特定功能存在缺陷或会触发运行故障时,它的启动会触发应用故障。为此,将目标应用中特定功能的启动作为触发对目标应用进行定制的事件。即,在目标应用中特定功能将启动时,对其进行定制,例如利用正确/无缺陷的部分来进行替代。或者,当用户希望目标应用中特定部分进行修改以满足个性化需求时,见目标应用中特定部分的运行作为触发对目标应用进行定制的事件。即,在目标应用中特定功能运行时,对其中的一个或多个部分(还未开始运行的部分)进行个性化修改。又或者,当目标应用特定参数值被修改为预定值时,会触发对目标应用的定制。例如,当判断语句中的入口参数为1(例如,是),不对目标应用进行定制,而当判断语句中的入口参数为0(例如,否),则对目标应用进行定制。

优选地,当确定存在能够触发动态定制的事件时,判断单元302判断所述目标应用是否需要基于所述事件进行动态定制,以及如果目标应用需要基于所述事件进行动态定制,则将所述事件推送给适配单元以进行定制。通常,在确定存在能够触发动态定制的事件时,判断单元302可以根据实际情况或预先设置来确定是否需要基于所述事件进行动态定制。这是因为,在某些情况下,即使已经满足了触发动态定制的事件,但是并不触发动态定制。而仅在目标应用需要基于事件进行动态定制,才进行动态定制。

优选地,适配单元303根据事件确定目标应用中需要动态定制的修改内容。优选地,修改内容可以时目标应用中存在缺陷的内容、目标应用中运行故障的内容或目标应用中用户希望修改的内容。其中根据所述事件确定所述目标应用中需要动态定制的修改内容包括,根据目标应用的标识确定与目标内容相对应的一个或多个修改内容,并且从一个或多个修改内容选择与事件相对应的修改内容。优选地,目标应用可能存在一个或多个修改内容并且这些修改修改内容与目标应用相关联。进一步,根据触发动态定制的事件的不同,可能会触发针对一个或多个修改内容中不同修改内容的定制。因此,适配单元303基于事件从一个或多个修改内容选择相对应的修改内容,并且利用与修改内容想对应的动态定制内容来进行定制。设备300预先存储与目标应用相对应的一个或多个动态定制内容。优选地,对于需要动态定制的目标应用,其修改内容与动态定制内容一一对应。

优选地,动态定制单元304根据预先存储的动态定制内容来替代修改内容,以使得运行单元继续运行目标应用。优选地,根据预先存储的动态定制内容来替代所述修改内容包括:以补丁或插件的形式将所述预先存储的动态定制内容替代所述修改内容。其中运行单元继续运行所述目标应用包括,所述运行单元在所述事件处,运行所述预先存储的动态定制内容而不是所述修改内容。

优选地,存储单元305存储各种类型的应用。此外,在应用执行过程中所生成的业务数据和用户数据也一并存储在存储单元305中。此外,用于对修改内容进行替代的动态定制内容也会被预先存储在存储单元305中。

图4为根据本发明优选实施方式的用于对目标应用进行动态定制的实例示意图。通常,当监控到目标应用中特定功能的启动、目标应用中特定部分的运行和/或目标应用特定参数的赋值时,判断目标应用是否需要基于事件进行动态定制。如图4所示,当目标应用的部分A运行结束后,能够触发动态定制的事件出现。此时,本发明判断目标应用是否需要基于事件进行动态定制。如果需要基于事件进行动态定制,则将事件推送给适配单元。随后,适配单元根据事件确定目标应用中需要动态定制的修改内容,例如如图4所示的动态定制内容。随后,运行单元运行动态定制内容而不运行修改内容(部分B),以使得运行单元能够继续运行目标应用而不会出现故障或完成个性化定制。另一方面,如果不需要基于事件进行动态定制,则继续执行部分B。最后,在执行部分B或动态定制内容后,运行单元继续执行部分C。

图5为根据本发明优选实施方式的用于对目标应用进行动态定制的方法500的流程图。方法500能够根据预先设置的动态定制内容来对用户终端内各种类型的应用进行动态定制。动态定制可以包括对应用漏洞和问题的修改,并且还可以包括对应用进行个性化修改。动态定制的一种应用是修复应用漏洞的代码、插件或组件。动态定制是一种快速且低成本修复应用版本缺陷或对应用进行个性化修改的手段。应用的动态定制部分不会作为常规补丁随系统自动更新,一般情况下由云端服务器通过网络或者其他途径来通知用户有关动态定制部分的消息。用户可以在应用供应商的网站上免费下载动态定制部分,或应用供应商通过云端服务器将动态定制部分推送给用户。和升级应用版本相比,动态定制的主要优势是不会使设备当前正在运行的业务中断,即在不重启的情况下,可以对当前应用版本的缺陷进行修复或对应用进行个性化修改。

如图5所示,方法500从步骤501处开始。优选地,在步骤501,为一个或多个应用提供运行环境,并且对所述一个或多个应用的运行进行监控,以确定是否存在能够触发适配单元对所述一个或多个应用中的目标应用进行动态定制的事件。通常,各种类型的应用可以用于订购商品、预定火车票、预定飞机票、预定餐馆或建立约车业务等。为此,用户可以运行购物应用、订票应用、订餐应用和约车应用。此外,用户所运行的应用还可以是微信应用、通讯录应用、浏览器应用、拨号应用、相机应用、游戏应用、学习应用或工具应用等。

优选地,为了能够对应用进行动态定制,方法500要确定何时进行介入以及对应用中的哪些部分进行定制。为此,方法500需要对其上运行的一个或多个应用进行实时监控,以确定进行动态定制的时机。通常,在运行中,一个或多个应用中的特定应用会出现进行动态定制的时机。这种时机的出现通常是以特定事件的触发为基础。例如,方法500确定一个或多个应用中的购物应用(目标应用)在运行时触发了进行动态定制的事件,并且这种动态定制是针对购物应用的定制。这种定制例如是对特定种类物品的比价功能。优选地,目标应用可以是内容存在缺陷的应用、用户希望修改的应用和/或运行出现故障的应用。通常,当应用的内容存在缺陷时,用户需要对缺陷进行修复。当一些用户希望对应用进行定制以增加或修改特定功能时,也需要对应用进行修改。或者,更为严重的情况是,应用的运行已经出现故障并且重新启动也无法避免故障时,需要对应用进行修复。

优选地,触发对目标应用进行定制的事件可以包括:目标应用中特定功能的启动、目标应用中特定部分的运行和/或目标应用特定参数的赋值。例如,当目标应用中特定功能存在缺陷或会触发运行故障时,它的启动会触发应用故障。为此,将目标应用中特定功能的启动作为触发对目标应用进行定制的事件。即,在目标应用中特定功能将启动时,对其进行定制,例如利用正确/无缺陷的部分来进行替代。或者,当用户希望目标应用中特定部分进行修改以满足个性化需求时,见目标应用中特定部分的运行作为触发对目标应用进行定制的事件。即,在目标应用中特定功能运行时,对其中的一个或多个部分(还未开始运行的部分)进行个性化修改。又或者,当目标应用特定参数值被修改为预定值时,会触发对目标应用的定制。例如,当判断语句中的入口参数为1(例如,是),不对目标应用进行定制,而当判断语句中的入口参数为0(例如,否),则对目标应用进行定制。

优选地,在步骤502,当确定存在能够触发动态定制的事件时,判断所述目标应用是否需要基于所述事件进行动态定制,以及如果目标应用需要基于所述事件进行动态定制,则将所述事件推送给适配单元以进行定制。通常,在确定存在能够触发动态定制的事件时,方法500可以根据实际情况或预先设置来确定是否需要基于所述事件进行动态定制。这是因为,在某些情况下,即使已经满足了触发动态定制的事件,但是并不触发动态定制。而仅在目标应用需要基于事件进行动态定制,才进行动态定制。

优选地,在步骤503,根据事件确定目标应用中需要动态定制的修改内容。优选地,修改内容可以时目标应用中存在缺陷的内容、目标应用中运行故障的内容或目标应用中用户希望修改的内容。其中根据所述事件确定所述目标应用中需要动态定制的修改内容包括,根据目标应用的标识确定与目标内容相对应的一个或多个修改内容,并且从一个或多个修改内容选择与事件相对应的修改内容。优选地,目标应用可能存在一个或多个修改内容并且这些修改修改内容与目标应用相关联。进一步,根据触发动态定制的事件的不同,可能会触发针对一个或多个修改内容中不同修改内容的定制。因此,方法500基于事件从一个或多个修改内容选择相对应的修改内容,并且利用与修改内容想对应的动态定制内容来进行定制。方法500预先存储与目标应用相对应的一个或多个动态定制内容。优选地,对于需要动态定制的目标应用,其修改内容与动态定制内容一一对应。

优选地,在步骤504,根据预先存储的动态定制内容来替代修改内容,以使得运行单元继续运行目标应用。优选地,根据预先存储的动态定制内容来替代所述修改内容包括:以补丁或插件的形式将所述预先存储的动态定制内容替代所述修改内容。其中运行单元继续运行所述目标应用包括,所述运行单元在所述事件处,运行所述预先存储的动态定制内容而不是所述修改内容。

优选地,方法500会促使存储单元存储各种类型的应用、在应用执行过程中所生成的业务数据和用户数据、以及用于对修改内容进行替代的动态定制内容。

已经通过参考少量实施方式描述了本发明。然而,本领域技术人员所公知的,正如附带的专利权利要求所限定的,除了本发明以上公开的其他的实施方式等同地落在本发明的范围内。

通常地,在权利要求中使用的所有术语都根据他们在技术领域的通常含义被解释,除非在其中被另外明确地定义。所有的参考“一个/所述/该[装置、组件等]”都被开放地解释为所述装置、组件等中的至少一个实例,除非另外明确地说明。这里公开的任何方法的步骤都没必要以公开的准确的顺序运行,除非明确地说明。

当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1