一种应用启动方法、相关装置及介质与流程

文档序号:19737331发布日期:2020-01-18 04:40阅读:103来源:国知局
一种应用启动方法、相关装置及介质与流程
本申请涉及通信
技术领域
,尤其涉及一种应用启动方法、相关装置及介质。
背景技术
:随着计算机和通信网络的快速发展,手机等终端产品迭代更新速度加快,各类应用程序更是层出不穷。目前终端设备在启动应用时,会为应用创建一个虚拟机实例来运行该应用。在应用进程结束后,终端设备会回收虚拟机实例所占用的内存。再次启动该应用时,终端设备会重新为该应用新建一个虚拟机实例,并在新建的虚拟机实例中运行该应用。可见,每次启动同一个应用时,都会为该应用创建一个虚拟机实例才能启动该应用,这样会导致应用启动的速度变慢。技术实现要素:本申请实施例提供了一种应用启动方法、相关装置及介质,有利于提高应用启动速度。本申请实施例第一方面提供了一种应用启动方法,该方法包括:接收用于启动第一应用的启动指令;响应启动指令,从虚拟机缓存区获取与第一应用对应的第一虚拟机实例,该虚拟机缓存区包括于内存中;在第一虚拟机实例中运行第一应用。可见,终端设备通过从缓存区直接获取第一应用对应的第一虚拟机实例的方式,不需要每次重新建立虚拟机实例,提高了应用启动的速度。作为一种可选的实施方式,终端设备响应启动指令,从虚拟机缓存区获取与第一应用对应的第一虚拟机实例,虚拟机缓存区包括于内存中的具体实施方式包括以下步骤:终端设备响应启动指令,根据预存的应用标识与虚拟机实例标识的对应关系,获取第一应用的标识对应的第一虚拟机实例的标识。根据第一虚拟机的标识在虚拟机缓存区获取第一虚拟机实例。可见,通过预存应用标识与虚拟机实例标识的对应关系的方式,可使终端设备快速找到第一应用的标识对应的第一虚拟机实例的标识。作为一种可选的实施方式,终端设备接收用于启动第一应用的启动指令之后;若不存在与第一应用的标识对应的第一虚拟机的标识,则创建第一虚拟机实例;建立并存储第一应用的标识和第一虚拟机的标识之间的对应关系;在第一虚拟机实例中运行第一应用,并在运行结束之后,将第一虚拟机实例存储至虚拟机缓存区。基于该可选方式,为未创建虚拟机实例的应用创建虚拟机实例并存放在虚拟机缓存区,有利于应用再次快速启动。作为一种可选的实施方式,启动终端设备;获取记录的第二虚拟机实例的标识,第二虚拟机实例为上一次关机之前虚拟机缓存区内的虚拟机实例;创建第三虚拟机实例;将第二虚拟机实例存放在虚拟机缓存区。可见,终端设备可以记录关机之前虚拟机缓存区的虚拟机标识,并在重新启动时,自动创建关机之前的虚拟机实例。基于该可选方式,可以恢复上一次关机之前的虚拟机实例。作为一种可选的实施方式,判断当前剩余内存是否小于第一阈值,剩余内存为除虚拟机缓存区之外的内存;若是,则从虚拟机缓存区中确定第三虚拟机实例;回收虚拟机缓存区中第三虚拟机实例对应的内存;缩小虚拟机缓存区的内存大小。基于该可选方式,终端设备能够灵活地调节缓存区的大小,提高应用在运行时的流畅度。作为一种可选的实施方式,建立并存储第一虚拟机实例的标识和第一虚拟机实例的内存大小之间的对应关系;回收虚拟机缓存区中第三虚拟机实例对应的内存之后,该方法还包括:接收第二应用的启动指令;根据预存的应用标识与虚拟机实例标识的对应关系,确定第二应用对应的第三虚拟机实例的标识;根据预存的虚拟机标识与虚拟机实例内存大小之间的对应关系,获取第三虚拟机实例的标识对应的第三虚拟机实例的内存大小;根据第二虚拟机实例的内存大小创建第三虚拟机实例。基于该可选方式,当接收到被回收了虚拟机实例的应用的启动指令时,终端设备能够快速创建虚拟机实例。本申请实施例第二方面提供了一种应用启动装置,包括:接收单元,用于接收用于启动第一应用的启动指令;获取单元,用于从虚拟机缓存区获取与第一应用对应的第一虚拟机实例,虚拟机缓存区包括于内存中;创建单元,用于当不存在与第一应用的标识对应的第一虚拟机实例的标识时,创建第一虚拟机实例;处理单元,用于在第一虚拟机实例中运行第一应用。作为一种可选方式,终端设备响应启动指令,根据预存的应用标识与虚拟机实例标识的对应关系,获取单元还用于获取第一应用的标识对应的第一虚拟机实例的标识。作为一种可选的实施方式,接收单元接收用于启动第一应用的启动指令,若不存在与第一应用的标识对应的第一虚拟机的标识,则创建第一虚拟机实例之后,创建单元还用于建立并存储第一应用的标识和第一虚拟机的标识之间的对应关系;处理单元还用于将第一虚拟机实例存放于虚拟机缓存区。作为一种可选的实施方式,启动终端设备,获取单元还用于获取记录的第二虚拟机实例的标识;创建单元还用于创建第二虚拟机实例;处理单元还用于将第二虚拟机实例存放在虚拟机缓存区。作为一种可选的实施方式,处理单元还用于判断当前剩余内存是否小于第一阈值,剩余内存为除虚拟机缓存区之外的内存;若是,则处理单元还用于从虚拟机缓存区中确定第三虚拟机实例;处理单元还用于回收虚拟机缓存区中第三虚拟机实例对应的内存;处理单元还用于缩小虚拟机缓存区的内存大小。作为一种可选的实施方式,创建单元还用于建立并存储第一虚拟机实例的标识和第一虚拟机实例的内存大小之间的对应关系;在回收虚拟机缓存区中第三虚拟机实例对应的内存之后,接收单元还用于接收第二应用的启动指令;根据预存的应用标识与虚拟机实例标识的对应关系,处理单元还用于确定第二应用对应的第三虚拟机实例的标识;根据预存的虚拟机标识与虚拟机实例内存大小之间的对应关系,获取单元还用于获取第三虚拟机实例的标识对应的第三虚拟机实例的内存大小;创建单元还用于根据第三虚拟机实例的内存大小创建第三虚拟机实例。该应用启动装置解决问题的实施方式以及有益效果可以参见上述第一方面任意一种可选的实施方式中的方法以及有益效果,重复之处不再赘述。本申请实施例第三方面提供了一种终端设备,包括处理器和存储器,处理器和存储器相互连接,其中,存储器用于存储计算机程序,计算机程序包括程序指令,处理器被配置用于调用程序指令,执行如权利如本申请实施例第一方面所描述的方法。该终端设备解决问题的实施方式以及有益效果可以参见上述第一方面任意一种可选的实施方式中的方法以及有益效果,重复之处不再赘述。本申请实施例第四方面提供了一种计算机可读存储介质,计算机存储介质存储有计算机程序,计算机程序包括程序指令,程序指令当被处理器执行时使处理器执行如本申请实施例第一方面所描述的方法。附图说明为了更清楚地说明本申请实施例技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。图1是本申请实施例提供的一种终端设备的结构图;图2是本申请实施例提供的一种应用启动方法的流程示意图;图3是本申请实施例提供的一种终端设备的内存结构示意图;图4是本申请实施例提供的一种应用启动方法的流程示意图;图5是本申请实施例提供的一种终端设备的界面示意图;图6是本申请实施例提供的一种应用启动方法的流程示意图;图7是本申请实施例提供的一种应用启动方法的流程示意图;图8是本申请实施例提供的一种应用启动装置的结构示意图;图9是本申请实施例提供的一种终端设备的结构示意图。具体实施方式下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。本申请的说明书和权利要求书及上述附图中的术语“第一”、“第二”、“第三”等是用于区别不同对象,而非用于描述特定顺序。此外,术语“包括”以及它们任何变形,意图在于覆盖不排他的包含。例如包含了一系列步骤或模块的过程、方法、系统、产品或设备没有限定于已列出的步骤或模块,而是可选地还包括没有列出的步骤或模块,或可选地还包括对于这些过程、方法、产品或设备固有的其它步骤或模块。在本文中提及“实施例”意味着,结合实施例描述的特定特征、结构或特性可以包含在本申请的至少一个实施例中。在说明书中的各个位置出现该短语并不一定均是指相同的实施例,也不是与其它实施例互斥的独立的或备选的实施例。本领域技术人员显式地和隐式地理解的是,本文所描述的实施例可以与其它实施例相结合。应理解,本申请实施例的技术方案可具体应用于各类终端设备,终端设备具体可以是指用户用于运行应用程序所使用的终端。终端设备可以可包括但不限于:智能手机(如android手机、ios手机等)、平板电脑、便携式个人计算机、移动互联网设备(mobileinternetdevices,简称mid)、智能手表、个人数字助理(personaldigitalassistant,简称pda)、手环及智能电视等设备,本申请实施例不做限定。为了能够更好地理解本申请实施例,下面对本申请实施例的终端设备的软件系统进行详细介绍。其中,终端设备软件系统可以采用分层架构,事件驱动架构,微核架构,微服务架构,或云架构。本申请实施例以分层架构的android系统为例,示例性说明终端设备的软件结构。如图1所示,图1是本申请实施例的终端设备的软件结构框图。分层架构将软件分成若干个层,每一层都有清晰的角色和分工。层与层之间通过软件接口通信。在一些实施例中,将android系统分为五层,从上至下分别为应用程序层,应用程序框架层,安卓运行时(androidruntime)和系统库,内核层和安全操作系统层。应用程序层可以包括一系列应用程序包。如图1所示,应用程序包可以包括相机,文件分享应用,防病毒应用,图库,通话,导航,wlan,蓝牙,音乐,视频,短信息等应用程序。应用程序框架层为应用程序层的应用程序提供应用编程接口(applicationprogramminginterface,api)和编程框架。应用程序框架层包括一些预先定义的函数。如图1所示,应用程序框架层可以包括窗口管理器,内容提供器,视图系统,电话管理器,资源管理器,通知管理器等。窗口管理器用于管理窗口程序。窗口管理器可以获取显示屏大小,判断是否有状态栏,锁定屏幕,截取屏幕等。内容提供器用来存放和获取数据,并使这些数据可以被应用程序访问。数据可以包括视频,图像,音频,拨打和接听的电话,浏览历史和书签,电话簿等。视图系统包括可视控件,例如显示文字的控件,显示图片的控件等。视图系统可用于构建应用程序。显示界面可以由一个或多个视图组成的。例如,包括短信通知图标的显示界面,可以包括显示文字的视图以及显示图片的视图。电话管理器用于提供终端设备的通信功能。例如通话状态的管理(包括接通,挂断等)。资源管理器为应用程序提供各种资源,比如本地化字符串,图标,图片,布局文件,视频文件等等。通知管理器使应用程序可以在状态栏中显示通知信息,可以用于传达告知类型的消息,可以短暂停留后自动消失,无需用户交互。比如通知管理器被用于告知下载完成,消息提醒等。androidruntime包括核心库和虚拟机,其中,虚拟机可以是dalvik虚拟机,dalvik虚拟机是android移动设备平台的核心组成部分之一。或者,还可以是windows操作系统上的ubuntu虚拟机等其他虚拟机。androidruntime负责安卓系统的调度和管理。核心库包含两部分:一部分是java语言需要调用的功能函数,另一部分是安卓的核心库。应用程序层和应用程序框架层运行在虚拟机中。虚拟机将应用程序层和应用程序框架层的java文件执行为二进制文件。虚拟机用于执行对象生命周期的管理,堆栈管理,线程管理,安全和异常的管理,以及垃圾回收等功能。系统库可以包括多个功能模块。例如:表面管理器(surfacemanager),媒体库(medialibraries),三维图形处理库(例如:opengles),2d图形引擎(例如:sgl)等。表面管理器用于对显示子系统进行管理,并且为多个应用程序提供了2d和3d图层的融合。媒体库支持多种常用的音频,视频格式回放和录制,以及静态图像文件等。媒体库可以支持多种音视频编码格式,例如:mpeg4,h.264,mp3,aac,amr,jpg,png等。三维图形处理库用于实现三维图形绘图,图像渲染,合成,和图层处理等。2d图形引擎是2d绘图的绘图引擎。内核层是硬件和软件之间的层。内核层至少包含显示驱动,摄像头驱动,音频驱动,传感器驱动。下面进一步对本申请实施例提供的应用启动方法进行介绍。请参见图2,图2为本申请实施例提供的一种应用启动方法的流程示意图。如图2所示,该应用启动方法可以包括201~203部分。其中:201、终端设备接收用于启动第一应用的启动指令。其中,第一应用可以是终端设备上的任一应用,可以是音乐播放器、视频播放器、聊天应用等任一应用,本申请实施例不做限定。202、终端设备响应该启动指令,从虚拟机缓存区获取与第一应用对应的第一虚拟机实例。本申请实施例中,在终端设备接收到启动第一应用的启动指令之后,可以从虚拟机缓存区获取与第一应用对应的第一虚拟机实例。其中,虚拟机缓存区包括于终端设备的内存中。其中,图3为终端设备的内存的结构示意图。如图3所示,虚拟机缓存区包含于内存中,虚拟机缓存区包括一个或多个虚拟机实例,该虚拟机实例可以是dalvik虚拟机实例,或者可以是其他虚拟机实例。图3虚拟机缓存区包括三个虚拟机实例仅用于示例,并不构成对本申请实施例的限定。作为一种可选的实施方式,终端设备响应启动指令,从虚拟机缓存区获取与第一应用对应的第一虚拟机实例的具体实施方式包括以下步骤11)~12):11)终端设备响应启动指令,根据预存的应用标识与虚拟机实例标识的对应关系,获取第一应用的标识对应的第一虚拟机实例的标识。12)终端设备根据第一虚拟机的标识在虚拟机缓存区获取第一虚拟机实例。步骤11)~12)中,终端设备在运行应用前可根据预存的应用标识与虚拟机实例标识的对应关系通过第一应用的标识找到第一应用的标识对应的第一虚拟机的标识,再通过第一虚拟机的标识找到第一虚拟机实例。其中,应用标识可以是应用id等可以唯一标识该应用的信息,本申请实施例不做限定。其中,预存的对应关系包含一个或多个应用标识与虚拟机标识的对应关系,本申请实施例不做限定。例如,如下表1所示,当前预存的对应关系包括应用1的标识与虚拟机实例1的标识的对应关系,应用2的标识与虚拟机实例2的标识的对应关系,应用3的标识与虚拟机实例3的标识的对应关系和应用4的标识与虚拟机实例4的标识的对应关系。当接收到启动应用1的启动指令后,在预存的应用标识与虚拟机实例标识的对应关系中,确定应用1的标识存在对应的虚拟机实例1的标识;然后在虚拟机缓存区获取应用1虚拟机的标识对应的虚拟机实例1,终端设备在虚拟机实例1中运行应用1。表1应用标识虚拟机实例的标识应用1的标识虚拟机实例1的标识应用2的标识虚拟机实例2的标识应用3的标识虚拟机实例3的标识应用4的标识虚拟机实例4的标识可见,通过预存应用标识与虚拟机实例标识的对应关系的方式,可使终端设备快速找到与第一应用的标识对应的第一虚拟机实例的标识。203、终端设备在第一虚拟机实例中运行第一应用。具体地,终端设备将第一应用加载至第一虚拟机实例中进行运行。可见,通过图2所描述的方法,终端设备通过从缓存区直接获取第一应用对应的第一虚拟机实例的方式,不需要每次重新建立虚拟机实例,提高了应用启动的速度。请参见图4,图4为本申请实施例提供的一种应用启动方法的流程示意图。如图4所示,该应用启动方法可以包括401~407部分。其中:401、终端设备接收用于启动第一应用的启动指令。402、终端设备响应启动指令,根据预存的应用标识与虚拟机实例标识的对应关系,获取第一应用的标识对应的第一虚拟机实例的标识,若获取成功执行步骤403,否则执行步骤405。作为一种可选的实施方式,第一虚拟机的标识可以为哈希值,在创建第一虚拟机实例的时候,根据智能合约为第一虚拟机实例生成对应的哈希值。可见,通过哈希值的唯一特性可以唯一标识该第一虚拟机实例。403、终端设备根据第一虚拟机的标识在虚拟机缓存区获取第一虚拟机实例。404、终端设备在第一虚拟机实例中运行第一应用。405、终端设备创建第一虚拟机实例。例如,如下表2所示,当前预存的对应关系包括应用1的标识与虚拟机实例1的标识的对应关系,应用2的标识与虚拟机实例2的标识的对应关系和应用3的标识与虚拟机实例3的标识的对应关系,当接收到启动应用4的启动指令后,在预存的应用标识与虚拟机实例标识的对应关系中,确定应用4的标识不存在对应的虚拟机实例4的标识,则创建应用4的虚拟机实例4并存储应用4与虚拟机实例4的对应关系。表2应用标识虚拟机实例的标识应用1的标识虚拟机实例1的标识应用2的标识虚拟机实例2的标识应用3的标识虚拟机实例3的标识应用4的标识空406、终端设备建立并存储第一应用的标识和第一虚拟机实例的标识之间的对应关系。具体的,终端设备建立的对应关系可存储在硬盘等外存中,并且在第一虚拟机实例中运行第一应用结束之后,终端设备将第一虚拟机实例存放于虚拟机缓存区。作为一种可选的实施方式,建立并存储第一应用的标识和第一虚拟机的标识之间的对应关系之前,具体实施方式还包括以下步骤21)~步骤23):21)判断第一应用是否为常用应用。22)若是,则执行建立并存储第一应用的标识和第一虚拟机的标识之间的对应关系的步骤。可选的,终端设备确定第一应用为常用应用之后,还可以储存第一虚拟机实例的标识与第一虚拟机实例内存大小之间的对应关系,该对应关系可存储在硬盘等外存中。23)若第一应用不为常用应用,则在第一虚拟机实例中运行第一应用结束后直接回收第一虚拟机实例。下面对判断第一应用是否为常用应用的三种具体实施方式进行介绍:方式一,终端设备判断在预设时间内,第一应用启动的实际次数是否超过预设次数;若是,则确定第一应用为常用应用。其中,预设时间,预设次数可以是由用户预先设定。例如,预设时间可以是1天,3天,5天,7天等,预设次数可以是5次,10次,20次,50次等。方式二,终端设备判断在预设时间内,第一应用的使用时长是否超过预设时长;若是,则确定第一应用为常用应用。其中,预设时间,预设时长可以是由用户预先设定,预设时间可以是1天,3天,5天,7天等,预设时长可以是1小时,3小时,5小时,10小时等。方式三,用户可以预先设置常用应用。例如,如图5所示,用户通过一个功能键进入常用应用设置界面,该常用应用设置界面包括手机上所有的应用,用户可选择任意一个或多个应用作为常用应用。例如用户选择应用1作为常用应用,当应用1启动时,终端设备确定应用1为常用应用,则创建应用1对应的虚拟机实例1,并存储应用1的标识和虚拟机实例1的标识之间的对应关系。407、终端设备在第一虚拟机实例中运行所述第一应用,并在运行结束之后,将第一虚拟机实例存储至虚拟机缓存区。可见,通过图4所描述的方法,终端设备可根据预存的应用标识与虚拟机实例标识的对应关系确定与第一应用的标识对应的第一虚拟机的标识,若不存在与第一应用的标识对应的第一虚拟机的标识,则创建第一虚拟机实例,基于该技术方案,可以为未创建虚拟机实例的应用创建虚拟机实例并存放在虚拟机缓存区,有利于应用再次快速启动。请参见图6,图6为本申请实施例提供的一种应用启动方法的流程示意图。如图9所示,该应用方法可以包括601~607部分。其中:601、终端设备接收用于启动第一应用的启动指令。602、终端设备响应启动指令,从虚拟机缓存区获取与第一应用对应的第一虚拟机实例。603、终端设备在第一虚拟机实例中运行第一应用。604、启动终端设备。本申请实施例中,启动终端设备可以是在电量不足自动关机后启动终端设备,可以是用户关机后启动终端设备,可以是终端设备自动重启,也可以是用户重启终端设备等,本申请实施例不做限定。本申请实施例中,当启动终端设备时,虚拟机缓存区中所有的虚拟机实例都会被回收。605、终端设备获取记录的第二虚拟机实例的标识。在启动终端设备之后,终端设备会在硬盘等外存获取记录的第二虚拟机实例的标识,其中,该第二虚拟机实例为上一次关机之前虚拟机缓存区内的虚拟机实例,该第二虚拟机实例可以是一个或多个虚拟机实例。606、终端设备创建第二虚拟机实例。具体的,终端设备在虚拟机缓存区中的获取第二虚拟机实例的标识之后,可以根据预存的应用标识与虚拟机实例标识的对应关系,确定第二虚拟机实例的标识对应的应用的标识。终端设备再根据预存的虚拟机标识与虚拟机实例内存大小之间的对应关系,确定第二虚拟机实例的标识对应的第二虚拟机实例内存大小。根据第二虚拟机实例的标识对应的应用的标识和第二虚拟机的内存大小创建第二虚拟机实例,并将预存的第二虚拟机实例的标识分配给创建的虚拟机实例。例如,如下表3所示,当前预存的对应关系包括应用1的标识与虚拟机实例1内存大小的对应关系,应用2的标识与虚拟机实例2内存大小的对应关系。终端设备因电量不足自动关机,当终端设备在关机之前,虚拟机缓存区中存在虚拟机实例1。在重新充电并启动终端设备之后,终端设备会记录在终端设备在关机之前,终端设备虚拟机缓存区中的虚拟机实例1的标识;根据预存的应用标识与虚拟机实例标识的对应关系,终端设备确定与虚拟机实例1的标识对应的应用1的标识;终端设备再根据预存的虚拟机标识与虚拟机实例内存大小之间的对应关系确定与虚拟机实例1的标识对应的虚拟机实例1内存大小;最后根据应用1的标识和虚拟机实例1内存大小终端设备重新创建虚拟机实例1,并将预存的虚拟机实例1的标识分配给虚拟机实例1。表3应用标识虚拟机实例内存大小应用1的标识虚拟机实例1内存大小应用2的标识虚拟机实例2内存大小607、终端设备将第二虚拟机实例存放在虚拟机缓存区。可见,通过图6所描述的方法,终端设备可以记录关机之前虚拟机缓存区的虚拟机标识,并在重新启动时,自动创建关机之前的虚拟机实例,基于该可选方式可以恢复上一次关机之前的虚拟机实例。请参见图7,图7为本申请实施例提供的一种应用启动方法的流程示意图。如图7所示,该应用启动方法可以包括701~711部分。其中:701、终端设备接收用于启动第一应用的启动指令。702、终端设备响应该启动指令,根据预存的应用标识与虚拟机实例标识的对应关系,获取第一应用的标识对应的第一虚拟机实例的标识,若获取成功则执行步骤703,否则执行步骤705。703、终端设备根据第一虚拟机实例的标识在虚拟机缓存区获取第一虚拟机实例。704、终端设备在第一虚拟机实例中运行第一应用。705、终端设备则创建第一虚拟机实例。706、终端设备建立并存储第一应用的标识和第一虚拟机实例的标识之间的对应关系。707、终端设备在第一虚拟机实例中运行所述第一应用,并在运行结束之后,将第一虚拟机实例存储至虚拟机缓存区。708、终端设备判断当前剩余内存是否小于第一阈值。可选的,终端设备可以以预设时间为周期来判断当前剩余内存是否小于第一阈值。709、若是,终端设备从虚拟机缓存区中确定第三虚拟机实例。在当前剩余内存小于第一阈值时,终端设备从虚拟机缓存区中确定第三虚拟机。其中,第三虚拟机可以是一个或多个虚拟机实例。可选的,当运行应用时,出现卡顿,延迟,降速等情况时终端设备从虚拟机缓存区中确定第三虚拟机。例如,可以是在使用视频播放应用时出现画质降低、动画卡顿,可以是在发送文件时出现速度降低,发送文件出现延迟等情况。下面对如何确定第三虚拟机实例的具体实施方式进行介绍:方式一,第三虚拟机实例可以是超过预设天数未使用的虚拟机实例。预设天数可以由用户设定,预设天数的值可以是1天,3天,5天,7天,10天等。方式二,第三虚拟机也可以是虚拟机缓存区中距离上一次启动时间的时间间隔大于预设时长的一个或多个虚拟机实例。方式三,终端设备确定虚拟机缓存区中的各个虚拟机实例对应的应用;终端设备输出应用列表或者用户通过一个功能键打开应用列表,该应用列表中包括虚拟机缓存区中的各个虚拟机实例对应的应用;接收并确定用户对应用列表中的应用的选择指令,确定选择指令中的应用对应的虚拟机实例为第三虚拟机实例。710、终端设备回收虚拟机缓存区中第三虚拟机实例对应的内存。在终端设备确定第三虚拟机实例之后,终端设备回收虚拟机缓存区中的第三虚拟机实例对应的内存。711、终端设备缩小虚拟机缓存区的内存大小。其中,缩小虚拟机缓存区的内存大小的值可以是缩小一个固定的内存值,可以是缩小回收的第三虚拟机实例的内存值。其中,固定内存值可以是由用户设定。其中,可在步骤701~步骤706中任一步骤执行之后,执行步骤707~步骤710,图7所描述的方法仅用于示例,并不构成对本申请实施例的限定。例如,在终端设备在第一虚拟机实例中运行第一应用之后,检测到剩余内存小于第一阈值时,终端设备确定第三虚拟机实例为虚拟机缓存区超过3天未使用的虚拟机实例1和虚拟机实例2;然后终端设备回收虚拟机缓存区中虚拟机实例1和虚拟机实例2对应的内存,并缩小虚拟机缓存区的内存大小。可见,通过图7所描述的方法,当出现内存不足的情况时,终端设备能够灵活地调节缓存区的大小,提高应用在运行时的流畅度。作为一种可选的实施方式,创建第一虚拟机实例之后,具体实施方式还包括:建立并存储第一虚拟机实例的标识和第一虚拟机实例的内存大小之间的对应关系。回收虚拟机缓存区中第三虚拟机实例对应的内存之后,具体实施方式还包括以下步骤31)~34):31)接收第二应用的启动指令。其中,第二应用为已建立应用标识与虚拟机实例标识的对应关系的应用。32)根据预存的应用标识与虚拟机实例标识的对应关系,确定第二应用对应的第三虚拟机实例的标识。33)根据预存的虚拟机标识与虚拟机实例内存大小之间的对应关系,获取第三虚拟机实例的标识对应的第二虚拟机实例的内存大小。34)根据第三虚拟机实例的内存大小创建第三虚拟机实例。例如,在应用1第一次启动时,不存在与应用1的标识对应的虚拟机实例的标识,终端设备则创建应用1的虚拟机实例;在创建虚拟机实例之后建立并存储应用1的标识与虚拟机实例1的标识的对应关系以及虚拟机实例1的标识和虚拟机实例1的内存大小之间的对应关系;当在运行过程中出现内存不足的情况下,虚拟机实例1内存被回收,当应用1再次启动时,终端设备通过预存的应用1标识与虚拟机实例标识的对应关系,确定应用1的标识对应的虚拟机实例1的标识,根据虚拟机实例1的内存大小创建虚拟机实例1,并将预先保存的虚拟机实例1的标识分配给创建的虚拟机实例1。可见,基于该可选方式,当接收到被回收了虚拟机实例的应用的启动指令时,终端设备能够快速创建虚拟机实例。请参见图8,图8示出了本申请实施例的一种应用启动装置的结构示意图。图8所示的通信装置可以用于执行上述图2、图4、图6和图7中所描述的方法实施例中终端设备的部分或全部功能。图8所示的应用启动装置可以包括接收单元801、获取单元802、创建单元803和处理单元804。其中:接收单元801,用于接收用于启动第一应用的启动指令;获取单元802,用于从虚拟机缓存区获取与第一应用对应的第一虚拟机实例,虚拟机缓存区包括于内存中;当不存在与第一应用的标识对应的第一虚拟机实例的标识时,创建单元803,用于创建第一虚拟机实例;处理单元804,用于在第一虚拟机实例中运行第一应用。作为一种可选方式,终端设备响应启动指令,根据预存的应用标识与虚拟机实例标识的对应关系,获取单元802还用于获取第一应用的标识对应的第一虚拟机实例的标识。作为一种可选的实施方式,接收单元801接收用于启动第一应用的启动指令,若不存在与第一应用的标识对应的第一虚拟机的标识,则创建第一虚拟机实例之后,创建单元803还用于建立并存储第一应用的标识和第一虚拟机的标识之间的对应关系;处理单元804还用于将第一虚拟机实例存放于虚拟机缓存区。作为一种可选的实施方式,启动终端设备,获取单元802还用于获取记录的第二虚拟机实例的标识;创建单元803还用于创建第二虚拟机实例;处理单元804还用于将第二虚拟机实例存放在虚拟机缓存区。作为一种可选的实施方式,处理单元804还用于判断当前剩余内存是否小于第一阈值,剩余内存为除虚拟机缓存区之外的内存;若是,则处理单元804还用于从虚拟机缓存区中确定第三虚拟机实例;处理单元804还用于回收虚拟机缓存区中第三虚拟机实例对应的内存;处理单元804还用于缩小虚拟机缓存区的内存大小。作为一种可选的实施方式,创建单元803还用于建立并存储第一虚拟机实例的标识和第一虚拟机实例的内存大小之间的对应关系;在回收虚拟机缓存区中第三虚拟机实例对应的内存之后,接收单元801还用于接收第二应用的启动指令;根据预存的应用标识与虚拟机实例标识的对应关系,处理单元804还用于确定第二应用对应的第三虚拟机实例的标识;根据预存的虚拟机标识与虚拟机实例内存大小之间的对应关系,获取单元802还用于获取第三虚拟机实例的标识对应的第三虚拟机实例的内存大小;创建单元803还用于根据第三虚拟机实例的内存大小创建第三虚拟机实例。请参见图9,图9示出了本申请实施例的一种终端设备的结构示意图。该终端设备900包括处理器901、通信接口902和存储器903,其中,终端设备900还可以包括总线904。处理器901、通信接口902和存储器903可以通过总线904相互连接,总线904可以是外设部件互连标准(peripheralcomponentinterconnect,简称pci)总线或扩展工业标准结构(extendedindustrystandardarchitecture,简称eisa)总线等。总线904可以分为地址总线、数据总线、控制总线等。为便于表示,图9中仅用一条粗线表示,但并不表示仅有一根总线或一种类型的总线。存储器903用于存储计算机程序,计算机程序包括程序指令,处理器被配置用于调用程序指令,执行上述图2、图4、图6和图7中所描述的全部或部分方法。本申请实施例还提供一种计算机存储介质,其中,该计算机存储介质存储有计算机程序,该计算机程序使得计算机执行上述图2、图4、图6和图7中的全部或部分方法步骤。上述计算机可读存储介质可以是前述任一实施例上述的终端设备的内部存储单元,例如终端设备的硬盘或内存。上述计算机可读存储介质也可以是上述终端设备的外部存储设备,例如上述终端设备上配备的插接式硬盘,智能存储卡(smartmediacard,smc),安全数字(securedigital,sd)卡,闪存卡(flashcard)等。进一步地,上述计算机可读存储介质还可以既包括上述终端设备的内部存储单元也包括外部存储设备。上述计算机可读存储介质用于存储上述计算机程序以及上述终端设备所需的其他程序和数据。上述计算机可读存储介质还可以用于暂时地存储已经输出或者将要输出的数据。本领域普通技术人员可以意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、计算机软件或者二者的结合来实现,为了清楚地说明硬件和软件的可互换性,在上述说明中已经按照功能一般性地描述了各示例的组成及步骤。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本申请的范围。所属领域的技术人员可以清楚地了解到,为了描述的方便和简洁,上述描述的服务器和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。在本申请所提供的几个实施例中,应该理解到,所揭露的服务器和方法,可以通过其它的方式实现。例如,以上所描述的终端实施例仅仅是示意性的,例如,上述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另外,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口、终端或单元的间接耦合或通信连接,也可以是电的,机械的或其它的形式连接。上述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本申请实施例方案的目的。另外,在本申请各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以是两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。上述集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分,或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本申请各个实施例上述方法的全部或部分步骤。而前述的存储介质包括:u盘、移动硬盘、只读存储器(read-onlymemory,rom)、随机存取存储器(randomaccessmemory,ram)、磁碟或者光盘等各种可以存储程序代码的介质。在上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述的部分,可以参见其他实施例的相关描述。当前第1页1 2 3 
当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1