发明内容
为了减少更新应用时用户的参与,并及时更新应用以提高应用更新的时效性,本发明实施例提供了一种应用更新方法、装置及计算机可读存储介质。所述技术方案如下:
第一方面,提供了一种应用更新方法,所述方法包括:
将所述目标应用的可执行文件从存储器拷贝至内存,并基于所述内存中的所述目标应用的可执行文件运行所述目标应用;
其中,所述目标应用的可执行文件位于所述目标应用的应用文件夹中,所述存储器用于存储安装所述目标应用时生成的应用文件夹;
当在运行所述目标应用的过程中,检测到所述目标应用的版本已更新时,下载所述目标应用的最新版本的安装包文件;
将所述存储器中存储的所述目标应用的可执行文件替换为所述最新版本的安装包文件中的可执行文件,以完成所述目标应用的更新。
可选地,所述将所述存储器中存储的所述目标应用的可执行文件替换为所述最新版本的安装包文件中的可执行文件,包括:
对所述最新版本的安装包文件进行解压,以获取所述最新版本的安装包文件中的可执行文件;
根据所述目标应用的应用标识和指定路径,从所述存储器中存储的所述目标应用的应用文件夹中,获取所述目标应用的可执行文件;
将获取的目标应用的可执行文件替换为所述最新版本的安装包文件中的可执行文件。
可选地,所述将所述目标应用的可执行文件替换为所述最新版本的安装包文件中的可执行文件,包括:
删除所述目标应用的可执行文件;
将所述最新版本的安装包文件中的可执行文件存储至所述目标应用的应用文件夹中。
可选地,所述下载所述目标应用的最新版本的安装包文件之前,还包括:
接收应用更新许可指令,所述应用更新许可指令中携带至少一个应用的应用标识;
将所述至少一个应用中每个应用的应用标识存储至更新许可列表中,所述更新许可列表用于存储允许进行更新的应用的应用标识;
相应地,所述下载所述目标应用的最新版本的安装包文件,包括:
当所述更新许可列表中包括所述目标应用的应用标识时,下载所述目标应用的最新版本的安装包文件。
第二方面,提供了一种应用更新装置,所述装置包括:
拷贝模块,用于将所述目标应用的可执行文件从存储器拷贝至内存,并基于所述内存中的所述目标应用的可执行文件运行所述目标应用;
其中,所述目标应用的可执行文件位于所述目标应用的应用文件夹中,所述存储器用于存储安装所述目标应用时生成的应用文件夹;
下载模块,用于当在运行所述目标应用的过程中,检测到所述目标应用的版本已更新时,下载所述目标应用的最新版本的安装包文件;
替换模块,用于将所述存储器中存储的所述目标应用的可执行文件替换为所述最新版本的安装包文件中的可执行文件,以完成所述目标应用的更新。
可选地,所述替换模块包括:
解压子模块,用于对所述最新版本的安装包文件进行解压,以获取所述最新版本的安装包文件中的可执行文件;
获取子模块,用于根据所述目标应用的应用标识和指定路径,从所述存储器中存储的所述目标应用的应用文件夹中,获取所述目标应用的可执行文件;
替换子模块,用于将获取的目标应用的可执行文件替换为所述最新版本的安装包文件中的可执行文件。
可选地,所述替换子模块用于:
删除所述目标应用的可执行文件;
将所述最新版本的安装包文件中的可执行文件存储至所述目标应用的应用文件夹中。
可选地,所述装置还包括:
接收模块,用于接收应用更新许可指令,所述应用更新许可指令中携带至少一个应用的应用标识;
存储模块,用于将所述至少一个应用中每个应用的应用标识存储至更新许可列表中,所述更新许可列表用于存储允许进行更新的应用的应用标识;
相应地,所述下载模块包括:
下载子模块,用于当所述更新许可列表中包括所述目标应用的应用标识时,下载所述目标应用的最新版本的安装包文件。
第三方面,提供了一种计算机可读存储介质,所述存储介质内存储有计算机程序,所述计算机程序被处理器执行时实现上述第一方面所述的方法。
本发明实施例提供的技术方案带来的有益效果是:在本发明实施例中,在运行目标应用的过程中,检测到目标应用的版本已更新时,可以下载目标应用的最新版本的安装包文件,然后将存储器中存储的目标应用的可执行文件替换为最新版本的安装包文件中的可执行文件,从而实现了对目标应用的自动更新,无需用户参与,保证了目标应用能够及时进行更新,提高了应用更新的时效性。另外,由于可以将存储器中存储的目标应用的可执行文件拷贝至内存中,并基于内存中的目标应用的可执行文件运行该目标应用,因此,在目标应用的运行过程中,将存储器中存储的目标应用的可执行文件替换为最新版本的安装包文件中的可执行文件,将不会影响当前对目标应用的运行。
具体实施方式
为使本发明的目的、技术方案和优点更加清楚,下面将结合附图对本发明实施方式作进一步地详细描述。
在对本发明实施例进行详细的解释说明之前,先对本发明实施例中涉及到的应用场景及系统架构分别进行解释说明。
首先,对本发明实施例涉及的应用场景进行介绍。
当终端检测到目标应用的版本已更新时,通常需要将目标应用的版本进行更新。通常情况下,当终端是在运行该目标应用的过程中检测到该目标应用的版本已更新时,通常会询问用户是否进行目标应用的更新。而由于在运行该目标应用时,用户为了不耽误对目标应用的使用,通常不会选择对该目标应用进行更新,从而导致目标应用更新不及时。基于上述场景,本发明实施例提供了一种无需用户参与且不影响当前应用运行的应用更新方法。
最后,对本发明实施例涉及的系统架构进行介绍。
图1是本发明实施例提供的应用更新系统的结构示意图,参见图1,该应用更新系统包括终端1和服务器2,终端1可以与服务器2进行通信。其中,终端1可以将目标应用的可执行文件从存储器中拷贝至内存,并基于内存中的目标应用的可执行文件运行目标应用。同时,在运行该目标应用的过程中,可以检测目标应用的版本是否发生更新,并在检测到目标应用的版本发生更新时,从服务器2中下载目标应用的最新版本的安装包文件,并将存储器中存储的目标应用的可执行文件替换为最新版本的安装包文件中的可执行文件,以完成目标应用的更新。
图2是本发明实施例提供的一种应用更新方法流程图,参见图2,该方法包括如下步骤。
步骤201:终端将目标应用的可执行文件从存储器拷贝至内存,并基于该内存中的目标应用的可执行文件运行目标应用。
需要说明的是,目标应用的可执行文件位于目标应用的应用文件夹中,存储器用于存储安装目标应用时生成的应用文件夹。其中,可执行文件指的是可以由终端安装的操作系统进行加载执行的文件,应用文件夹是指终端安装应用时生成的与该应用相关的文件所形成的文件夹。
另外,该目标应用可以是通过MAC(Macintosh,麦金塔电脑)系统运行的应用,也可以是其他系统运行的应用,比如,Android(安卓)等等。该存储器为计算机内存及CPU(Central Processing Unit,中央处理器)缓存以外的存储器,此类存储器一般在终端断电后仍然能保存数据。常见的存储器有硬盘、软盘、光盘、U盘等。
其中,终端在运行目标应用时,通常是通过内存中的运行数据进行运行的,而可执行文件是指可以由终端安装的操作系统进行加载执行的文件,因此,为了保证终端能够顺利运行目标应用,该终端需要将目标应用的可执行文件从存储器中拷贝至内存。
比如,当终端当前运行的目标应用程序为即时通信应用时,该终端可以将该即时通信应用的可执行文件从存储器中拷贝至内存。
步骤202:当终端在运行目标应用的过程中,检测到该目标应用的版本已更新时,下载该目标应用的最新版本的安装包文件。
其中,为了使用户能够及时使用最新版本的目标应用,终端在运行目标应用过程中,可以通过后台线程检测该目标应用的版本是否发生更新。具体地,终端可以向服务器发送版本检测请求,该版本检测请求中携带该目标应用的应用标识,该服务器接收到该版本检测请求后,可以根据该目标应用的应用标识,获取目标应用的最新版本号,并将该目标应用的最新版本号发送至终端;当终端接收到该目标应用的最新版本号时,确定该目标应用的最新版本号是否与当前安装的目标应用的版本号相同,当该目标应用的最新版本号与当前安装的目标应用的版本号相同时,确定该目标应用的版本未更新,当该目标应用的最新版本号与当前安装的目标应用的版本号不相同时,确定该目标应用的版本已更新。
另外,当终端确定该目标应用的版本已更新时,该终端可以向服务器发送下载请求,当服务器接收到该下载请求时,可以将目标应用的最新版本的安装包文件发送至终端,终端接收目标应用的最新版本的安装包文件并进行存储。
需要说明的是,应用标识用于唯一标识该应用,且该应用标识可以为目标应用的名称、版本号等。
另外,由于目标应用的应用标识可以为目标应用的版本号,因此,当该应用标识为目标应用的版本号时,服务器在接收到该版本检测请求后,可以直接确定该目标应用的最新版本号是否与接收到的目标应用的版本号相同,当该目标应用的最新版本号与接收到的目标应用的版本号相同时,确定该目标应用的版本未更新,服务器可以不向终端发送任何消息;当该目标应用的最新版本号与接收到的目标应用的版本号不相同时,确定该目标应用的版本已更新,则服务器向终端发送目标应用的版本已发生更新的消息。
值得说明的是,如果终端发送的版本检测请求中还携带下载标识时,则当服务器确定该目标应用的版本已更新时,该服务器可以直接将目标应用的最新版本的安装包文件发送至终端,从而终端可以接收并存储该目标应用的最新版本的安装包文件。
再者,终端不仅可以通过上述方式主动检测目标应用的版本是否已更新,终端还可以被动确定目标应用的版本是否已更新。比如,服务器可以对目标应用的版本号进行检测,当检测到目标应用的版本号发生变化时,确定该目标应用的版本已更新,此时服务器可以通知终端目标应用的版本已发生更新。
还需要说明的是,终端可以在接收到目标应用的运行指令时,检测该目标应用的版本是否已更新,也可以在目标应用的运行指定时长后,检测该目标应用的版本是否已更新。
其中,该运行指令用于运行该目标应用,且该运行指令可以由用户通过指定操作触发,该指定操作可以为点击操作、滑动操作、语音操作等等。该指定时长可以事先设置,比如,该指定时间间隔可以为5分钟、10分钟、20分钟。
进一步地,有时候用户可能更习惯使用旧版本的目标应用,并不希望将该目标应用的版本进行更新,因此,在终端下载该目标应用的最新版本的安装包文件之前,终端可以确定用户是否允许该目标应用进行更新。通常情况下,终端可以通过检测更新许可列表以确定用户是否允许目标应用进行更新,该更新许可列表用于存储允许进行更新的应用的应用标识。
具体地,当终端检测到该目标应用的版本已更新时,可以先判断更新许可列表中是否包括目标应用的应用标识,当更新许可列表中包括该目标应用的应用标识时,下载目标应用的最新版本的安装包文件。
另外,由于用户在使用目标应用的旧版本一段时间后,可能会想要体验目标应用的新版本,此时为了避免一直不能将该目标应用进行更新,当终端每一次检测到该目标应用的版本已更新,且更新许可列表中不包括该目标应用的应用标识时,该终端可以显示提示信息,该提示信息用于提示是否对目标应用的版本进行更新。
其中,该更新许可列表为终端事先设置的列表,也即是,终端在下载该目标应用的最新版本的安装包文件之前,可以接收应用更新许可指令,该应用更新许可指令中携带至少一个应用的应用标识;将该至少一个应用中每个应用的应用标识存储至更新许可列表中。
需要说明的是,该应用更新许可指令用于许可应用进行更新,且该应用许可指令同样可以由用户通过指定操作触发。
步骤203:终端将存储器中存储的目标应用的可执行文件替换为最新版本的安装包文件中的可执行文件,以完成目标应用的更新。
由于在通常情况下,目标应用在进行更新时主要是对目标应用的可执行文件进行更新,且终端下载的目标应用的安装包文件通常为压缩格式的文件,因此,终端可以先对最新版本的安装包文件进行解压,以获取最新版本的安装包文件中的可执行文件;之后根据该目标应用的应用标识和指定路径,从存储器中存储的目标应用的应用文件夹中,获取目标应用的可执行文件;将获取的目标应用的可执行文件替换为最新版本的安装包文件中的可执行文件。
需要说明的是,该指定路径为终端最初安装目标应用时生成的安装路径,也可以为终端安装目标应用时,用户自定义设置的安装路径,比如,该目标应用为应用A时,终端安装应用A时生成的安装路径为application/A.app/content,或者用户自定义的安装路径为user/A.app/content。其中,content为该应用A的可执行文件。
另外,终端将目标应用的可执行文件替换为最新版本的安装包文件中的可执行文件时,可以先删除目标应用的可执行文件;然后将最新版本的安装包文件中的可执行文件存储至目标应用的应用文件夹中。或者,该终端可以将最新版本的安装包文件中的可执行文件覆盖在目标应用的可执行文件上。
再者,由于此次对目标应用的运行是基于内存中的目标应用的可执行文件,目标应用的更新后的可执行文件需要在下一次运行时才能拷贝至内存中,因此,终端需要在下一次启动该目标应用时才能体现目标应用更新后的特性。
值得说明的是,由于终端在运行目标应用时,已将目标应用的可执行文件拷贝至内存中,因此,在目标应用的运行过程中删除存储器中存储的目标应用的可执行文件,将不会影响当前对目标应用的运行。
在本发明实施例中,终端在运行目标应用的过程,检测到目标应用的版本已更新时,可以下载目标应用的最新版本的安装包文件,然后删除存储器中目标应用的可执行文件,将最新版本的安装包文件中的可执行文件存储至目标应用的应用文件夹中,从而实现了终端自动更新目标应用,无需用户参与,保证了目标应用能够及时进行更新,提高了应用更新的时效性。另外,由于终端可以将存储器中存储的目标应用的可执行文件拷贝至内存中,且可以基于内存中的目标应用的可执行文件运行目标应用,因此,在目标应用的运行过程中删除存储器中目标应用的可执行文件,将不会影响当前对目标应用的运行。
图3A为本发明实施例提供的一种应用更新装置的框图,参见图3A,该应用更新装置可以由软件、硬件或者两者的结合实现。该装置包括:拷贝模块301、下载模块302和替换模块303。
拷贝模块301,用于将该目标应用的可执行文件从存储器拷贝至内存,并基于该内存中的该目标应用的可执行文件运行该目标应用;
其中,该目标应用的可执行文件位于该目标应用的应用文件夹中,该存储器用于存储安装该目标应用时生成的应用文件夹;
下载模块302,用于当在运行该目标应用的过程中,检测到该目标应用的版本已更新时,下载该目标应用的最新版本的安装包文件;
替换模块303,用于将该存储器中存储的该目标应用的可执行文件替换为该最新版本的安装包文件中的可执行文件,以完成该目标应用的更新。
可选地,参见图3B,该替换模块303包括:
解压子模块3031,用于对该最新版本的安装包文件进行解压,以获取该最新版本的安装包文件中的可执行文件;
获取子模块3032,用于根据该目标应用的应用标识和指定路径,从该存储器中存储的该目标应用的应用文件夹中,获取该目标应用的可执行文件;
替换子模块3033,用于将获取的目标应用的可执行文件替换为该最新版本的安装包文件中的可执行文件。
可选地,该替换子模块3033用于:
删除该目标应用的可执行文件;
将该最新版本的安装包文件中的可执行文件存储至该目标应用的应用文件夹中。
可选地,参见图3C,该装置还包括:
接收模块304,用于接收应用更新许可指令,该应用更新许可指令中携带至少一个应用的应用标识;
存储模块305,用于将该至少一个应用中每个应用的应用标识存储至更新许可列表中,该更新许可列表用于存储允许进行更新的应用的应用标识;
相应地,参见图3D,下载模块302包括:
下载子模块3021,用于当该更新许可列表中包括该目标应用的应用标识时,下载该目标应用的最新版本的安装包文件。
综上所述,在本发明实施例中,终端在运行目标应用的过程,检测到目标应用的版本已更新时,可以下载目标应用的最新版本的安装包文件,然后删除存储器中目标应用的可执行文件,将最新版本的安装包文件中的可执行文件存储至目标应用的应用文件夹中,从而实现了终端自动更新目标应用,无需用户参与,保证了目标应用能够及时进行更新,提高了应用更新的时效性。另外,由于终端可以将存储器中存储的目标应用的可执行文件拷贝至内存中,且可以基于内存中的目标应用的可执行文件运行目标应用,因此,在目标应用的运行过程中删除存储器中目标应用的可执行文件,将不会影响当前对目标应用的运行。
需要说明的是:上述实施例提供的应用更新装置在进行应用更新时,仅以上述各功能模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能模块完成,即将装置的内部结构划分成不同的功能模块,以完成以上描述的全部或者部分功能。另外,上述实施例提供的应用更新装置与应用更新方法实施例属于同一构思,其具体实现过程详见方法实施例,这里不再赘述。
图4是根据一示例性实施例示出的一种终端400的框图。例如,终端400可以是移动电话,计算机,数字广播终端,消息收发设备,游戏控制台,平板设备,医疗设备,健身设备,个人数字助理等。
参照图4,终端400可以包括以下一个或多个组件:处理组件402,存储器404,电源组件406,多媒体组件408,音频组件410,输入/输出(I/O)的接口412,传感器组件414,以及通信组件416。
处理组件402通常控制终端400的整体操作,诸如与显示,电话呼叫,数据通信,相机操作和记录操作相关联的操作。处理组件402可以包括一个或多个处理器420来执行指令,以完成上述的方法的全部或部分步骤。此外,处理组件402可以包括一个或多个模块,便于处理组件402和其他组件之间的交互。例如,处理组件402可以包括多媒体模块,以方便多媒体组件408和处理组件402之间的交互。
存储器404被配置为存储各种类型的数据以支持在终端400的操作。这些数据的示例包括用于在终端400上操作的任何应用程序或方法的指令,联系人数据,电话簿数据,消息,图片,视频等。存储器404可以由任何类型的易失性或非易失性存储设备或者它们的组合实现,如静态随机存取存储器(SRAM),电可擦除可编程只读存储器(EEPROM),可擦除可编程只读存储器(EPROM),可编程只读存储器(PROM),只读存储器(ROM),磁存储器,快闪存储器,磁盘或光盘。
电源组件406为终端400的各种组件提供电源。电源组件406可以包括电源管理系统,一个或多个电源,及其他与为终端400生成、管理和分配电源相关联的组件。
多媒体组件408包括在所述终端400和用户之间的提供一个输出接口的屏幕。在一些实施例中,屏幕可以包括液晶显示器(LCD)和触摸面板(TP)。如果屏幕包括触摸面板,屏幕可以被实现为触摸屏,以接收来自用户的输入信号。触摸面板包括一个或多个触摸传感器以感测触摸、滑动和触摸面板上的手势。所述触摸传感器可以不仅感测触摸或滑动动作的边界,而且还检测与所述触摸或滑动操作相关的持续时间和压力。在一些实施例中,多媒体组件408包括一个前置摄像头和/或后置摄像头。当终端400处于操作模式,如拍摄模式或视频模式时,前置摄像头和/或后置摄像头可以接收外部的多媒体数据。每个前置摄像头和后置摄像头可以是一个固定的光学透镜系统或具有焦距和光学变焦能力。
音频组件410被配置为输出和/或输入音频信号。例如,音频组件410包括一个麦克风(MIC),当终端400处于操作模式,如呼叫模式、记录模式和语音识别模式时,麦克风被配置为接收外部音频信号。所接收的音频信号可以被进一步存储在存储器404或经由通信组件416发送。在一些实施例中,音频组件410还包括一个扬声器,用于输出音频信号。
I/O接口412为处理组件402和外围接口模块之间提供接口,上述外围接口模块可以是键盘,点击轮,按钮等。这些按钮可包括但不限于:主页按钮、音量按钮、启动按钮和锁定按钮。
传感器组件414包括一个或多个传感器,用于为终端400提供各个方面的状态评估。例如,传感器组件414可以检测到终端400的打开/关闭状态,组件的相对定位,例如所述组件为终端400的显示器和小键盘,传感器组件414还可以检测终端400或终端400一个组件的位置改变,用户与终端400接触的存在或不存在,终端400方位或加速/减速和终端400的温度变化。传感器组件414可以包括接近传感器,被配置用来在没有任何的物理接触时检测附近物体的存在。传感器组件414还可以包括光传感器,如CMOS或CCD图像传感器,用于在成像应用中使用。在一些实施例中,该传感器组件414还可以包括加速度传感器,陀螺仪传感器,磁传感器,压力传感器或温度传感器。
通信组件416被配置为便于终端400和其他设备之间有线或无线方式的通信。终端400可以接入基于通信标准的无线网络,如WiFi,2G或3G,或它们的组合。在一个示例性实施例中,通信组件416经由广播信道接收来自外部广播管理系统的广播信号或广播相关信息。在一个示例性实施例中,所述通信组件416还包括近场通信(NFC)模块,以促进短程通信。例如,在NFC模块可基于射频识别(RFID)技术,红外数据协会(IrDA)技术,超宽带(UWB)技术,蓝牙(BT)技术和其他技术来实现。
在示例性实施例中,终端400可以被一个或多个应用专用集成电路(ASIC)、数字信号处理器(DSP)、数字信号处理设备(DSPD)、可编程逻辑器件(PLD)、现场可编程门阵列(FPGA)、控制器、微控制器、微处理器或其他电子元件实现,用于执行上述图2所示实施例提供的方法。
在示例性实施例中,还提供了一种包括指令的非临时性计算机可读存储介质,例如包括指令的存储器404,上述指令可由终端400的处理器420执行以完成上述方法。例如,所述非临时性计算机可读存储介质可以是ROM、随机存取存储器(RAM)、CD-ROM、磁带、软盘和光数据存储设备等。
一种非临时性计算机可读存储介质,当所述存储介质中的指令由终端的处理器执行时,使得移动终端能够执行上述图2所示实施例提供的方法。
本领域普通技术人员可以理解实现上述实施例的全部或部分步骤可以通过硬件来完成,也可以通过程序来指令相关的硬件完成,所述的程序可以存储于一种计算机可读存储介质中,上述提到的存储介质可以是只读存储器,磁盘或光盘等。
以上所述仅为本发明的较佳实施例,并不用以限制本发明,凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。