应用程序启动方法、装置、终端设备及存储介质与流程

文档序号:26003605发布日期:2021-07-23 21:21阅读:87来源:国知局
应用程序启动方法、装置、终端设备及存储介质与流程

本申请涉及终端技术领域,具体涉及一种应用程序启动方法、装置、终端设备及存储介质。



背景技术:

随着电子技术及互联网技术的快速发展,市面上出现越来越多的应用程序(application,app),应用程序能够丰富终端设备的功能,以满足用户使用终端设备的不同需求。传统的应用程序均需要从服务端下载安装包,并在终端设备的本地系统安装之后才可使用,较为繁琐、复杂,因此,新型的免安装应用程序成为当下应用厂商研发的热点。在使用免安装应用程序时无需下载安装包进行安装,用户可即点即用,且能够使用终端设备的原生功能。免安装应用程序需满足用户快速使用应用的需求,因此如何提高免安装应用程序的启动速度成了亟需解决的问题。



技术实现要素:

本申请实施例公开了一种应用程序启动方法、装置、终端设备及存储介质,能够提高免安装应用程序的启动速度。

本申请实施例公开了一种应用程序启动方法,包括:

接收针对目标应用程序的启动指令,所述目标应用程序属于免安装应用程序;

若当前没有运行所述免安装应用程序对应的主进程,则根据所述启动指令启动所述主进程,并在所述主进程中对所述目标应用程序对应的资源进行处理,以启动所述目标应用程序。

本申请实施例公开了一种应用程序启动装置,包括:

指令接收模块,用于接收针对目标应用程序的启动指令,所述目标应用程序属于免安装应用程序;

处理模块,用于若当前没有运行所述免安装应用程序对应的主进程,则根据所述启动指令启动所述主进程,并在所述主进程中对所述目标应用程序对应的资源进行处理,以启动所述目标应用程序。

本申请实施例公开了一种终端设备,包括存储器及处理器,所述存储器中存储有计算机程序,所述计算机程序被所述处理器执行时,使得所述处理器实现如上所述的方法。

本申请实施例公开了一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现如上任一所述的方法。

本申请实施例公开的应用程序启动方法、装置、终端设备及存储介质,接收针对目标应用程序的启动指令,该目标应用程序属于免安装应用程序,若当前没有运行免安装应用程序对应的主进程,则根据启动指令启动主进程,并在主进程中对目标应用程序对应的资源进行处理,以启动目标应用程序,在启动主进程时直接利用主进程对资源进行处理,实现免安装应用程序的启动,无需启动额外的进程处理资源,减少启动额外的进程所耗费的时间,提高了免安装应用程序的启动速度,且可降低内存消耗。

附图说明

为了更清楚地说明本申请实施例中的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。

图1为一个实施例中应用程序启动方法的应用场景图;

图2为一个实施例中应用程序启动方法的流程图;

图3为另一个实施例中应用程序启动方法的流程图;

图4为另一个实施例中应用程序启动方法的流程图;

图5a为相关技术中启动免安装应用的示意图;

图5b为本申请一个实施例中启动免安装应用的示意图;

图6为一个实施例中应用程序启动装置的框图;

图7为一个实施例中终端设备的结构框图。

具体实施方式

下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。

需要说明的是,本申请实施例及附图中的术语“包括”和“具有”以及它们任何变形,意图在于覆盖不排他的包含。例如包含了一系列步骤或单元的过程、方法、系统、产品或设备没有限定于已列出的步骤或单元,而是可选地还包括没有列出的步骤或单元,或可选地还包括对于这些过程、方法、产品或设备固有的其它步骤或单元。

可以理解,本申请所使用的术语“第一”、“第二”等可在本文中用于描述各种元件,但这些元件不受这些术语限制。这些术语仅用于将第一个元件与另一个元件区分。举例来说,在不脱离本申请的范围的情况下,可以将第一线程称为第二线程,且类似地,可将第二线程称为第一线程。第一线程和第二线程两者都是线程,但其不是同一线程。

目前终端设备的应用程序的开发,都是基于各个操作系统提供的语言进行开发,比如在android(安卓)操作系统上运行的应用程序,需要使用android操作系统提供的java语言或者kotlin语言来进行开发,而在ios操作系统上运行的应用程序则需要使用ios操作系统的c语言进行开发。因此,开发者在开发一个应用程序时,就需要同时使用不同操作系统提供的语言开发可以运行在不同操作系统的多个版本,人力投入大。为了解决这个问题,业界出现了跨平台的解决方案。

免安装应用程序(如快应用,weex,小程序等)就是跨平台解决方案的代表,这类跨平台技术可以使用前端javascript语言进行开发,且只需要开发一个版本,即可在不同操作系统中运行。

在相关的技术中,终端设备在启动免安装应用程序时,需要额外启动一个进程用于对免安装应用程序的资源进行渲染等处理,以完成免安装应用的启动。因此,在未启动免安装应用程序的主进程的情况下,需先启动主进程,并再启动一个新的进程处理启动的免安装应用的资源,需要启动两个进程,增加了启动进程的耗时,导致免安装应用的启动速度较慢。

在本申请实施例中,提供一种应用程序启动方法、装置、终端设备及计算机可读存储介质,能够提高免安装应用程序的启动速度,且可降低内存消耗。

图1为一个实施例中应用程序启动方法的应用场景图。如图1所示,该应用场景中可包括用户10及终端设备20,该终端设备20可包括但不限于手机、智能可穿戴设备、车载终端、平板电脑、笔记本电脑及pc(personalcomputer,个人计算机)等。用户10可通过点击等方式触发终端设备20的屏幕上显示的免安装应用程序的应用图标,选择所需的免安装应用程序启动,并进行使用。

终端设备20可接收针对目标应用程序的启动指令,该目标应用程序属于免安装应用程序,若当前没有运行免安装应用程序对应的主进程,则可根据该启动指令启动主进程,并在主进程中对目标应用程序对应的资源进行处理,以启动目标应用程序。在终端设备20启动主进程时,直接利用主进程对资源进行处理,实现免安装应用程序的启动,无需启动额外的进程处理资源,减少启动额外的进程所耗费的时间,提高了免安装应用程序的启动速度,且可降低内存消耗。

如图2所示,在一个实施例中,提供一种应用程序启动方法,该方法可应用于上述的终端设备,该终端设备的操作系统可包括但不限于android操作系统、ios操作系统、symbian(塞班)操作系统、windows操作系统等,本申请实施例不做限定。该应用程序启动方法,可包括以下步骤:

步骤210,接收针对目标应用程序的启动指令,该目标应用程序属于免安装应用程序。

终端设备的屏幕上可显示有一个或多个免安装应用的应用图标,用户可通过点击、长按等触控操作选择所需使用的免安装应用的应用图标进行触控。在终端设备检测到用户针对任一免安装应用的应用图标的触控操作时,可获取该触控操作所触控的应用图标对应的应用信息,该应用信息可包括但不限于应用名称、应用id(identitydocument,身份标识号)、版本号等。可根据该应用信息确定所需启动的目标应用程序,并生成针对该目标应用程序的启动指令。

需要说明的是,除了触控操作以后,也可采用其它的交互方式选择需要启动的目标应用程序,例如可通过语音选择、通过视线交互选择等方式,本申请不对目标应用程序的选择方式进行限定。

步骤220,若当前没有运行免安装应用程序对应的主进程,则根据启动指令启动主进程,并在主进程中对目标应用程序对应的资源进行处理,以启动目标应用程序。

终端设备的操作系统可包括能够支持免安装应用运行的应用引擎,该应用引擎可指的是应用框架,应用引擎能够支持免安装应用在多个不同的操作系统上正常运行,实现免安装应用的跨平台应用生态。可选地,该应用引擎可采用javascript语言对各个操作系统的原生功能进行封装,以得到多个以js对象呈现的接口,开发人员可直接以javascript语言开发免安装应用,即可实现免安装应用的可跨平台使用的特点。

应用引擎可接收针对目标应用程序的启动指令,可判断当前是否运行有免安装应用对应的主进程。其中,进程是操作系统进行资源分配和调度的基本单位,是计算机中的程序关于某数据集合上的一次运行活动,也可理解为是正在运行的程序的实例。

在本申请实施例中,目标应用程序的启动方式可为冷启动,冷启动指的是当应用程序启动时后台没有该应用程序的进程,操作系统需要重新分配一个进程给该应用程序的启动方式,在应用程序进行冷启动时,需要重新加载应用程序的资源。由于目标应用程序为免安装应用,在终端设备的本地系统中没有下载应用安装包及安装,因此在启动目标应用程序时需要分配进程用于负责获取目标应用程序的资源等相关工作。在本申请实施例中,可由免安装应用对应的主进程负责获取目标应用程序的资源等相关工作,可选地,可包括从服务器下载目标应用程序的应用包、对应用包进行解压、校验等,但不限于此。

在一些实施例中,免安装应用对应的主进程可用于负责多个启动的免安装应用的获取资源等相关工作,也即,终端设备可仅启动一个主进程,在启动多个免安装应用时,启动的多个免安装应用均可通过该主进程获取资源。在主进程获取资源后,操作系统还需再额外启动一个资源进程,用于对获取的资源进行渲染等处理,在资源加载完成后,完成免安装应用的加载。

在本申请实施例中,在应用引擎接收到针对目标应用程序的启动指令后,可判断当前是否运行有免安装应用对应的主进程。若当前没有运行免安装应用对应的主进程,可说明该目标应用程序为操作系统中第一个启动的免安装应用程序,操作系统中第一个启动的免安装应用程序可指的是免安装应用程序在启动时,操作系统中目前没有其它免安装应用程序正在运行。若目标应用程序为操作系统中第一个启动的免安装应用程序,则操作系统可根据启动指令启动免安装应用对应的主进程,通过该主进程获取目标应用程序的相关资源。

在相关技术中,在主进程获取目标应用程序的资源之后,操作系统还需启动免安装应用对应的资源进程,该资源进程可用于对目标应用程序的资源进行渲染等处理,也即,第一个启动的免安装应用程序需要启动两个进程,导致耗时增加。而在本申请实施例中,若目标应用程序为操作系统中第一个启动的免安装应用程序,在启动主进程,并通过主进程获取目标应用程序的资源后,可直接通过主进程对目标应用程序的资源进行渲染等处理,在渲染并显示目标应用程序的界面后,即完全目标应用程序的启示。而不用再额外启动新的资源进程,从而可节省目标应用程序的启动时间,提高启动速度。

在本申请实施例中,接收针对目标应用程序的启动指令,该目标应用程序属于免安装应用程序,若当前没有运行免安装应用程序对应的主进程,则根据启动指令启动主进程,并在主进程中对目标应用程序对应的资源进行处理,以启动目标应用程序,在启动主进程时直接利用主进程对资源进行处理,实现免安装应用程序的启动,无需启动额外的进程处理资源,减少启动额外的进程所耗费的时间,提高了免安装应用程序的启动速度,且可降低内存消耗。

如图3所示,在一个实施例中,提供另一种应用程序启动方法,可应用于上述的终端设备,该方法可包括以下步骤:

步骤302,接收针对目标应用程序的启动指令,该目标应用程序属于免安装应用程序。

步骤304,若当前没有运行免安装应用程序对应的主进程,则根据启动指令启动主进程。

步骤302~304的描述可参照上述实施例中的相关描述,在此不再一一赘述。

步骤306,通过主进程下载目标应用程序对应的资源。

在终端设备启动主进程后,主进程可用于负责获取目标应用程序的资源的相关工作。可通过主进程从服务器下载目标应用程序的应用包,并对该应用包进行解压,以得到目标应用程序对应的资源,可选地,该资源可包括但不限于目标应用程序的配置文件、各个界面的javascript文件、展示的图像数据、文字数据等。

在一些实施例中,主进程在下载目标应用程序的应用包之前,可先判断终端设备的存储器中是否存储有与目标应用程序对应的历史应用包,该历史应用包可为终端设备在之前使用目标应用程序时下载的应用包。若存储器中存储有与目标应用程序对应的历史应用包,说明目标应用程序在终端设备不是首次被启动,则主进程可获取历史应用包的包信息,例如历史应用包的下载时间、对应的版本号等,并将该包信息发送至服务器,由服务器判断该历史应用包是否为目标应用程序的最新应用包。可选地,服务器可将终端设备发送的包信息与最新应用包的包信息进行比对,若二者一致,则确定该历史应用包为目标应用程序的最新应用包,若二者不一致,则可确定该历史应用包不是目标应用程序的最新应用包。

若存储的历史应用包不是最新应用包,则主进程可从服务器下载目标应用程序的最新应用包,并对该最新应用包进行解压,得到目标应用程序的资源。进一步地,主进程可仅下载最新应用包与历史应用包之间的区别数据,该区别数据即为更新的数据,而不需要下载整个最新应用包,从而可加快下载速度,进一步提高目标应用程序的启动速度。若存储的历史应用包是最新应用包,则主进程则可直接对历史应用包进行解压,得到目标应用程序的资源。

步骤308,在主进程中,根据资源进行渲染操作,得到显示数据,将显示数据输出到显示装置进行显示,以启动目标应用程序。

终端设备可通过主进程进行渲染操作,可根据下载的资源渲染目标应用程序的待展示页面,渲染可包括确定待展示界面中各个显示控件的布局、显示样式等,以得到待展示界面的显示数据,并利用显示数据进行绘制,将显示数据发送到显示装置,从而可在显示装置中显示待展示界面。

在一些实施例中,主进程可包括第一线程及第二线程,线程是操作系统能够进行运算调度的最小单位,线程是进程中的实际运作单位,一条线程指的是进程中一个单一顺序的控制流,不同线程可用于执行不同的任务。终端设备可通过主进程的第一线程下载目标应用程序对应的资源,在主进程的第二线程中根据资源进行渲染操作,得到显示数据,并将显示数据输出到显示装置进行显示。将资源下载及渲染等不同的任务分配到主进程中不同的线程中进行,从而可保证主进程进行的功能不会互相产生干扰。

作为一种具体实施方式,上述的第二线程可为主进程中的主线程,第一线程可为子线程,主线程可实现对主进程中各个线程的资源调度及分配。可完全由主线程完成对目标应用程序对应的资源的渲染工作,也可新建子线程,并由新建的子线程执行目标应用程序的部分资源的渲染工作,多个线程可并行运行,从而可提高渲染效率。

在一些实施例中,主进程下载目标应用程序对应的资源后,可对下载的资源进行校验,并在校验通过后,才对资源进行渲染,若是校验不通过,则需重新下载目标应用程序对应的资源,或是输出报错信息,以提示下载的应用包出错。

作为一种具体实施方式,可在主进程的第一线程中对下载的资源进行校验,若校验通过,则在主进程的第二线程中对资源进行渲染,得到显示数据,并将显示数据输出到显示装置进行显示。主进程的第一线程在下载目标应用程序的应用包时,可先下载该应用包对应的校验文件,该校验文件可以是经过加密后的文件,该文件中可包含通过哈希算法对应用包的资源进行计算得到的哈希值。主进程可对校验文件进行解密,并在应用包下载及解压完成后,重新利用哈希算法计算下载的资源的哈希值,可将计算得到的哈希值与解密后的校验文件中的哈希值进行比对,判断二者是否匹配,若二者匹配,则可确定下载的应用包校验成功。其中,计算得到的哈希值与解密后的校验文件中的哈希值匹配,可指的是计算得到的哈希值与解密后的校验文件中的哈希值一致,或是计算得到的哈希值与解密后的校验文件中的哈希值之间的相似度大于相似度阈值(例如99%、95%等)。

在本申请实施例中,在主进程下载目标应用程序对应的资源后,需先对下载的资源进行安全校验,可保证下载的资源的准确性及安全性,且在校验通过后才对资源进行渲染,可节省系统资源。

在一些实施例中,主进程也可先从服务器下载目标应用程序启动时所需的资源,例如目标应用程序的配置文件、目标应用程序启动后展示的第一个界面的资源等,并在下载完启动时所需的资源后,对该资源进行渲染,得到显示数据,完成目标应用程序的启动。优先下载目标应用程序启动时所需的资源,而不需要等待整个应用包下载完成后才进行渲染显示,减少启动的等待时间,提高了免安装应用的启动速度。

可选地,可预先将目标应用程序的应用包划分为多个数据片段,每个数据片段可包括不同的资源,每个数据片段可分别对应数据标识,该数据标识可由数字、字母、符号等中的一种或多种组成,例如,应用包包括3个数据片段,分别对应的数据标识为1、2、3等,但不限于此。可利用哈希算法分别计算得到每个数据片段的哈希值,并将各个数据片段的哈希值存储在校验文件中,再对校验文件进行加密。

主进程可先下载校验文件并进行解密,可在下载到目标应用程序启动时所需的资源的数据包后,对该数据包进行解压得到目标应用程序启动时所需的资源。可获取该数据包对应的数据标识,根据该数据标识在解密后的校验文件中查找到与该数据标识对应的哈希值。可在主进程中利用哈希算法计算下载的资源的哈希值,并将计算得到的哈希值与查找到的哈希值进行比对,若二者匹配,则可确定校验通过。

其中,哈希算法也可称为摘要算法,哈希算法可对任意一组输入数据进行计算,得到一个固定长度的输出摘要,哈希算法可包括但不限于md5(message-digestalgorithm5,信息-摘要算法5)、sha-1(securehashalgorithm1,安全散列算法1)、sha-256等,本申请实施例对具体的哈希算法不作限定。

在本申请实施例中,在根据启动指令启动主进程后,利用主进程下载免安装应用对应的资源,并直接利用主进程对免安装应用对应的资源进行渲染等处理,实现免安装应用程序的启动,无需启动额外的资源进程进行渲染等工作,减少启动额外的进程所耗费的时间,提高了免安装应用程序的启动速度,且可降低内存消耗。

如图4所示,在一个实施例中,提供另一种应用程序启动方法,可应用于上述的终端设备,该方法可包括以下步骤:

步骤402,接收针对目标应用程序的启动指令,该目标应用程序属于免安装应用程序。

步骤404,判断当前是否运行免安装应用程序对应的主进程,若是,则执行步骤412,若否,则执行步骤406。

步骤406,根据启动指令启动主进程。

步骤408,通过主进程下载目标应用程序对应的资源。

步骤410,在主进程中,根据资源进行渲染操作,得到显示数据,并将显示数据输出到显示装置进行显示,以启动目标应用程序。

步骤402~410的描述可参照上述各实施例中的相关描述,在此不再一一赘述。

在一些实施例中,在主进程启动后,终端设备可控制主进程在操作系统中常驻,常驻指的是主进程可一直运行,不会被操作系统突然杀死或异常关闭。可选地,被操作系统突然杀死或异常关闭的情况可包括但不限于:内存资源较少时被操作系统主动关闭、操作系统发现终端设备在使用时出现卡顿则直接关闭主进程、主进程长时间未执行任务被操作系统关闭等情况。

在用户不使用第一个启动的免安装应用时,免安装应用可被切换到后台,主进程也可切换至终端设备的后台运行,该后台运行可指的是主进程无法被用户感知,终端设备的界面不会显示主进程所执行的任务。

步骤412,在主进程中,根据启动指令下载目标应用程序对应的资源。

在操作系统中的应用引擎接收到针对目标应用程序的启动指令后,可判断当前是否运行有免安装应用对应的主进程。由于主进程在启动后可常驻在操作系统中,若当前运行有免安装应用对应的主进程,可说明该目标应用程序不是操作系统中第一个启动的免安装应用程序,操作系统中存在其它免安装应用正在运行,则可直接由运行的主进程负责目标应用程序的资源获取等相关工作。

在一些实施例中,若当前运行有免安装应用对应的主进程,则可通过主进程下载目标应用程序对应的资源,主进程可根据启动指令获取目标应用程序的应用信息,并根据该应用信息从服务端下载目标应用程序对应的资源。需要说明的是,主进程下载目标应用程序对应的资源的方式可与上述实施例中步骤306-308中的描述的方式一致,在此不再重复赘述。

步骤414,根据启动指令启动与目标应用程序对应的资源进程。

由于主进程在启动时负责第一个启动的免安装应用的渲染、显示等工作,还可负责第一个启动的免安装应用在运行过程中执行的任务,因此,后续启动的免安装应用需重新启动新的进程用于负责免安装应用的工作。

在本申请实施例中,若当前运行有免安装应用对应的主进程,说明启动的目标应用程序不是操作系统中第一个启动的免安装应用程序,则操作系统可根据启动指令创建并启动与目标应用程序对应的资源进程,可为创建的资源进程分配一定的系统资源(如内存资源、处理器资源等),并在该资源进程中对目标应用程序对应的资源进行处理,以启动目标应用程序。

在一些实施例中,可在主进程下载完成目标应用程序对应的资源后,启动与目标应用程序对应的资源进程,并在该资源进程中进行资源的渲染、显示等工作,从而可将主进程的工作与资源进程的工作进行分离,保证多个免安装应用程序的正常运行,不会互相影响。

步骤416,在资源进程中,根据主进程下载的资源进行渲染操作,得到显示数据,并将显示数据输出到显示装置进行显示,以启动目标应用程序。

终端设备可通过启动的资源进程进行渲染操作,资源进程可根据主进程下载的资源渲染目标应用程序的待展示界面,包括确定待展示界面中各个显示控件的布局、显示样式等,以得到目标应用程序启动时的待展示界面的显示数据,并利用显示数据进行绘制,将显示数据发送到显示装置,从而可在显示装置中显示待展示界面。

在一些实施例中,终端设备通过主进程下载目标应用程序的应用包,可对应用包进行解压,得到目标应用程序对应的资源,可在主进程中对下载的资源进行校验,若校验通过,则根据启动指令启动与目标应用程序对应的资源进程。可选地,主进程与资源进程之间可进行通信,并为资源进程分布相应的任务,主进程可向启动的资源进程发送通信指令,资源进程可根据该通信指令对目标应用程序的资源进行渲染、通过显示装置显示相应界面等操作。

若校验不通过,则可通过主进程重新下载目标应用程序的资源。校验的方式可与上述实施例中描述的校验方式相同,在此不再重复赘述。在本申请实施例中,仅在资源校验通过后,才启动资源进程进行渲染、显示等工作,在保证数据准确、安全的同时,可节省系统资源,防止进程资源被浪费。

图5a为相关技术中启动免安装应用的示意图。如图5a所示,用户点击启动第一个免安装应用(即免安装应用1),由于主进程510未启动,则终端设备可启动主进程510。可通过主进程510下载免安装应用1对应的资源1,并进行解压、校验等操作。在资源1校验通过后,终端设备可启动资源进程1,主进程510可向资源进程1发送通信指令,并由资源进程1根据资源1进行渲染、上屏等操作,以完成免安装应用1的启动。

用户点击启动第二个免安装应用(即免安装应用2),由于主进程510之前已启动并常驻在操作系统中,则终端设备可通过主进程510下载免安装应用2对应的资源2,并进行解压、校验等操作。在资源2校验通过后,终端设备可启动资源进程2,主进程510可向资源进程2发送通信指令,并由资源进程2根据资源2进行渲染、上屏等操作,以完成免安装应用2的启动。

用户点击启动第三个免安装应用(即免安装应用3),由于主进程510之前已启动并常驻在操作系统中,则终端设备可通过主进程510下载免安装应用3对应的资源3,并进行解压、校验等操作。在资源3校验通过后,终端设备可启动资源进程3,主进程510可向资源进程3发送通信指令,并由资源进程3根据资源3进行渲染、上屏等操作,以完成免安装应用3的启动。

从图5a中可知,在启动第一个免安装应用时,终端设备需要启动主进程及资源进程1,启动两个进程耗费的时间较长,导致第一个免安装应用的启动速度变慢。

图5b为本申请一个实施例中启动免安装应用的示意图。如图5b所示,用户点击启动第一个免安装应用(即免安装应用1),由于主进程510未启动,则终端设备可启动主进程510。可通过主进程510下载免安装应用1对应的资源1,并进行解压、校验等操作。在资源1校验通过后,可直接在主进程510中根据资源1进行渲染、上屏等操作,以完成免安装应用1的启动。

用户点击启动第二个免安装应用(即免安装应用2),由于主进程510之前已启动并常驻在操作系统中,则终端设备可通过主进程510下载免安装应用2对应的资源2,并进行解压、校验等操作。在资源2校验通过后,终端设备可启动资源进程2,主进程510可向资源进程2发送通信指令,并由资源进程2根据资源2进行渲染、上屏等操作,以完成免安装应用2的启动。

用户点击启动第三个免安装应用(即免安装应用3),由于主进程510之前已启动并常驻在操作系统中,则终端设备可通过主进程510下载免安装应用3对应的资源3,并进行解压、校验等操作。在资源3校验通过后,终端设备可启动资源进程3,主进程510可向资源进程3发送通信指令,并由资源进程3根据资源3进行渲染、上屏等操作,以完成免安装应用3的启动。

从图5b中可知,在启动第一个免安装应用时,终端设备仅需要启动主进程,将主进程与资源进程1的功能合并,从而不需要再启动额外的资源进程1,可节省进程启动的时间,提高第一个免安装应用的启动速度,且可节省内存资源。用户不论何时启动免安装应用,系统均只需消耗启动一个进程的时间,提高了免安装应用的启动速度。

在一些实施例中,上述应用程序启动方法还可包括:当操作系统中启动的免安装应用程序均被关闭时,关闭主进程。

在操作系统中所有启动的免安装应用均被关闭时,说明用户当前不需要使用免安装应用,没有免安装应用运行,则可关闭主进程,并在下一次接收到免安装应用的启动指令时,重新启动免安装应用对应的主进程进行资源下载、解压、校验等操作。可节省系统资源,避免在无免安装应用运行的情况下主进程一直占用系统资源,造成系统资源浪费。

可选地,免安装应用被关闭可以是用户主动进行关闭,在用户不需要使用免安装应用时,可对免安装应用执行关闭操作,则终端设备可根据该关闭操作关闭免安装应用,停止免安装应用的运行。免安装应用被关闭也可以是由终端设备进行关闭,在终端设备检测到免安装应用进入后台运行的时长达到时间阈值时,可说明用户已长时间未使用该免安装应用,则可关才该免安装应用,从而可节省系统资源。

在本申请实施例中,在启动第一个免安装应用时,根据启动指令启动主进程,直接利用主进程对资源进行处理,实现免安装应用程序的启动,无需启动额外的资源进程处理资源,减少启动额外的进程所耗费的时间,能够保证用户不论何时启动免安装应用,系统均只需消耗启动一个进程的时间,提高了免安装应用的启动速度,且可降低内存消耗。

如图6所示,在一个实施例中,提供一种应用程序启动装置600,可应用于上述的终端设备,该应用程序启动装置600可包括指令接收模块610、处理模块620。

指令接收模块610,用于接收针对目标应用程序的启动指令,目标应用程序属于免安装应用程序。

处理模块620,用于若当前没有运行免安装应用程序对应的主进程,则根据启动指令启动主进程,并在主进程中对目标应用程序对应的资源进行处理,以启动目标应用程序。

在本申请实施例中,接收针对目标应用程序的启动指令,该目标应用程序属于免安装应用程序,若当前没有运行免安装应用程序对应的主进程,则根据启动指令启动主进程,并在主进程中对目标应用程序对应的资源进行处理,以启动目标应用程序,在启动主进程时直接利用主进程对资源进行处理,实现免安装应用程序的启动,无需启动额外的进程处理资源,减少启动额外的进程所耗费的时间,提高了免安装应用程序的启动速度,且可降低内存消耗。

在一个实施例中,处理模块620包括下载单元及处理单元。

下载单元,用于通过主进程下载目标应用程序对应的资源。

处理单元,用于在主进程中,根据资源进行渲染操作,得到显示数据,并将显示数据输出到显示装置进行显示。

在一个实施例中,主进程至少包括第一线程及第二线程。

下载单元,还用于通过主进程的第一线程下载目标应用程序对应的资源。

处理单元,还用于在主进程中,根据资源进行渲染操作,得到显示数据,并将显示数据输出到显示装置进行显示。

在一个实施例中,处理模块620除了包括下载单元及处理单元,还包括校验单元。

校验单元,用于在主进程的第一线程中对下载的资源进行校验。

处理单元,还用于在校验单元校验通过后,在主进程的第二线程中,根据资源进行渲染操作,得到显示数据,并将显示数据输出到显示装置进行显示。

在本申请实施例中,在根据启动指令启动主进程后,利用主进程下载免安装应用对应的资源,并直接利用主进程对免安装应用对应的资源进行渲染等处理,实现免安装应用程序的启动,无需启动额外的资源进程进行渲染等工作,减少启动额外的进程所耗费的时间,提高了免安装应用程序的启动速度,且可降低内存消耗。

在一个实施例中,处理模块620,还用于若当前运行有免安装应用对应的主进程,则根据启动指令启动与目标应用程序对应的资源进程,并在资源进程中对目标应用程序对应的资源进行处理,以启动目标应用程序。

在一个实施例中,下载单元,还用于在主进程中,根据启动指令下载目标应用程序对应的资源。

处理单元,还用于在资源进程中,根据主进程下载的资源进行渲染操作,得到显示数据,并将显示数据输出到显示装置进行显示。

在一个实施例中,校验单元,还用于在主进程中对下载的资源进行校验。

处理单元,还用于在校验单元校验通过后,根据启动指令启动与目标应用程序对应的资源进程,并在资源进程中,根据主进程下载的资源进行渲染操作,得到显示数据,并将显示数据输出到显示装置进行显示。

在一个实施例中,上述的应用程序启动装置600除了包括指令接收模块610、处理模块620,还包括常驻模块及关闭模块。

常驻模块,用于在启动主进程之后,控制主进程在操作系统中常驻。

关闭模块,用于当操作系统中启动的免安装应用程序均被关闭时,关闭主进程。

在本申请实施例中,在启动第一个免安装应用时,根据启动指令启动主进程,直接利用主进程对资源进行处理,实现免安装应用程序的启动,无需启动额外的资源进程处理资源,减少启动额外的进程所耗费的时间,能够保证用户不论何时启动免安装应用,系统均只需消耗启动一个进程的时间,提高了免安装应用的启动速度,且可降低内存消耗。

图7为一个实施例中终端设备的结构框图。如图7所示,终端设备700可以包括一个或多个如下部件:处理器710、与处理器710耦合的存储器720,其中存储器720可存储有一个或多个计算机程序,一个或多个计算机程序可以被配置为由一个或多个处理器710执行时实现如上述各实施例描述的方法。

处理器710可以包括一个或者多个处理核。处理器710利用各种接口和线路连接整个终端设备700内的各个部分,通过运行或执行存储在存储器720内的指令、程序、代码集或指令集,以及调用存储在存储器720内的数据,执行终端设备700的各种功能和处理数据。可选地,处理器710可以采用数字信号处理(digitalsignalprocessing,dsp)、现场可编程门阵列(field-programmablegatearray,fpga)、可编程逻辑阵列(programmablelogicarray,pla)中的至少一种硬件形式来实现。处理器710可集成中央处理器(centralprocessingunit,cpu)、图像处理器(graphicsprocessingunit,gpu)和调制解调器等中的一种或几种的组合。其中,cpu主要处理操作系统、用户界面和应用程序等;gpu用于负责显示内容的渲染和绘制;调制解调器用于处理无线通信。可以理解的是,上述调制解调器也可以不集成到处理器710中,单独通过一块通信芯片进行实现。

存储器720可以包括随机存储器(randomaccessmemory,ram),也可以包括只读存储器(read-onlymemory,rom)。存储器720可用于存储指令、程序、代码、代码集或指令集。存储器720可包括存储程序区和存储数据区,其中,存储程序区可存储用于实现操作系统的指令、用于实现至少一个功能的指令(比如触控功能、声音播放功能、图像播放功能等)、用于实现上述各个方法实施例的指令等。存储数据区还可以存储终端设备700在使用中所创建的数据等。

可以理解地,终端设备700可包括比上述结构框图中更多或更少的结构元件,例如,包括电源模块、物理按键、wifi(wirelessfidelity,无线保真)模块、扬声器、蓝牙模块、传感器等,还可在此不进行限定。

本申请实施例公开一种计算机可读存储介质,其存储计算机程序,其中,该计算机程序被处理器执行时实现如上述实施例描述的方法。

本申请实施例公开一种计算机程序产品,该计算机程序产品包括存储了计算机程序的非瞬时性计算机可读存储介质,且该计算机程序可被处理器执行时实现如上述各实施例描述的方法。

本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的程序可存储于一非易失性计算机可读取存储介质中,该程序在执行时,可包括如上述各方法的实施例的流程。其中,所述的存储介质可为磁碟、光盘、rom等。

如此处所使用的对存储器、存储、数据库或其它介质的任何引用可包括非易失性和/或易失性存储器。合适的非易失性存储器可包括rom、可编程rom(programmablerom,prom)、可擦除prom(erasableprom,eprom)、电可擦除prom(electricallyerasableprom,eeprom)或闪存。易失性存储器可包括随机存取存储器(randomaccessmemory,ram),它用作外部高速缓冲存储器。作为说明而非局限,ram可为多种形式,诸如静态ram(staticram,sram)、动态ram(dynamicrandomaccessmemory,dram)、同步dram(synchronousdram,sdram)、双倍数据率sdram(doubledataratesdram,ddrsdram)、增强型sdram(enhancedsynchronousdram,esdram)、同步链路dram(synchlinkdram,sldram)、存储器总线直接ram(rambusdram,rdram)及直接存储器总线动态ram(directrambusdram,drdram)。

应理解,说明书通篇中提到的“一个实施例”或“一实施例”意味着与实施例有关的特定特征、结构或特性包括在本申请的至少一个实施例中。因此,在整个说明书各处出现的“在一个实施例中”或“在一实施例中”未必一定指相同的实施例。此外,这些特定特征、结构或特性可以以任意适合的方式结合在一个或多个实施例中。本领域技术人员也应该知悉,说明书中所描述的实施例均属于可选实施例,所涉及的动作和模块并不一定是本申请所必须的。

在本申请的各种实施例中,应理解,上述各过程的序号的大小并不意味着执行顺序的必然先后,各过程的执行顺序应以其功能和内在逻辑确定,而不应对本申请实施例的实施过程构成任何限定。

上述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物单元,即可位于一个地方,或者也可以分布到多个网络单元上。可根据实际的需要选择其中的部分或全部单元来实现本实施例方案的目的。

另外,在本申请各实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。

上述集成的单元若以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可获取的存储器中。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或者部分,可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储器中,包括若干请求用以使得一台计算机设备(可以为个人计算机、服务器或者网络设备等,具体可以是计算机设备中的处理器)执行本申请的各个实施例上述方法的部分或全部步骤。

以上对本申请实施例公开的一种应用程序启动方法、装置、终端设备及存储介质进行了详细介绍,本文中应用了具体个例对本申请的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本申请的方法及其核心思想。同时,对于本领域的一般技术人员,依据本申请的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本申请的限制。

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