CN113835782A - 应用启动方法、电子设备及存储介质 - Google Patents
应用启动方法、电子设备及存储介质 Download PDFInfo
- Publication number
- CN113835782A CN113835782A CN202111115529.4A CN202111115529A CN113835782A CN 113835782 A CN113835782 A CN 113835782A CN 202111115529 A CN202111115529 A CN 202111115529A CN 113835782 A CN113835782 A CN 113835782A
- Authority
- CN
- China
- Prior art keywords
- program
- target application
- package
- packages
- target
- 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.)
- Pending
Links
- 238000000034 method Methods 0.000 title claims abstract description 245
- 230000008569 process Effects 0.000 claims abstract description 157
- 230000004044 response Effects 0.000 claims abstract description 20
- 230000006870 function Effects 0.000 claims description 39
- 238000004590 computer program Methods 0.000 claims description 11
- 230000000977 initiatory effect Effects 0.000 claims description 3
- 230000014759 maintenance of location Effects 0.000 abstract description 4
- 238000004891 communication Methods 0.000 description 2
- 238000001514 detection method Methods 0.000 description 2
- 238000010586 diagram Methods 0.000 description 2
- 238000005516 engineering process Methods 0.000 description 2
- 238000007726 management method Methods 0.000 description 2
- 230000003287 optical effect Effects 0.000 description 2
- 238000012559 user support system Methods 0.000 description 2
- 208000006930 Pseudomyxoma Peritonei Diseases 0.000 description 1
- 238000013475 authorization Methods 0.000 description 1
- 230000009191 jumping Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 239000013307 optical fiber Substances 0.000 description 1
- 229920001690 polydopamine Polymers 0.000 description 1
- 229920000306 polymethylpentene Polymers 0.000 description 1
- 238000012545 processing Methods 0.000 description 1
- 239000004065 semiconductor Substances 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/445—Program loading or initiating
- G06F9/44505—Configuring for program initiating, e.g. using registry, configuration files
Abstract
本公开涉及一种应用启动方法、电子设备及存储介质。其中,应用启动方法包括:响应于检测到对目标应用程序的启动操作,启动目标应用程序对应的第一应用进程,目标应用程序包括多个程序包;通过第一应用进程创建多个第一子线程;通过多个第一子线程并行加载多个程序包;在多个程序包中的第一类程序包完成加载的情况下,显示目标应用程序的主界面。根据本公开实施例,加快了目标应用程序的主界面的显示速度,从而提高目标应用程序的启动效率,提升了用户的体验和目标应用程序的留存率。
Description
技术领域
本公开涉及计算机技术领域,尤其涉及一种应用启动方法、电子设备及存储介质。
背景技术
随着移动互联网时代的来临,电子设备上可以安装和使用的应用程序越来越多。用户可以通过这些应用程序来进行娱乐,例如浏览网页、阅读电子书、浏览视频、玩游戏、聊天、导航等。
目前,如果用户想要使用一个应用程序,需要先花费较长的时间来等待该应用程序启动,给用户带来了不好的体验,降低了应用程序的留存率。
发明内容
为了解决上述技术问题或者至少部分地解决上述技术问题,本公开提供了一种应用启动方法、电子设备及存储介质。
第一方面,本公开提供了一种应用启动方法,包括:
响应于检测到对目标应用程序的启动操作,启动目标应用程序对应的第一应用进程,目标应用程序包括多个程序包;
通过第一应用进程创建多个第一子线程;
通过多个第一子线程并行加载多个程序包;
在多个程序包中的第一类程序包完成加载的情况下,显示目标应用程序的主界面。
第二方面,本公开提供了一种电子设备,包括处理器和存储器,存储器用于存储可执行指令,可执行指令使处理器执行以下操作:
响应于检测到对目标应用程序的启动操作,启动目标应用程序对应的第一应用进程,目标应用程序包括多个程序包;
通过第一应用进程创建多个第一子线程;
通过多个第一子线程并行加载多个程序包;
在多个程序包中的第一类程序包完成加载的情况下,显示目标应用程序的主界面。
第三方面,本公开提供了一种计算机可读存储介质,该存储介质存储有计算机程序,当计算机程序被处理器执行时,使得处理器实现第一方面所述的应用启动方法。
本公开实施例提供的技术方案与现有技术相比具有如下优点:
本公开实施例的应用启动方法、电子设备及存储介质,能够在检测到对包括多个程序包的目标应用程序的启动操作之后,启动目标应用程序对应的第一应用进程,并通过第一应用进程的多个第一子线程并行加载多个程序包,提高目标应用程序的程序包的加载效率,进而在多个程序包中的第一类程序包完成加载时,显示目标应用程序的主界面,以加快目标应用程序的主界面的显示速度,从而提高目标应用程序的启动效率,提升了用户的体验和目标应用程序的留存率。
附图说明
结合附图并参考以下具体实施方式,本公开各实施例的上述和其他特征、优点及方面将变得更加明显。贯穿附图中,相同或相似的附图标记表示相同或相似的元素。应当理解附图是示意性的,原件和元素不一定按照比例绘制。
图1为本公开实施例提供的一种应用启动方法的流程示意图;
图2为本公开实施例提供的另一种应用启动方法的流程示意图;
图3为本公开实施例提供的又一种应用启动方法的流程示意图;
图4为本公开实施例提供的一种电子设备的结构示意图。
具体实施方式
下面将参照附图更详细地描述本公开的实施例。虽然附图中显示了本公开的某些实施例,然而应当理解的是,本公开可以通过各种形式来实现,而且不应该被解释为限于这里阐述的实施例,相反提供这些实施例是为了更加透彻和完整地理解本公开。应当理解的是,本公开的附图及实施例仅用于示例性作用,并非用于限制本公开的保护范围。
应当理解,本公开的方法实施方式中记载的各个步骤可以按照不同的顺序执行,和/或并行执行。此外,方法实施方式可以包括附加的步骤和/或省略执行示出的步骤。本公开的范围在此方面不受限制。
本文使用的术语“包括”及其变形是开放性包括,即“包括但不限于”。术语“基于”是“至少部分地基于”。术语“一个实施例”表示“至少一个实施例”;术语“另一实施例”表示“至少一个另外的实施例”;术语“一些实施例”表示“至少一些实施例”。其他术语的相关定义将在下文描述中给出。
需要注意,本公开中提及的“第一”、“第二”等概念仅用于对不同的装置、模块或单元进行区分,并非用于限定这些装置、模块或单元所执行的功能的顺序或者相互依存关系。
需要注意,本公开中提及的“一个”、“多个”的修饰是示意性而非限制性的,本领域技术人员应当理解,除非在上下文另有明确指出,否则应该理解为“一个或多个”。
本公开实施方式中的多个装置之间所交互的消息或者信息的名称仅用于说明性的目的,而并不是用于对这些消息或信息的范围进行限制。
本公开实施例提供了一种能够提高目标应用程序的启动效率的应用启动方法、电子设备及存储介质。
下面,首先结合图1至图3对本公开实施例提供的应用启动方法进行说明。
图1示出了本公开实施例提供的一种应用启动方法的流程示意图。
在本公开一些实施例中,图1所示的应用启动方法可以由电子设备执行。该电子设备可以包括但不限于诸如智能手机、笔记本电脑、个人数字助理(PDA)、平板电脑(PAD)、便携式多媒体播放器(PMP)、车载终端(例如车载导航终端)、可穿戴设备等的移动终端,以及诸如数字TV、台式计算机、智能家居设备等的固定终端。
如图1所示,该应用启动方法可以包括如下步骤。
S110、响应于检测到对目标应用程序的启动操作,启动目标应用程序对应的第一应用进程。
在本公开实施例中,当用户需要启动目标应用程序时,可以向电子设备输入对目标应用程序的启动操作。电子设备在检测到启动操作之后,可以响应于启动操作,启动目标应用程序对应的第一应用进程,以通过第一应用进程启动和运行目标应用程序。
在本公开实施例中,启动操作可以是任意的能够触发电子设备启动目标应用程序的操作。
可选的,启动操作可以是针对目标应用程序的程序图标的手势控制操作(如点击、长按、双击等)、语音控制操作、表情控制操作,在此不作限制。
在本公开实施例中,目标应用程序可以是待启动的应用程序。
可选的,目标应用程序可以是任意的插件式应用程序。例如,目标应用程序可以为插件式的电子书应用程序、视频播放应用程序、导航应用程序、游戏应用程序以及聊天应用程序等,在此不做限制。
其中,插件式应用程序是由一些动态的独立模块构成的应用程序,每个独立模块均可以实现至少一种服务功能。插件式应用程序的各个独立模块能够满足一定的插件协议,并能够借助主程序实现主程序和独立模块之间、以及独立模块之间的通讯。
具体的,目标应用程序可以包括多个程序包,多个程序包可以包括主程序对应的主程序包、配置程序包和各个独立模块对应的插件程序包。
S120、通过第一应用进程创建多个第一子线程。
在本公开实施例中,第一应用进程可以是目标应用程序在内存环境中的基本执行单元,第一应用进程可以创建多个第一子线程。
可选地,第一应用进程创建的第一子线程的数量可以根据处理器核数确定。
具体地,电子设备可以根据预先设置的处理器核数与最大子线程数量的对应关系,确定其自身的处理器核数对应的最大子线程数量,并创建该最大子线程数量的第一子线程。
在一个示例中,若处理器核数是2,则第一子线程的数量可以为3。
在另一个示例中,若处理器核数是4,则第一子线程的数量可以为4。
由此,在本公开实施例中,可以避免过多的开启第一子线程开启,在保证占用较少的处理器资源的同时,尽量多的创建第一子线程。
S130、通过多个第一子线程并行加载多个程序包。
在本公开实施例中,电子设备在创建了多个第一子线程之后,可以利用多个第一子线程并行加载目标应用程序的多个程序包,以提高多个程序包的加载效率。
具体地,多个第一子线程可以同步地对多个程序包进行加载,并且每个第一子线程可以加载至少一个程序包。
S140、在多个程序包中的第一类程序包完成加载的情况下,显示目标应用程序的主界面。
在本公开实施例中,电子设备在通过多个第一子线程并行加载多个程序包的过程中,可以实时检测第一类程序包是否完成加载,如果完成加载,可以显示目标应用程序的主界面,如果未完成加载,则继续加载多个程序包,直至检测第一类程序包完成加载,才对目标应用程序的主界面进行显示。
其中,第一类程序包可以包括用于支持目标应用程序的主程序运行的程序包。
可选的,第一类程序包可以包括目标应用程序的主程序包和/或目标应用程序的配置程序包。
主程序包可以是目标应用程序的用户操作平台对应的程序包。具体地,主程序包可以用于支持目标应用程序的主程序对应的主界面的运行、界面配置的管理和插件的管理,在此不做限制。
配置程序包可以是目标应用程序的配置功能对应的程序包。具体地,配置程序包可以包括插件协议、共通组件、控件等,在此不做限制。
由此,电子设备可以在检测到运行目标应用程序的主程序所需的各个程序包加载完毕后,立即显示目标应用程序的主界面,以进一步缩短用户等待目标应用程序启动的时间。
在本公开实施例中,能够在检测到对包括多个程序包的目标应用程序的启动操作之后,启动目标应用程序对应的第一应用进程,并通过第一应用进程的多个第一子线程并行加载多个程序包,提高目标应用程序的程序包的加载效率,进而在多个程序包中的第一类程序包完成加载时,显示目标应用程序的主界面,以加快目标应用程序的主界面的显示速度,从而提高目标应用程序的启动效率,提升了用户的体验和目标应用程序的留存率。
在本公开一些实施例中,在S140之后,该应用启动方法还可以包括:
检测目标应用程序是否存在待更新程序包;
在检测到存在待更新程序包的情况下,下载待更新程序包;
将待更新程序包存储为目标应用程序对应的已更新程序包。
具体的,电子设备运行目标应用程序的过程中,可以检测目标应用程序是否存在待更新程序包,如果检测到存在待更新程序包,则下载待更新程序包,对待更新程序包进行解压,将解压后的待更新程序包存储为目标应用程序对应的已更新程序包。
由此,在本公开实施例中,在启动目标应用程序之后,若检测到存在待更新程序包,则可以从服务器下载待更新程序包,将解压后的待更新程序包存储为已更新程序包,以供下次启动目标应用程序时,基于已更新程序包启动目标应用程序。
在本公开另一种实施方式中,启动操作可以用于首次触发对目标应用程序的启动。
在本公开实施例中,首次启动目标应用程序可以是对应用程序的冷启动。冷启动是指电子设备的操作系统中不存在目标应用程序的进程,需要创建目标应用程序的进程,再进入到目标应用程序的主界面,也就是说,冷启动是指目标应用程序完全退出后再启动。
针对冷启动过程,电子设备在对每个程序包进行加载之前,还需要对该程序包对应的压缩包进行解压,压缩包的解压过程会消耗一定的时间,在本公开实施例中,通过多个第一子线程并行加载多个程序包时,虽然也需要先对每个程序包对应的压缩包进行解压,但由于可以对压缩包进行并行解压和加载,也可以缩短目标应用程序的启动时间,提高启动效率。
进一步地,申请人发现,程序包的加载过程与权限获取过程不相关,因此,如果在权限获取之前便加载目标应用程序的程序包,则会进一步提高应用程序的启动效率。
在一些实施例中,在执行S120的同时,该应用启动方法还可以包括:
在首次检测到启动操作的情况下,显示目标应用程序对应的权限获取请求信息。
相应的,S140中显示目标应用程序的主界面,可以包括:
在检测到针对权限获取请求信息的第一触发操作的情况下,显示目标应用程序的主界面。
在本公开实施例中,电子设备接收到启动操作时,判断是否是首次检测到针对启动操作对应的目标应用程序的图标的启动操作,如果是,则可以在通过第一应用进程创建多个第一子线程的同时,向用户获取用于运行目标应用程序的权限,通过多个第一子线程并行加载多个程序包,若多个程序包中的第一类程序包完成,且已经获取了相应权限,则显示目标应用程序的主界面,以完成目标应用程序的首次启动过程。
在本公开实施例中,电子设备向用户获取权限的方法可以是通过主线程显示目标应用程序对应的权限获取请求信息,权限获取请求信息用于提示用户授予用于运行目标应用程序的权限。
在本公开实施例中,第一触发操作可以为用于触发授予目标权限的操作。
可选的,第一触发操作可以是针对目标权限的第一权限获取请求信息中的确认授予权限的手势控制操作(如点击、长按、双击等)、语音控制操作或者表情控制操作,在此不作限制。
可选地,目标权限可以是运行目标应用程序的必要权限,例如,目标权限可以为语音权限、相机权限以及定位权限等,在此不做限制。
以第一触发操作为点击操作为例,电子设备通过第一应用进程创建多个第一子线程的同时,显示目标应用程序对应的权限获取请求信息时,并检测针对目标权限的第一权限获取请求信息中的确认授予权限的控件的点击操作,以获取用于运行目标应用程序的权限,若检测到点击操作,可以在多个程序包中的第一类程序包完成时,显示目标应用程序的主界面。
由此,在本公开实施例中,若首次启动目标应用程序,可以在获取权限获取的同时便加载目标应用程序的程序包,以将程序包的加载过程前置,进一步提高目标应用程序的启动效率。
在另一些实施例中,在执行S110之前,该应用启动方法还包括:
在首次检测到启动操作的情况下,创建第一应用进程。
在本公开实施例中,电子设备接收到启动操作时,判断是否是首次检测到针对启动操作对应的目标应用程序的图标的启动操作,如果是,则说明用于运行目标应用程序的进程未被创建过,则电子设备可以响应于该启动操作创建第一应用进程,如果否,则说明用于运行目标应用程序的进程已被创建过。
由此,在本公开实施例中,若首次启动目标应用程序,在首次检测到启动操作时,创建第一应用进程,以基于第一应用进程创建多个第一子线程,进一步利用多个第一子线程并行加载多个程序包,使得在多个程序包中的第一类程序包完成加载的情况下,显示目标应用程序的主界面,完成目标应用程序的启动过程。
在本公开又一些实施方式中,启动操作可以用于非首次触发对目标应用程序的启动。
在本公开实施例中,非首次启动目标应用程序可以是对目标应用程序的热启动。热启动是指电子设备的操作系统中已存在目标应用程序的进程,也就是说,热启动是指应用程序从操作系统的后台进入到前台的过程。
针对热启动过程,电子设备在对每个程序包进行加载之前,无需对该程序包对应的压缩包进行解压,并且,电子设备的操作系统中可能已存在目标应用程序的第一应用进程,如果存在第一应用进程且不存在目标应用程序对应的已更新程序包,则直接启动第一应用进程,加载各程序包,以提高目标应用程序的启动效率,否则,创建新的应用进程,利用新的进程加载程序包,以保证目标应用程序正常启动。
在本公开一些实施例中,可以基于检测到的针对目标应用程序的启动操作,执行非首次启动目标应用程序的过程。
在本公开实施例中,可选的,在执行S110之前,该应用启动方法还可以包括:
在非首次检测到启动操作的情况下,查询是否存在目标应用程序对应的第一应用进程。
相应的,S110可以具体包括:
在查询到存在第一应用进程的情况下,启动第一应用进程。
在本公开实施例中,电子设备接收到启动操作时,判断是否是首次检测到针对启动操作对应的目标应用程序的图标的启动操作,如果不是,则检测是否存在目标应用程序对应的第一应用进程,如果查询到目标应用程序对应的第一应用进程,则直接启动第一应用进程,并通过第一应用进程创建的多个第一子线程并行加载多个程序包,若多个程序包中的第一类程序包完成加载,则显示目标应用程序的主界面,以完成目标应用程序的非首次启动过程;如果未查询到目标应用程序对应的第一应用进程,则创建第一应用进程,以利用创建的第一应用进程创建多个第一子线程,并利用多个第一子线程并行加载多个程序包,直至检测到多个程序包中的第一类程序包完成加载,则显示目标应用程序的主界面;如果首次检测到针对启动操作对应的目标应用程序的图标的启动操作,则基于该启动操作创建第一应用进程,以基于第一应用进程创建的多个第一子线程并行加载多个程序包,直至检测到多个程序包中的第一类程序包完成加载,则显示目标应用程序的主界面。
在本公开实施例中,启动操作可以是任意的能够触发电子设备非首次启动目标应用程序的操作。
可选的,启动操作可以是针对目标应用程序的程序图标的手势控制操作(如点击、长按、双击等)、语音控制操作、表情控制操作,在此不作限制。
在一些实施例中,在启动第一应用进程之前,该应用启动方法还可以包括:
检测是否存在目标应用程序对应的已更新程序包;
相应的,启动第一应用进程,可以具体包括:
在检测到不存在已更新程序包的情况下,启动第一应用进程。
在本公开实施例中,电子设备接收到启动操作时,如果启动操作为非首次启动操作且存在目标应用程序对应的第一应用进程,则检测是否存在目标应用程序对应的已更新程序包,如果未检测到已更新程序包,则直接启动第一应用进程。
其中,已更新程序包可以是目标应用程序启动之前已完成更新的程序包。
在另一些实施例中,在检测是否存在目标应用程序对应的已更新程序包之后,该应用启动方法还可以包括:
在检测到存在已更新程序包的情况下,关闭一应用进程;
创建目标应用程序对应的第二应用进程;
通过第二应用进程并行加载更新后的多个程序包,更新后的多个程序包包括已更新程序包;
在更新后的多个程序包中的第一类程序包完成加载的情况下,显示目标应用程序的主界面。
在本公开实施例中,电子设备接收到启动操作时,如果启动操作为非首次启动操作,且存在目标应用程序对应的第一应用进程,则检测是否存在目标应用程序对应的已更新程序包,如果检测到已更新程序包,则关闭一应用进程,并创建目标应用程序对应的第二应用进程,通过第二应用进程并行加载更新后的多个程序包,如果更新后的多个程序包中的第一类程序包完成加载,显示目标应用程序的主界面,如果未检测到已更新程序包,则直接启动第一应用进程,以利用第一应用进程创建的第一子线程并行加载多个程序包,如果第一类程序包完成加载,可以显示目标应用程序的主界面,如果未完成加载,则继续加载多个程序包,直至检测第一类程序包完成加载,才对目标应用程序的主界面进行显示。
在本公开实施例中,第二应用进程可以是用于加载更新后的程序包的新的进程,可以是目标应用程序在内存环境中的基本执行单元。
在一些实施例中,已更新的程序包可以包括第一类程序包中的主程序包和/或配置程序包,未更新的程序包可以包括目标应用程序对应的各目标功能的程序包。
在另一些实施例中,已更新的程序包可以包括目标应用程序对应的至少一个目标功能的程序包,则未更新的程序包可以包括目标应用程序对应的其他目标功能的程序包和第一类程序包中的主程序包和/或配置程序包。
以电子书应用程序的已更新程序包为电子书应用程序中的电子书购买功能的程序包为例,电子书购买功能更新后的程序包的版本是1.1,而电子书应用程序的其他程序包的版本是1.0,则第二应用进程并行加载的更新后的多个程序包可以包括版本为1.1的电子书购买功能对应的更新后的程序包以及其他版本为1.0的程序包。
在本公开另一些实施例中,可以基于触发推送消息的方式,执行非首次启动目标应用程序的过程。
针对热启动过程,电子设备可以通过消息推送方式,先加载主界面,再由主界面跳转到落地页或者结果页,最终再根据用户操作由落地页或者结果页跳转到最终的功能页面。但是,落地页或者结果页具有时效性,使得用户期待更快的查看到落地页或者结果页,但是这种方式先加载主界面再加载落地页或者结果页,导致用户查看到最终的功能页面的时间会增加,并且,这种启动方式需要经过两次主界面跳转过程,降低了程序包的加载效率,因此降低了应用程序的启动效率。
进一步的,申请人发现,在基于触发推送消息的方式,执行非首次启动目标应用程序的过程中,如果先加载落地页或者结果页,再加载主界面,可以使得用户更快的查看到落地页或者结果页,然后,再根据用户操作由主界面跳转到最终的功能页面,因此,这种启动方式只需要经过一次主界面跳转过程,提高了程序包的加载效率,因此提高了应用程序的启动效率。
在本公开实施例中,可选的,启动操作可以包括对推送消息的第三触发操作。
相应的,在S120之前,该应用启动方法还可以包括:
通过第一应用进程加载推送消息对应的目标程序包;
在目标程序包完成加载的情况下,显示推送消息对应的目标应用页面;
相应的,S120可以包括:
响应于检测到对目标应用页面的关闭操作,通过第一应用进程创建多个第一子线程。
在本公开实施例中,电子设备检测到对推送消息的第三触发操作时,通过第一应用进程加载推送消息对应的目标程序包,判断目标程序包是否完成加载,如果是,则显示推送消息对应的目标应用页面,继续判断是否检测到对目标应用页面的关闭操作,如果检测到,则通过第一应用进程创建多个第一子线程,以基于第一子线程并行加载多个程序包,使得在第一类程序包加载完成的情况下,显示主界面,如果目标软件未完成加载,则继续加载目标程序包,直至目标程序包完成加载,如果未检测到关闭操作,则继续检测对目标应用页面的关闭操作,直至检测到关闭操作,通过第一应用进程创建多个第一子线程,以基于第一子线程并行加载多个程序包,使得在第一类程序包加载完成的情况下,显示主界面。
其中,第三触发操作可以是用于触发启动推送消息对应的目标应用页面的操作。
可选的,第三触发操作可以是对推送消息的手势控制操作(如点击、长按、双击等)、语音控制操作或者表情控制操作,在此不作限制。
其中,目标程序包可以是用于支持加载推送消息对应的目标应用页面的程序包。
其中,推送消息对应的目标应用页面可以是目标应用程序的落地页或者结果页,即推送消息对应的目标应用页面可以为推送消息对应的推送页面。
其中,关闭操作可以是任意能够触发目标应用页面对应的关闭控件的操作。
可选的,关闭操作可以是对关闭控件的手势控制操作(如点击、长按、双击等)、语音控制操作或者表情控制操作,在此不作限制。
由此,在本公开实施例中,可以基于推送消息,先加载用于支持运行推送页面的目标程序包,并显示推送消息对应的推送页面,然后在用户关闭推送页面时,加载目标应用程序的其他程序包,以从推送页面跳转到主界面,使得用户查看推送消息时,无需等待目标程序包以外的其它程序包的加载,进一步提高了因推送消息而启动目标应用程序时的启动效率。
在本公开再一种实施方式中,可以通过其中一个第一子线程加载第一类程序包,并同步地通过其他第一子线程加载第二类程序包,以分类对多个程序包进行并行加载。
在本公开一些实施例中,S130可以包括:
S1301、通过任一第一子线程加载第一类程序包;
S1302、通过其他每个第一子线程加载多个程序包中的一组第二类程序包。
在本公开实施例中,电子设备利用多个第一子线程并行加载多个程序包时,可以将第一类程序包分为一组,并且将多个第二类程序包分为多组,使得多个程序包可以分为预设组数(一组第一类程序包和多组第二类程序包形成预设组数的程序包)并行加载。
其中,预设组数可以为预先设置的任意组数,在此不做限制。
在一个示例中,如果预设组数是4,处理器核数为4,则电子设备可以创建4个第一子线程。
在另一个示例中,预设组数是3,处理器核数为2,则电子设备可以创建3个第一子线程。
在本公开实施例中,第二类程序包可以包括用于支持目标应用程序的独立模块运行的程序包。
在一个示例中,目标应用程序是电子书应用程序,主程序包可以是用于支持电子书应用程序的主服务如书架服务运行的程序包,第二类程序包可以是用于支持电子书应用程序内的书城服务、社区服务、自习室服务、设置服务等非主服务运行的程序包。
在另一个示例中,目标应用程序是短视频应用程序,主程序包可以用于支持短视频应用程序的主服务如首页视频播放服务的程序包,第二类程序可以用于支持短视频应用程序内的商城服务、消息浏览服务、设置服务等非主服务运行的程序包。
由此,在本公开实施例中,可以通过其中一个第一子线程加载第一类程序包,并同步地通过其他第一子线程加载第二类程序包,以分类对多个程序包进行并行加载。
在本公开实施例中,第二类程序包的加载时长小于或等于预设的权限获取时长。具体的,每个第二类程序包的加载时长均小于或等于预设的权限获取时长。
其中,权限获取时长可以是预先设置的等待用户授予用于运行目标应用程序的任意时长,在此不做限制。
由此,在本公开实施例中,由于第二类程序包的加载时长小于或等于预设的权限获取时长,可以在获取权限之前加载目标应用程序所需要的第二类程序包,因此,进一步提高了应用程序的启动效率。
在本公开实施例中,每组第二类程序包均满足预设条件;
其中,预设条件包括:第二类程序包之间具有依赖关系,和/或,总加载时长小于或等于预设的权限获取时长。
其中,依赖关系可以是用于描述程序包之间的功能需求,如果一个程序包的功能需要另一个程序包支持,则说明程序包之间具有依赖关系。
其中,总加载时长可以是每组中的各个第二类程序包的加载时长的总和。具体地,一组中的各个第二类程序包的加载时长的总和也小于或等于预设的权限获取时长。
由此,在本公开实施例中,由于第二类程序包之间具有依赖关系,且总加载时长小于或等于预设的权限获取时长,使得在获取权限之前加载目标应用程序所需要的所有的第二类程序包,因此,进一步提高了应用程序的启动效率,也保证第二类程序包均被完成加载。
在本公开另一些实施例中,如果分组的数量大于第一子线程的数量,可以通过最先完成加载的第一子线程加载未加载的第二类程序包。
在本公开实施例中,可选的,在通过多个第一子线程并行加载多个程序包的之后,S130还可以包括:
S1303、在目标第一子线程完成加载且多个程序包中还存在未加载的一组目标第二类程序包的情况下,通过目标第一子线程完成加载目标第二类程序包。
在本公开实施例中,电子设备利用多个第一子线程并行加载多个程序包时,可以将多个程序包分成预设组数,如果预设组数大于第一子线程的数量,在通过任一第一子线程加载第一类程序包,并通过其他每个第一子线程加载多个程序包中的一组第二类程序包之后,判断目标第一子线程完成加载的情况下是否存在多个程序包中还存在未加载的一组目标第二类程序包,如果存在,则通过目标第一子线程完成加载目标第二类程序包,直至第二类程序包均加载完成,如果不存在,则第一类程序包和第二类程序包均完成加载。
其中,目标第一子线程可以是最先完成加载一组第二类程序包的第一子线程。
其中,目标第二类程序包可以是未被加载的第二类程序包。
在一个示例中,若处理器核数为2,第一子线程的数量是3,每个第一子线程的编号分别为编号1、编号2、编号3,若多个程序包包括1组第一类程序包,并包括3组第二类程序包,3组第二类程序包分别为程序包1、程序包2、程序包3,分别通过编号1、编号2、编号3对应的3个第一子线程并行加载1组第一类程序包和程序包1、程序包2,检测最先完成加载的目标第一子线程,并确定未加载的1组第二类程序包,若最先完成加载的目标第一子线程的编号为2,未加载的一组目标第二类程序包为程序包3,则继续通过编号为2的目标第一子线程继续加载程序包3,待程序包3加载完成后,则确定1组第一类程序包和3组第二类程序包均完成加载。
在另一个示例中,若处理器核数为4,则第一子线程的数量是4,个第一子线程的编号分别为编号1、编号2、编号3、编号4,若多个程序包包括1组第一类程序包,并包括4组第二类程序包,4组第二类程序包分别为程序包1、程序包2、程序包3和程序包4,分别通过编号1、编号2、编号3、编号4对应的4个第一子线程并行加载1组第一类程序包和程序包1、程序包2、程序包3,检测最先完成加载的目标第一子线程,并确定未加载的1组第二类程序包,若最先完成加载的目标第一子线程的编号为1,未加载的一组目标第二类程序包为程序包4,则继续通过编号为1的目标第一子线程继续加载程序包4,待程序包4加载完成后,则确定1组第一类程序包和4组第二类程序包均完成加载。
由此,在本公开实施例中,可以通过其中一个第一子线程加载第一类程序包,通过其他第一子线程加载第二类程序包,以有序的对多个程序包进行并行加载,并且,根据第二类程序包的分组数量和第一子线的不同数量关系,采用不同的并行加载策略,以适应不同的程序包加载场景。
在本公开再一种实施方式中,可以在显示目标应用程序的主界面之后,加载多个程序包中的第三类程序包或第四类程序包,避免因加载第三类程序包或第四类程序包影响加载主界面。
在本公开一些实施例中,电子设备可以在启动目标应用程序之后,加载代码量较大的第三类程序包。
图2示出了本公开实施例提供的另一种应用启动方法的流程示意图。
如图2所示,该应用启动方法可以包括如下步骤。
S210、响应于检测到对目标应用程序的启动操作,启动目标应用程序对应的第一应用进程。
S220、通过第一应用进程创建多个第一子线程。
S230、通过多个第一子线程并行加载多个程序包。
S240、在多个程序包中的第一类程序包完成加载的情况下,显示目标应用程序的主界面。
需要说明的是,第一子进程加载完多个程序包后,可以自动关闭。
其中,S210~S240与S110~S140相似,在此不做赘述。
S250、通过第一应用进程创建第二子线程。
在本公开实施例中,电子设备显示主界面之后,可以通过第一应用进程创建第二子线程。
S260、通过第二子线程加载多个程序包中的第三类程序包。
在本公开实施例中,电子设备创建第二子线程之后,可以通过第二子线程加载多个程序包中的第三类程序包。
在本公开实施例中,第三类程序包可以包括用于支持运行目标应用程序的独立模块运行的代码量较大的程序包。
在本公开实施例中,第三类程序包的加载时长大于预设的权限获取时长。也就是说,第三类程序包可以是在启动目标应用程序时,未被加载的程序包。
在本公开实施例中,第三类程序包的加载时长大于预设的权限获取时长,则说明第三类程序包的代码量较大,使得加载时长较长,在启动目标应用程序时加载第三类程序包,会降低目标应用程序的启动速度。而在本公开实施例中,可以在启动后加载第三类程序包,因此,可以提高目标应用程序的启动效率。
在本公开实施例中,第三类程序包可以为预先设置的用户不会在进入目标应用程序时第一时间使用的服务对应的程序包。
在一个示例中,目标应用程序是电子书应用程序,第三类程序包可以是用户支持书城服务、社区服务、自习室服务、设置服务等非主服务运行的程序包。
在另一个示例中,目标应用程序是短视频应用程序,第三类程序包可以是用于支持商城服务、消息浏览服务、设置服务等非主服务运行的程序包。
由此,在本公开实施例中,可以在加载完第一类程序包之后,加载代码量较大第三类程序包,以通过延迟加载第三类程序包的方式,进一步提高了主界面的加载效率。
在本公开另一些实施例中,电子设备可以在启动目标应用程序之后,且在用户使用目标应用程序提供的服务时,加载第四类程序包。
图3示出了本公开实施例提供的又一种应用启动方法的流程示意图。
如图3所示,该应用启动方法可以包括如下步骤。
S310、响应于检测到对目标应用程序的启动操作,启动目标应用程序对应的第一应用进程。
S320、通过第一应用进程创建多个第一子线程。
S330、通过多个第一子线程并行加载多个程序包。
S340、在多个程序包中的第一类程序包完成加载的情况下,显示目标应用程序的主界面。
需要说明的是,第一子进程加载完多个程序包后,可以自动关闭。
其中,S310~S340与S110~S140相似,在此不做赘述。
S350、响应于检测到对主界面中的目标功能的第二触发操作,通过第一应用进程创建第三子线程。
在本公开实施例中,电子设备显示主界面之后,可以实时检测主界面中的目标功能的第二触发操作,判断是否接收到第二触发操作,如果时,则响应于第二触发操作,通过第一应用进程创建第三子线程,否则,继续检测第二触发操作,直至检测到第二触发操作,通过第一应用进程创建第三子线程。
在本公开实施例中,目标功能可以是目标应用程序所提供的非主服务对应的功能。
在一个示例中,目标应用程序为电子书应用程序,目标功能可以包括电子书应用程序内的书城服务、社区服务、自习室服务、设置服务等非主服务对应的功能。
在另一个示例中,目标应用程序为短视频应用程序,目标功能可以包括短视频应用程序内的商城服务、消息浏览服务、设置服务等非主服务对应的功能。
在本公开实施例中,第二触发操作可以是针对主界面中用于使用目标功能的控件的手势控制操作(如点击、长按、双击等)、语音控制操作或者表情控制操作,在此不作限制。
在本公开实施例中,第三子线程可以是在使用目标功能的过程中,用于加载目标功能所对应的程序包的子线程。
在本公开实施例中,第三子线程的数量可以根据处理器核数确定。
S360、通过第三子线程加载目标功能对应的第四类程序包。
在本公开实施例中,电子设备创建第三子线程之后,可以通过第三子线程目标功能对应的第四类程序包。
在本公开实施例中,第四类程序包可以包括用于支持运行目标应用程序的独立模块运行的程序包。
在本公开实施例中,第四类程序包可以为预先设置的用户不会在进入目标应用程序时第一时间使用的服务对应的程序包。也就是说,第四类程序包可以是在启动目标应用程序时未被加载,且在使用目标功能时加载的程序包。
在本公开实施例中,第四类程序包可以时在使用目标功能时才加载的程序包,在启动目标应用程序时加载第四类程序包,会在一定程序上降低目标应用程序的启动速度。而在本公开实施例中,可以在启动后加载第四类程序包且在在使用目标功能时才加载第四类程序包,因此,可以提高目标应用程序的启动效率。
在一个示例中,目标应用程序是电子书应用程序,第四类程序包可以是用户支持书城服务、社区服务、自习室服务、设置服务等非主服务运行的程序包。
在另一个示例中,目标应用程序是短视频应用程序,第四类程序包可以是用于支持商城服务、消息浏览服务、设置服务等非主服务运行的程序包。
由此,在本公开实施例中,在加载完第一类程序包之后,若在使用目标功能时,接收到用户使用目标功能的第二触发操作,加载第四类程序包,以通过延迟加载第四类程序包的方式,进一步提高了主界面的加载效率。
综上,在本公开实施例中,可以通过延迟加载第三类程序包和第四类程序包的方式,提高主界面的加载效率,进一步提高了应用启动效率。
图4示出了本发明实施例提供的一种电子设备的结构示意图。
本公开实施例提供的电子设备可以包括但不限于诸如智能手机、笔记本电脑、PDA、PAD、PMP、车载终端(例如车载导航终端)、可穿戴设备等的移动终端,以及诸如数字TV、台式计算机、智能家居设备等的固定终端。
需要说明的是,图4示出的电子设备410仅仅是一个示例,不应对本发明实施例的功能和使用范围带来任何限制。
该电子设备410传统上包括处理器410和以存储器420形式的计算机程序产品或者计算机可读介质。存储器420可以是诸如闪存、EEPROM(电可擦除可编程只读存储器)、EPROM、硬盘或者ROM之类的电子存储器。存储器420具有用于执行上述应用启动方法中的任何方法步骤的可执行指令(或程序代码)4211的存储空间421。例如,用于可执行指令的存储空间421可以包括分别用于实现上面的应用启动方法中的各种步骤的各个可执行指令4211。这些可执行指令可以从一个或者多个计算机程序产品中读出或者写入到这一个或者多个计算机程序产品中。这些计算机程序产品包括诸如硬盘,光盘(CD)、存储卡或者软盘之类的程序代码载体。这样的计算机程序产品通常为便携式或者固定存储单元。该存储单元可以具有与图4的电子设备410中的存储器420类似布置的存储段或者存储空间等。可执行指令可以例如以适当形式进行压缩。通常,存储单元包括用于执行根据本发明的应用启动方法步骤的可执行指令,即可以由例如诸如处理器410之类的处理器读取的代码,这些代码当由电子设备410运行时,导致该电子设备410执行上面所描述的应用启动方法中的各个步骤。
当然,为了简化,图4中仅示出了该电子设备410中与本发明有关的组件中的一些,省略了诸如总线、输入/输出接口、输入装置和输出装置等等的组件。除此之外,根据具体应用情况,电子设备410还可以包括任何其他适当的组件。
本发明实施例还提供了一种计算机可读存储介质,其上存储有计算机程序指令,计算机程序指令在被处理器运行时使得处理器执行本发明各实施例所提供的应用启动方法。
该计算机可读存储介质可以采用一个或多个可读介质的任意组合。可读介质可以是可读信号介质或者可读存储介质。可读存储介质例如可以包括但不限于电、磁、光、电磁、红外线、或半导体的系统、装置或器件,或者任意以上的组合。可读存储介质的更具体的例子(非穷举的列表)包括:具有一个或多个导线的电连接、便携式盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM或闪存)、光纤、便携式紧凑盘只读存储器(CD-ROM)、光存储器件、磁存储器件、或者上述的任意合适的组合。
上述计算机可读介质可以是上述电子设备中所包含的;也可以是单独存在,而未装配入该电子设备中。
在本发明实施例中,可以以一种或多种程序设计语言或其组合来编写用于执行本发明的操作的程序代码,上述程序设计语言包括但不限于面向对象的程序设计语言—诸如Java、Smalltalk、C++,还包括常规的过程式程序设计语言—诸如“C”语言或类似的程序设计语言。程序代码可以完全地在用户计算机上执行、部分地在用户计算机上执行、作为一个独立的软件包执行、部分在用户计算机上部分在远程计算机上执行、或者完全在远程计算机或服务器上执行。在涉及远程计算机的情形中,远程计算机可以通过任意种类的网络——包括局域网(LAN)或广域网(WAN)—连接到用户计算机,或者,可以连接到外部计算机(例如利用因特网服务提供商来通过因特网连接)。
本发明公开了:
A1.一种应用启动方法,其中,包括:
响应于检测到对目标应用程序的启动操作,启动目标应用程序对应的第一应用进程,目标应用程序包括多个程序包;通过第一应用进程创建多个第一子线程;
通过多个第一子线程并行加载多个程序包;
在多个程序包中的第一类程序包完成加载的情况下,显示目标应用程序的主界面。
A2.根据权利要求A1的方法,其中,在通过第一应用进程创建多个第一子线程的同时,该方法还包括:
在首次检测到启动操作的情况下,显示目标应用程序对应的权限获取请求信息;
其中,显示目标应用程序的主界面,包括:
在检测到针对权限获取请求信息的第一触发操作的情况下,显示目标应用程序的主界面。
A3.根据权利要求A1或A2的方法,其中,在启动目标应用程序对应的第一应用进程之前,该方法还包括:
在首次检测到启动操作的情况下,创建第一应用进程。
A4.根据权利要求A1至A3的方法,其中,第一子线程的数量根据处理器核数确定。
A5.根据权利要求A1的方法,其中,通过多个第一子线程并行加载多个程序包,包括:
通过任一第一子线程加载第一类程序包;
通过其他每个第一子线程加载多个程序包中的一组第二类程序包。
A6.根据权利要求A5的方法,其中,通过多个第一子线程并行加载多个程序包,还包括:
在目标第一子线程完成加载且多个程序包中还存在未加载的一组目标第二类程序包的情况下,通过目标第一子线程完成加载目标第二类程序包。
A7.根据权利要求A5或A6的方法,其中,第二类程序包的加载时长小于或等于预设的权限获取时长。
A8.根据权利要求A5或A6的方法,其中,每组第二类程序包均满足预设条件;
其中,预设条件包括:第二类程序包之间具有依赖关系,和/或,总加载时长小于或等于预设的权限获取时长。
A9.根据权利要求A1至A8的方法,其中,第一类程序包包括目标应用程序的主程序包和/或目标应用程序的配置程序包。
A10.根据权利要求A1的方法,其中,在显示目标应用程序的主界面之后,该方法还包括:
通过第一应用进程创建第二子线程;
通过第二子线程加载多个程序包中的第三类程序包。
A11.根据权利要求A10的方法,其中,第三类程序包的加载时长大于预设的权限获取时长。
A12.根据权利要求A1的方法,其中,在显示目标应用程序的主界面之后,该方法还包括:
响应于检测到对主界面中的目标功能的第二触发操作,通过第一应用进程创建第三子线程;
通过第三子线程加载目标功能对应的第四类程序包。
A13.根据权利要求A1的方法,其中,在启动目标应用程序对应的第一应用进程之前,该方法还包括:
在非首次检测到启动操作的情况下,查询是否存在目标应用程序对应的第一应用进程;
其中,启动目标应用程序对应的第一应用进程,包括:
在查询到存在第一应用进程的情况下,启动第一应用进程。
A14.根据权利要求A13的方法,其中,在启动第一应用进程之前,该方法还包括:
检测是否存在目标应用程序对应的已更新程序包;
其中,启动所述第一应用进程,包括:
在检测到不存在已更新程序包的情况下,启动第一应用进程。
A15.根据权利要求A14的方法,其中,在检测是否存在目标应用程序对应的已更新程序包之后,该方法还包括:
在检测到存在已更新程序包的情况下,关闭第一应用进程;
创建目标应用程序对应的第二应用进程;
通过第二应用进程并行加载更新后的多个程序包,更新后的多个程序包包括已更新程序包;
在更新后的多个程序包中的第一类程序包完成加载的情况下,显示目标应用程序的主界面。
A16.根据权利要求A1的方法,其中,在显示目标应用程序的主界面之后,该方法还包括:
检测目标应用程序是否存在待更新程序包;
在检测到存在待更新程序包的情况下,下载待更新程序包;
将待更新程序包存储为目标应用程序对应的已更新程序包。
A17.根据权利要求A1的方法,其中,启动操作包括对推送消息的第三触发操作;
其中,在通过第一应用进程创建多个第一子线程之前,该方法还包括:
通过第一应用进程加载推送消息对应的目标程序包;
在目标程序包完成加载的情况下,显示推送消息对应的目标应用页面;
其中,通过第一应用进程创建多个第一子线程,包括:
响应于检测到对目标应用页面的关闭操作,通过第一应用进程创建多个第一子线程。
B18.一种电子设备,其中,包括处理器和存储器,存储器用于存储可执行指令,可执行指令使处理器执行以下操作:
响应于检测到对目标应用程序的启动操作,启动目标应用程序对应的第一应用进程,目标应用程序包括多个程序包;
通过第一应用进程创建多个第一子线程;
通过多个第一子线程并行加载多个程序包;
在多个程序包中的第一类程序包完成加载的情况下,显示目标应用程序的主界面。
B19、根据权利要求B18的电子设备,其中,在通过第一应用进程创建多个第一子线程的同时,可执行指令还使所述处理器执行:
在首次检测到启动操作的情况下,显示目标应用程序对应的权限获取请求信息;
其中,在所述显示所述目标应用程序的主界面时,所述可执行指令具体使所述处理器执行:
在检测到针对权限获取请求信息的第一触发操作的情况下,显示目标应用程序的主界面。
B20、根据权利要求B18或B19的电子设备,其中,在启动目标应用程序对应的第一应用进程之前,可执行指令还使所述处理器执行:
在首次检测到启动操作的情况下,创建第一应用进程。
B21、根据权利要求B18-B20任一项的电子设备,其中,第一子线程的数量根据处理器核数确定。
B22、根据权利要求B18的电子设备,其中,在所述通过所述多个第一子线程并行加载所述多个程序包时,所述可执行指令具体使所述处理器执行:
通过任一第一子线程加载第一类程序包;
通过其他每个第一子线程加载多个程序包中的一组第二类程序包。
B23、根据权利要求B22的电子设备,其中,通过多个第一子线程并行加载多个程序包,可执行指令还使处理器执行:
在目标第一子线程完成加载且多个程序包中还存在未加载的一组目标第二类程序包的情况下,通过目标第一子线程完成加载目标第二类程序包。
B24、根据权利要求B21或B22的电子设备,其中,第二类程序包的加载时长小于或等于预设的权限获取时长。
B25、根据权利要求B21或B22的电子设备,其中,每组第二类程序包均满足预设条件;
其中,预设条件包括:第二类程序包之间具有依赖关系,和/或,总加载时长小于或等于预设的权限获取时长。
B26、根据权利要求B18或B25的电子设备,其中,第一类程序包包括目标应用程序的主程序包和/或目标应用程序的配置程序包。
B27、根据权利要求B26的电子设备,其中,在显示目标应用程序的主界面之后,可执行指令还使所述处理器执行:
通过第一应用进程创建第二子线程;
通过第二子线程加载多个程序包中的第三类程序包。
B28、根据权利要求B27的电子设备,其中,第三类程序包的加载时长大于预设的权限获取时长。
B29、根据权利要求B18的电子设备,其中,在显示目标应用程序的主界面之后,该方法还包括:
响应于检测到对主界面中的目标功能的第二触发操作,通过第一应用进程创建第三子线程;
通过第三子线程加载目标功能对应的第四类程序包。
B30、根据权利要求B18的电子设备,其中,在启动目标应用程序对应的第一应用进程之前,可执行指令还使所述处理器执行:
在非首次检测到启动操作的情况下,查询是否存在目标应用程序对应的第一应用进程;
其中,在所述启动所述目标应用程序对应的第一应用进程时,所述可执行指令具体使处理器执行:
在查询到存在第一应用进程的情况下,启动第一应用进程。
B31、根据权利要求B30的电子设备,其中,在启动第一应用进程之前,所述可执行指令还使所述处理器执行:
检测是否存在目标应用程序对应的已更新程序包;
其中,在所述启动所述第一应用进程时,所述可执行指令还使所述处理器执行:
在检测到不存在已更新程序包的情况下,启动第一应用进程。
B32、根据权利要求B31的电子设备,其中,在检测是否存在目标应用程序对应的已更新程序包之后,可执行指令还使所述处理器执行:
在检测到存在已更新程序包的情况下,关闭第一应用进程;
创建目标应用程序对应的第二应用进程;
通过第二应用进程并行加载更新后的多个程序包,更新后的多个程序包包括已更新程序包;
在更新后的多个程序包中的第一类程序包完成加载的情况下,显示目标应用程序的主界面。
B33、根据权利要求B18的电子设备,其中,在显示目标应用程序的主界面之后,可执行指令还使所述处理器执行:
检测目标应用程序是否存在待更新程序包;
在检测到存在待更新程序包的情况下,下载待更新程序包;
将待更新程序包存储为目标应用程序对应的已更新程序包。
B34、根据权利要求B18的电子设备,其中,启动操作包括对推送消息的第三触发操作;
其中,在通过第一应用进程创建多个第一子线程之前,可执行指令还使所述处理器执行:
通过第一应用进程加载推送消息对应的目标程序包;
在目标程序包完成加载的情况下,显示推送消息对应的目标应用页面;
其中,在所述通过所述第一应用进程创建多个第一子线程时,所述可执行指令具体使处理器执行:
响应于检测到对目标应用页面的关闭操作,通过第一应用进程创建多个第一子线程。
C35.一种计算机可读存储介质,其中,存储介质存储有计算机程序,当计算机程序被处理器执行时,使得处理器实现上述权利要求A1-A18中任一项的应用启动方法。
本发明的各个部件实施例可以全部或部分步骤以硬件实现,或者以在一个或者多个处理器上运行的软件模块实现,或者以它们的组合实现。本领域的技术人员应当理解,可以在实践中使用微处理器或者数字信号处理器(DSP)来实现根据本发明实施例的电子设备中的一些或者全部部件的一些或者全部功能。本发明还可以实现为用于执行这里所描述的方法的一部分或者全部的设备或者装置程序(例如,计算机程序和计算机程序产品)。这样的实现本发明的程序可以存储在计算机可读介质上,或者可以具有一个或者多个信号的形式。这样的信号可以从因特网网站上下载得到,或者在载体信号上提供,或者以任何其他形式提供。
以上描述仅为本发明的较佳实施例以及对所运用技术原理的说明。本领域技术人员应当理解,本发明中所涉及的公开范围,并不限于上述技术特征的特定组合而成的技术方案,同时也应涵盖在不脱离上述公开构思的情况下,由上述技术特征或其等同特征进行任意组合而形成的其它技术方案。例如上述特征与本发明中公开的(但不限于)具有类似功能的技术特征进行互相替换而形成的技术方案。
此外,虽然采用特定次序描绘了各操作,但是这不应当理解为要求这些操作以所示出的特定次序或以顺序次序执行来执行。在一定环境下,多任务和并行处理可能是有利的。同样地,虽然在上面论述中包含了若干具体实现细节,但是这些不应当被解释为对本发明的范围的限制。在单独的实施例的上下文中描述的某些特征还可以组合地实现在单个实施例中。相反地,在单个实施例的上下文中描述的各种特征也可以单独地或以任何合适的子组合的方式实现在多个实施例中。
尽管已经采用特定于结构特征和/或方法逻辑动作的语言描述了本主题,但是应当理解所附权利要求书中所限定的主题未必局限于上面描述的特定特征或动作。相反,上面所描述的特定特征和动作仅仅是实现权利要求书的示例形式。
Claims (10)
1.一种应用启动方法,其特征在于,包括:
响应于检测到对目标应用程序的启动操作,启动所述目标应用程序对应的第一应用进程,所述目标应用程序包括多个程序包;
通过所述第一应用进程创建多个第一子线程;
通过所述多个第一子线程并行加载所述多个程序包;
在所述多个程序包中的第一类程序包完成加载的情况下,显示所述目标应用程序的主界面。
2.根据权利要求1所述的方法,其特征在于,在所述通过所述第一应用进程创建多个第一子线程的同时,所述方法还包括:
在首次检测到所述启动操作的情况下,显示所述目标应用程序对应的权限获取请求信息;
其中,所述显示所述目标应用程序的主界面,包括:
在检测到针对所述权限获取请求信息的第一触发操作的情况下,显示所述目标应用程序的主界面。
3.根据权利要求1所述的方法,其特征在于,在所述显示所述目标应用程序的主界面之后,所述方法还包括:
通过所述第一应用进程创建第二子线程;
通过所述第二子线程加载所述多个程序包中的第三类程序包。
4.根据权利要求1所述的方法,其特征在于,在所述显示所述目标应用程序的主界面之后,所述方法还包括:
响应于检测到对所述主界面中的目标功能的第二触发操作,通过所述第一应用进程创建第三子线程;
通过所述第三子线程加载所述目标功能对应的第四类程序包。
5.根据权利要求1所述的方法,其特征在于,在所述启动所述目标应用程序对应的第一应用进程之前,所述方法还包括:
在非首次检测到所述启动操作的情况下,查询是否存在所述目标应用程序对应的所述第一应用进程;
其中,所述启动所述目标应用程序对应的第一应用进程,包括:
在查询到存在所述第一应用进程的情况下,启动所述第一应用进程。
6.根据权利要求5所述的方法,其特征在于,在所述启动所述第一应用进程之前,所述方法还包括:
检测是否存在所述目标应用程序对应的已更新程序包;
其中,所述启动所述第一应用进程,包括:
在检测到不存在所述已更新程序包的情况下,启动所述第一应用进程。
7.根据权利要求1所述的方法,其特征在于,在所述显示所述目标应用程序的主界面之后,所述方法还包括:
检测所述目标应用程序是否存在待更新程序包;
在检测到存在所述待更新程序包的情况下,下载所述待更新程序包;
将所述待更新程序包存储为所述目标应用程序对应的已更新程序包。
8.根据权利要求1所述的方法,其特征在于,所述启动操作包括对推送消息的第三触发操作;
其中,在所述通过所述第一应用进程创建多个第一子线程之前,所述方法还包括:
通过所述第一应用进程加载所述推送消息对应的目标程序包;
在所述目标程序包完成加载的情况下,显示所述推送消息对应的目标应用页面;
其中,所述通过所述第一应用进程创建多个第一子线程,包括:
响应于检测到对所述目标应用页面的关闭操作,通过所述第一应用进程创建所述多个第一子线程。
9.一种电子设备,其特征在于,包括处理器和存储器,所述存储器用于存储可执行指令,所述可执行指令使所述处理器执行以下操作:
响应于检测到对目标应用程序的启动操作,启动所述目标应用程序对应的第一应用进程,所述目标应用程序包括多个程序包;
通过所述第一应用进程创建多个第一子线程;
通过所述多个第一子线程并行加载所述多个程序包;
在所述多个程序包中的第一类程序包完成加载的情况下,显示所述目标应用程序的主界面。
10.一种计算机可读存储介质,其特征在于,所述存储介质存储有计算机程序,当所述计算机程序被处理器执行时,使得处理器实现用上述权利要求1-8中任一项所述的应用启动方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111115529.4A CN113835782A (zh) | 2021-09-23 | 2021-09-23 | 应用启动方法、电子设备及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111115529.4A CN113835782A (zh) | 2021-09-23 | 2021-09-23 | 应用启动方法、电子设备及存储介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN113835782A true CN113835782A (zh) | 2021-12-24 |
Family
ID=78969379
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202111115529.4A Pending CN113835782A (zh) | 2021-09-23 | 2021-09-23 | 应用启动方法、电子设备及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN113835782A (zh) |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104199684A (zh) * | 2014-08-13 | 2014-12-10 | 百度在线网络技术(北京)有限公司 | 浏览器冷启动的实现方法及装置 |
CN106445617A (zh) * | 2016-10-13 | 2017-02-22 | 武汉斗鱼网络科技有限公司 | 基于Android的应用程序冷启动优化方法及系统 |
CN108536481A (zh) * | 2018-02-28 | 2018-09-14 | 努比亚技术有限公司 | 一种应用程序启动方法、移动终端及计算机存储介质 |
CN110262847A (zh) * | 2019-05-14 | 2019-09-20 | 百度(中国)有限公司 | 应用程序启动加速方法、装置及机器可读存储介质 |
-
2021
- 2021-09-23 CN CN202111115529.4A patent/CN113835782A/zh active Pending
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104199684A (zh) * | 2014-08-13 | 2014-12-10 | 百度在线网络技术(北京)有限公司 | 浏览器冷启动的实现方法及装置 |
CN106445617A (zh) * | 2016-10-13 | 2017-02-22 | 武汉斗鱼网络科技有限公司 | 基于Android的应用程序冷启动优化方法及系统 |
CN108536481A (zh) * | 2018-02-28 | 2018-09-14 | 努比亚技术有限公司 | 一种应用程序启动方法、移动终端及计算机存储介质 |
CN110262847A (zh) * | 2019-05-14 | 2019-09-20 | 百度(中国)有限公司 | 应用程序启动加速方法、装置及机器可读存储介质 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109542614B (zh) | 资源配置方法、装置、终端及存储介质 | |
CN111475235B (zh) | 函数计算冷启动的加速方法、装置、设备及存储介质 | |
US9189300B2 (en) | Dynamic service discovery | |
CN112988400B (zh) | 显存优化方法、装置、电子设备以及可读存储介质 | |
CN110795192B (zh) | 语言切换方法、装置及终端设备 | |
CN110825456A (zh) | 加载时间计算方法、装置、计算机设备及存储介质 | |
WO2014107987A1 (en) | File presenting method and apparatus for a smart terminal | |
US10908948B2 (en) | Multiple application instances in operating systems that utilize a single process for application execution | |
US20140082050A1 (en) | Fulfillment of Applications to Devices | |
CN114302208A (zh) | 视频的发布方法、装置、电子设备、存储介质和程序产品 | |
CN111104178A (zh) | 一种动态库加载方法、终端装置及存储介质 | |
CN111708548A (zh) | 软件安装方法、装置、设备及存储介质 | |
CN111309416A (zh) | 应用界面的信息显示方法、装置、设备及可读介质 | |
CN109358927B (zh) | 应用程序显示的方法、装置及终端设备 | |
CN103544039A (zh) | 插件加载处理方法和装置 | |
CN112565210A (zh) | Cdn节点推荐方法、系统、电子设备及存储介质 | |
US20140325535A1 (en) | Method of switching desktop subjects of mobile terminal and its switching apparatus | |
CN113835782A (zh) | 应用启动方法、电子设备及存储介质 | |
CN111782989B (zh) | 快应用的关联方法及相关装置 | |
CN112689199A (zh) | 一种电视主页的插件加载方法、装置、电视及存储介质 | |
CN112291602A (zh) | 视频播放方法、电子设备及存储介质 | |
CN110069570B (zh) | 数据处理方法和装置 | |
CN112559394B (zh) | 系统库访问方法、装置以及电子设备 | |
CN115858164A (zh) | 资源分包方法及装置、设备、存储介质 | |
CN114168164A (zh) | 应用下载方法、装置和电子设备 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination |