CN109582385A - 应用程序启动方法和装置、存储介质及电子设备 - Google Patents

应用程序启动方法和装置、存储介质及电子设备 Download PDF

Info

Publication number
CN109582385A
CN109582385A CN201811320089.4A CN201811320089A CN109582385A CN 109582385 A CN109582385 A CN 109582385A CN 201811320089 A CN201811320089 A CN 201811320089A CN 109582385 A CN109582385 A CN 109582385A
Authority
CN
China
Prior art keywords
application program
resource
preset kind
kind resource
thread
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
Application number
CN201811320089.4A
Other languages
English (en)
Inventor
林进全
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Guangdong Oppo Mobile Telecommunications Corp Ltd
Original Assignee
Guangdong Oppo Mobile Telecommunications Corp Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Guangdong Oppo Mobile Telecommunications Corp Ltd filed Critical Guangdong Oppo Mobile Telecommunications Corp Ltd
Priority to CN201811320089.4A priority Critical patent/CN109582385A/zh
Publication of CN109582385A publication Critical patent/CN109582385A/zh
Pending legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/44Arrangements for executing specific programs
    • G06F9/445Program loading or initiating
    • G06F9/44505Configuring for program initiating, e.g. using registry, configuration files
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/44Arrangements for executing specific programs
    • G06F9/445Program loading or initiating
    • G06F9/44521Dynamic linking or loading; Link editing at or after load time, e.g. Java class loading
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/44Arrangements for executing specific programs
    • G06F9/445Program loading or initiating
    • G06F9/44568Immediately runnable code
    • G06F9/44578Preparing or optimising for loading

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Stored Programmes (AREA)

Abstract

本申请实施例公开了一种应用程序启动方法和装置、存储介质及电子设备;该方法包括:当接收到应用程序启动指令时,创建所述应用程序对应的进程,所述进程包括主线程和至少一个子线程;在所述子线程中加载启动所述应用程序所需的预设类型资源;通过所述主线程读取在所述子线程中加载后的所述预设类型资源;基于所述加载后的所述预设类型资源启动所述应用程序。本方案可以提高应用程序的启动速度。

Description

应用程序启动方法和装置、存储介质及电子设备
技术领域
本申请涉及通信技术领域,尤其涉及一种应用程序启动方法和装置、存储介质及电子设备。
背景技术
随着终端技术的发展,如今移动终端例如智能手机的内存和运存越来越大,并且移动终端可以安装的应用程序也越来越多。
然而,随着移动终端上安装的应用程序的数量越来越多,这些应用程序所占用的内存也越来越多,导致应用程序的启动速度比较慢。
发明内容
本申请实施例提供了一种应用程序启动方法、装置、存储介质和电子设备,可以提高应用程序的启动速度。
第一方面,本申请实施例提供了一种应用程序启动方法,包括:
当接收到应用程序启动指令时,创建所述应用程序对应的进程,所述进程包括主线程和至少一个子线程;
在所述子线程中加载启动所述应用程序所需的预设类型资源;
通过所述主线程读取在所述子线程中加载后的所述预设类型资源;
基于所述加载后的所述预设类型资源启动所述应用程序。
第二方面,本申请实施例提供了一种应用程序启动装置,包括:
进程创建单元,用于当接收到应用程序启动指令时,创建所述应用程序对应的进程,所述进程包括主线程和至少一个子线程;
第一加载单元,用于在所述子线程中加载启动所述应用程序所需的预设类型资源;
资源读取单元,用于通过所述主线程读取在所述子线程中加载后的所述预设类型资源;
应用启动单元,用于基于所述加载后的所述预设类型资源启动所述应用程序。
第三方面,本申请实施例还提供一种存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现上述应用程序启动方法的步骤。
第四方面,本申请实施例还提供一种电子设备,包括存储器,处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述程序时实现上述应用程序启动方法的步骤。
本申请实施例通过当接收到应用程序启动指令时,创建所述应用程序对应的进程,所述进程包括主线程和至少一个子线程,并将加载启动所述应用程序所需的预设类型资源的步骤提前至所述子线程中进行加载,可以提升应用程序的启动速度。
附图说明
为了更清楚地说明本申请实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是本申请实施例提供的应用程序启动方法的流程示意图。
图2是本申请实施例提供的应用程序启动方法的另一流程示意图。
图3是本申请实施例提供的应用程序启动方法的第一种阶段示意图。
图4是本申请实施例提供的应用程序启动方法的第二种阶段示意图。
图5是本申请实施例提供的应用程序启动装置的结构示意图。
图6是本申请实施例提供的应用程序启动装置的另一结构示意图。
图7是本申请实施例提供的应用程序启动装置的又一结构示意图。
图8是本申请实施例提供的电子设备的结构示意图。
图9是本申请实施例提供的电子设备的另一种结构示意图。
具体实施方式
请参照图式,其中相同的组件符号代表相同的组件,本申请的原理是以实施在一适当的运算环境中来举例说明。以下的说明是基于所例示的本申请具体实施例,其不应被视为限制本申请未在此详述的其它具体实施例。
在本文中提及“实施例”意味着,结合实施例描述的特定特征、结构或特性可以包含在本申请的至少一个实施例中。在说明书中的各个位置出现该短语并不一定均是指相同的实施例,也不是与其它实施例互斥的独立的或备选的实施例。本领域技术人员显式地和隐式地理解的是,本文所描述的实施例可以与其它实施例相结合。
本申请实施例提供一种应用启动方法和装置、存储介质及电子设备。其中,该装置可以集成在电子设备中,该电子设备可以为智能手机、平板电脑等电子设备。以下将分别进行详细说明。
请参考图1,图1为本申请实施例提供的应用程序启动方法的流程示意图,具体流程可以如下:
101、当接收到应用程序启动指令时,创建所述应用程序对应的进程,所述进程包括主线程和至少一个子线程。
可以理解的是,当用户要启动某个应用程序时,可以通过电子设备发起一个应用程序启动指令。当电子设备接收到应用程序启动指令时,创建该应用程序对应的进程。其中,用户发起应用程序启动指令的方式可以有多种。比如,可以通过手指点击触发电子设备桌面上的应用程序图标,也可以通过敲击电子设备的壳体产生振动信号触发相应的应用程序等。
其中,本次启动为第一次启动之后的启动,比如,可以为第二次启动、第三次启动或第四次启动等。
其中,应用程序和进程都是计算机程序。应用程序一般指的是用户可以看到的程序,是静态的,比如word、记事本或Photoshop等。进程一般指的是用户感觉不到的程序,是动态的,比如比如一些服务、windows内核等在后台默默运行的程序。其中,进程是应用程序的运行实例,是应用程序的一次动态执行。
其中,线程是进程的一个实体,是中央处理器(CPU,Central Processing Unit)调度和分派的基本单位,它是比进程更小的能独立运行的基本单位。线程本身基本上不拥有***资源,只拥有一点在运行中必不可少的资源(如程序计数器,一组寄存器和栈),但是它可与同属一个进程的其他的线程共享进程所拥有的全部资源。
在本实施例中,应用程序对应的进程包括一个主线程和至少一个子线程。其中,至少一个包括两个及两个以上。
102、在所述子线程中加载启动所述应用程序所需的预设类型资源。
可以理解的是,在应用程序的启动过程中,需要加载启动该应用程序所需的各种资源,比如图片资源、音频资源、文字信息以及***文件等。
其中,在应用程序的启动过程中,加载一些容量较大的资源所需的时间会比加载其它资源所需的时间长,从而导致应用程序启动的速度较慢。
对此,在一些实施例中,当应用程序再次启动时,可以在创建该应用程序对应的进程的过程中将进程划分为一个主线程和至少一个子线程,并将容量较大的预设类型资源置于子线程中进行加载,其中加载可以包括获取和解码。也即,步骤“在所述子线程中加载启动所述应用程序所需的预设类型资源”可以包括:
根据所述标识在所述子线程中获取启动所述应用程序所需的预设类型资源,并对所述预设类型资源进行解码。
具体的,可以在应用程序第一次启动时,对该预设类型资源进行标识。当该应用程序再次启动时,可以根据该标识在子线程中获取该预设类型资源,并对该预设类型资源进行解码。
在一些实施例中,当应用程序再次启动,创建该应用程序对应的进程时,可以根据预设类型资源的容量对进程进行划分。也即步骤“当接收到应用程序启动指令时,创建所述应用程序对应的进程,所述进程包括主线程和至少一个子线程”可以包括:
当接收到应用程序启动指令时,创建所述应用程序对应的进程,并根据所述预设类型资源的容量对所述进程进行划分,所述进程包括主线程和至少一个子线程。
具体的,可以在应用程序第一次启动时,获取预设类型资源的容量和数量,并将该预设类型资源的容量和数量存储在电子设备的存储器中。当该应用程序再次启动时,可以根据预设类型资源的容量和数量对进程进行划分,将该进程划分为主线程和至少一个子线程。
在一些实施例中,子线程的数量可以根据预设类型资源的容量和数量与预设阈值的比较结果进行划分。也即,步骤“根据所述预设类型资源的容量和数量对所述进程进行划分,所述进程包括主线程和至少一个子线程”可以包括:
当所述容量大于第一阈值,且所述预设类型资源的数量大于第二阈值时,将所述进程划分为主线程、第一子线程和第二子线程;
步骤“在所述子线程中加载启动所述应用程序所需的预设类型资源”,可以包括:
按照预设规则将所述预设类型资源划分为第一预设类型资源和第二预设类型资源;
在所述第一子线程中加载所述第一预设类型资源;
在所述第二子线程中加载所述第二预设类型资源。
需要说明的是,在本申请的描述中,术语“第一”、“第二”、“第三”仅用于描述目的,而不能理解为指示或暗示相对重要性或者隐含指明所指示的技术特征的数量。由此,限定有“第一”、“第二”、“第三”的特征可以明示或者隐含地包括一个或者更多个所述特征。
其中,预设类型资源为容量大于第三阈值的资源。一般的,预设类型资源可以包括图片资源或音频资源中的一种或多种。可以理解的是,在第一次启动应用程序时,可以将容量大于第三阈值的资源作为预设类型资源,并对其进行标识。
可以理解的是,为了加快应用程序的启动速度,当预设类型资源的容量大于第一阈值,并且预设类型资源的数量大于第二阈值时,可以将进程划分为主线程、第一子线程和第二子线程。并且按照预设规则将预设类型资源划分为第一预设类型资源和第二预设类型资源分别置于第一子线程和第二子线程中进行加载。其中,第一子线程和第二子线程的加载过程可以并行执行。
其中,第一阈值大于第三阈值,第一阈值可以根据实际情况设定,比如,可以为第三阈值的一倍、两倍等。
其中,第三阈值可以是工程师根据多次试验数据获得。
其中,预设类型资源的数量为至少两个即第二阈值为两个。可以理解的是,当预设类型资源的数量为一个时,即使该预设类型资源的容量大于第一阈值,也不可对该预设类型资源进行划分。比如,预设类型资源为一张图片,此时即使该图片的容量大于第一阈值,也不可对图片进行划分,若是对该图片进行划分,会导致图片受损。
其中,预设规则可以根据实际情况设定,比如,当预设类型资源的数量为偶数个时,将预设类型资源平分为两份分别置于第一子线程和第二子线程中进行加载;当预设类型资源为奇数个时,将预设类型资源分为不等的两份,将数量多的一份置于第一子线程中进行加载,数量少的一份置于第二子线程中进行加载。
可以理解的是,子线程的数量包括但不限于第一子线程和第二子线程,还可以根据预设类型资源的容量和数量划分为更多的子线程。比如,可以设置一个第四阈值和第五阈值,当预设类型资源的容量大于第四阈值且数量大于第五阈值时,可以根据预设类型资源的数量创建出相应数量的子线程。比如,预设类型资源的数量为9个时,可以将进程划分为主线程和9个子线程。
在一些实施例中,当创建了应用程序对应的进程之后,主线程可以用于加载第一类型资源。也即,在步骤“所述当接收到应用程序启动指令时,创建所述应用程序对应的进程”之后,“在所述子线程中加载启动所述应用程序所需的预设类型资源”还可以包括:
在所述主线程中加载第一类型资源。
其中,第一类型资源可以为应用程序的框架等与应用程序架构相关的资源。
可以理解的是,加快应用程序启动速度的核心是在主线程加载第一类型资源的过程中,将预设类型资源的加载置于子线程中执行。其中在主线程中加载第一类型资源与在子线程中加载预设类型资源是在同一个时间段内进行的。比如,当在主线程中加载第一类型资源的开始时刻为第一时刻,结束时刻为第二时刻时,在子线程中加载预设类型资源的开始时刻在第一时刻和第二时刻之间,结束时刻也在第一时刻和第二时刻之间。其中,在第一时刻和第二时间之间可以包括等于第一时刻(第二时刻)。
在一些实施例中,加快应用程序启动速度的最优方式可以为将在主线程中加载第一类型资源与在子线程中加载启动所述应用程序所需的预设类型资源的过程同时开始,即开始时刻相同。
103、通过所述主线程读取在所述子线程中加载后的所述预设类型资源。
具体的,当第一类型资源加载完成后,可以通过主线程读取在子线程中解码后的预设类型资源,并加载第二类型资源。其中,第二类型资源为启动应用程序所需的其它资源,容量小于第三阈值。
104、基于所述加载后的所述预设类型资源启动所述应用程序。
具体的,可以在主线程中根据第一类型资源、第二类型资源以及在子线程中解码后的预设类型资源启动应用程序。
本实施例提供的应用程序启动方法通过当接收到应用程序启动指令时,创建所述应用程序对应的进程,所述进程包括主线程和至少一个子线程,并将加载启动所述应用程序所需的预设类型资源的步骤提前至所述子线程中进行加载,可以提升应用程序的启动速度。
为了更好的说明以上实施例所描述的方法,以下将举例作进一步详细说明,其中名词的含义与上述应用程序启动方法中相同,具体实现细节可以参考方法实施例中的说明。
请参阅图2,图2是本申请实施例提供的应用程序启动方法的另一流程示意图,可以包括以下流程:
201、在第一次启动应用程序时,对启动所述应用程序所需的图片资源、和/或音频资源进行标识。
202、当接收到应用程序启动指令时,创建所述应用程序对应的进程,所述进程包括主线程和至少一个子线程。
203、在所述主线程中加载第一类型资源,并在所述子线程中根据所述标识获取启动所述应用程序所需的图片资源、和/或音频资源。
204、对所述图片资源、和/或音频资源进行解码。
205、通过所述主线程读取在所述子线程中解码后的图片资源、和/或音频资源,并加载第二类型资源。
206、根据所述第一类型资源、第二类型资源以及所述解码后的图片资源、和/或音频资源启动所述应用程序。
在Android***中,应用程序的启动过程可以依次分为三个阶段:ProcessCreation阶段、BindApplication阶段和ActivityStart阶段。
其中,在ActivityStart阶段会通过ResourceImpl组件加载启动应用程序所需的资源。通常启动应用程序所需的资源会包括图片资源、和/或音频资源,当图片资源、和/或音频资源获取完成后,需要通过调用Decode组件对图片资源、和/或音频资源进行解码。如果图片资源、和/或音频资源比较大,解码图片资源、和/或音频资源所需的时间会比较长,导致应用程序的启动速度较慢。在具体实施过程中,如图3所示,BindApplicaiton阶段和ActivityStart阶段总共需要执行224毫秒(ms)。
在一些实施例中,可以在应用程序第一次启动时,对启动该应用程序所需的图片资源、和/或音频资源进行标识。当应用程序再次启动时,可以在BindApplication阶段根据该标识获取启动该应用程序所需的图片资源、和/或音频资源,调用Decode组件在子线程中对图片资源、和/或音频资源进行解码。当执行ActivityStart阶段时,可以直接从缓存中获取在子线程中已解码的图片资源、和/或音频资源,并加载启动该应用程序所需的其它资源,再基于已解码的图片资源、和/或音频资源和其它资源对应用程序进行启动。在具体实施过程中,如图4所示,BindApplicaiton阶段和ActivityStart阶段总共需要执行115毫秒(ms)。
本实施例通过在第一次启动应用程序时,对启动该应用程序所需的图片资源、和/或音频资源进行标识。当应用程序再次启动时,可以根据该标识获取图片资源、和/或音频资源,并在BindApplication阶段调用Decode组件在子线程中对图片资源、和/或音频资源进行解码,使得图片资源、和/或音频资源加载流程提前与BindApplication阶段并行执行,提高了应用程序的启动速度。
为了便于更好的实施本申请实施例提供的应用程序启动方法,本申请实施例还提供了一种基于应用程序启动方法的装置。其中名词的含义与上述应用程序启动方法中相同,具体实现细节可以参考方法实施例中的说明。
请参阅图5,图5为本申请实施例提供的应用程序启动装置的结构示意图,该应用程序启动装置可以包括:进程创建单元301、第一加载单元302、资源读取单元303以及应用启动单元304。其中:
进程创建单元301,用于当接收到应用程序启动指令时,创建所述应用程序对应的进程,所述进程包括主线程和至少一个子线程;
第一加载单元302,用于在所述子线程中加载启动所述应用程序所需的预设类型资源;
资源读取单元303,用于通过所述主线程读取在所述子线程中加载后的所述预设类型资源;
应用启动单元304,用于基于所述加载后的所述预设类型资源启动所述应用程序。
在一些实施例中,如图6所示,该装置还可以包括:资源标识单元305。
所述资源标识单元305,用于在第一次启动所述应用程序时,对所述预设类型资源进行标识。
在一些实施例中,所述第一加载单元302,用于:
根据所述标识在所述子线程中获取启动所述应用程序所需的预设类型资源,并对所述预设类型资源进行解码。
在一些实施例中,所述资源标识单元305,还用于获取所述预设类型资源的容量和数量。
所述进程创建单元301,用于当接收到应用程序启动指令时,创建所述应用程序对应的进程,并根据所述预设类型资源的容量和数量将所述进程划分为主线程和至少一个子线程。
在一些实施例中,所述进程创建单元301,用于:
当所述容量大于第一阈值,且数量大于第二阈值时,将所述进程划分为主线程、第一子线程和第二子线程;
在一些实施例中,如图7所示,所述所述第一加载单元302可以包括:资源划分子单元3021、第一加载子单元3022和第二加载子单元3023。其中:
所述资源划分子单元3021,用于按照预设规则将所述预设类型资源划分为第一预设类型资源和第二预设类型资源;
所述第一加载子单元3022,用于在所述第一子线程中加载所述第一预设类型资源;
所述第二加载子单元3023,用于在所述第二子线程中加载所述第二预设类型资源。
在一些实施例中,如图6所示,所述装置还可以包括:第二加载单元306。其中:
所述第二加载单元306,用于在所述主线程中加载第一类型资源;
所述应用启动单元304,用于根据所述第一类型资源和所述加载后的预设类型资源启动所述应用程序。
需要说明的是,上述实施例提供的应用程序启动装置在进行应用启动时,仅以上述各功能模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能模块完成,即将设备的内部结构划分成不同的功能模块,以完成以上描述的全部或者部分功能。另外,上述实施例提供的应用程序启动装置与应用程序启动方法属于同一构思,其具体实现过程详见方法实施例,此处不再赘述。
本实施例提供的应用程序启动装置通过进程创建单元301当接收到应用程序启动指令时,创建所述应用程序对应的进程,所述进程包括主线程和至少一个子线程;由第一加载单元302在所述子线程中加载启动所述应用程序所需的预设类型资源;由资源读取单元303通过所述主线程读取在所述子线程中加载后的所述预设类型资源;由应用启动单元304基于所述加载后的所述预设类型资源启动所述应用程序。本方案可以将加载启动所述应用程序所需的预设类型资源的步骤提前至所述子线程中进行加载,可以提升应用程序的启动速度。
本申请还提供一种电子设备,包括存储器,处理器及存储在存储器上并可在处理器上运行的计算机程序,其特征在于,所述处理器执行所述程序时实现方法实施例提供的应用程序启动方法。
本申请又一实施例中还提供一种电子设备,该电子设备可以是智能手机、平板电脑等设备。如图8所示,电子设备400可以包括处理器401和存储器402,其中,处理401和存储器402电性连接。
处理器401是电子设备400的控制中心,利用各种接口和线路连接整个电子设备的各个部分,通过运行或加载存储在存储器402内的应用程序,以及调用存储在存储器402内的数据,执行电子设备的各种功能和处理数据,从而对电子设备进行整体监控。
在本实施例中,电子设备400中的处理器401会按照如下的步骤,将一个或一个以上的应用程序的进程对应的指令加载到存储器402中,并由处理器401来运行存储在存储器402中的应用程序,从而实现各种功能:
当接收到应用程序启动指令时,创建所述应用程序对应的进程,所述进程包括主线程和至少一个子线程;
在所述子线程中加载启动所述应用程序所需的预设类型资源;
通过所述主线程读取在所述子线程中加载后的所述预设类型资源;
基于所述加载后的所述预设类型资源启动所述应用程序。
在一些实施例中,处理器401还可以用于执行:
在第一次启动所述应用程序时,对所述预设类型资源进行标识;
在一些实施例中,当在所述子线程中加载启动所述应用程序所需的预设类型资源时,处理器401可以用于执行:
根据所述标识在所述子线程中获取启动所述应用程序所需的预设类型资源,并对所述预设类型资源进行解码。
在一些实施例中,当在第一次启动所述应用程序时,处理器401可以用于执行:
获取所述预设类型资源的容量和数量。
在一些实施例中,当接收到应用程序启动指令时,创建所述应用程序对应的进程,所述进程包括主线程和至少一个子线程时,处理器401可以用于执行:
当接收到应用程序启动指令时,创建所述应用程序对应的进程,并根据所述预设类型资源的容量和数量对所述进程进行划分,所述进程包括主线程和至少一个子线程。
在一些实施例中,在根据所述预设类型资源的容量和数量对所述进程进行划分,所述进程包括主线程和至少一个子线程时,处理器401还可以用于执行:
当所述容量大于第一阈值,且所述数量大于第二阈值时,将所述进程划分为主线程、第一子线程和第二子线程。
在一些实施例中,在所述子线程中加载启动所述应用程序所需的预设类型资源时,处理器401可以用于执行:
按照预设规则将所述预设类型资源划分为第一预设类型资源和第二预设类型资源;
在所述第一子线程中加载所述第一预设类型资源;
在所述第二子线程中加载所述第二预设类型资源。
在一些实施例中,处理器401还可以用于执行:
在所述主线程中加载第一类型资源。
在一些实施例中,在基于所述加载后的所述预设类型资源启动所述应用程序时,处理器401还可以用于执行:
根据所述第一类型资源和所述加载后的预设类型资源启动所述应用程序。
由上可知,本实施例提供的电子设备400通过当接收到应用程序启动指令时,创建所述应用程序对应的进程,所述进程包括主线程和至少一个子线程;在所述子线程中加载启动所述应用程序所需的预设类型资源;通过所述主线程读取在所述子线程中加载后的所述预设类型资源;基于所述加载后的所述预设类型资源启动所述应用程序。本方案可以将加载启动所述应用程序所需的预设类型资源的步骤提前至所述子线程中进行加载,可以提升应用程序的启动速度。
请参阅图9,图9为本申请实施例提供的电子设备的结构示意图。该电子设备500可以包括处理器501、存储器502、显示屏503和电源504等部分。本领域技术人员可以理解,图9中示出的电子设备结构并不构成对电子设备的限定,可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件布置。
处理器501是电子设备的控制中心,利用各种接口和线路连接整个电子设备的各个部分,通过运行或执行存储在存储器502内的应用程序,以及调用存储在存储器502内的数据,执行电子设备的各种功能和处理数据,从而对电子设备进行整体监控。可选的,处理器501可包括一个或多个处理核心;优选的,处理器501可集成应用处理器和调制解调处理器,其中,应用处理器主要处理操作***、用户界面和应用程序等,调制解调处理器主要处理无线通信。可以理解的是,上述调制解调处理器也可以不集成到处理器501中。
存储器502可用于存储应用程序和数据。存储器502存储的应用程序中包含有可执行代码。应用程序可以组成各种功能模块。处理器501通过运行存储在存储器502的应用程序,从而执行各种功能应用以及数据处理。存储器502可主要包括存储程序区和存储数据区,其中,存储程序区可存储操作***、至少一个功能所需的应用程序(比如声音播放功能、图像播放功能等)等;存储数据区可存储根据电子设备的使用所创建的数据(比如音频数据、电话本等)等。此外,存储器502可以包括高速随机存取存储器,还可以包括非易失性存储器,例如至少一个磁盘存储器件、闪存器件、或其他易失性固态存储器件。
显示屏503可用于显示由用户输入的信息或提供给用户的信息以及电子设备的各种图形用户接口,这些图形用户接口可以由图形、文本、图标、视频和其任意组合来构成。显示屏503可包括显示面板。可选的,可以采用液晶显示器(LCD,Liquid Crystal Display)、有机发光二极管(OLED,Organic Light-Emitting Diode)等形式来配置显示面板。进一步的,触敏表面可覆盖显示面板,当触敏表面检测到在其上或附近的触摸操作后,传送给处理器501以确定触摸事件的类型,随后处理器501根据触摸事件的类型在显示面板上提供相应的视觉输出。
电子设备还可以包括给各个部件供电的电源504(比如电池)。优选的,电源可以通过电源管理***与处理器501逻辑相连,从而通过电源管理***实现管理充电、放电、以及功耗管理等功能。电源504还可以包括一个或一个以上的直流或交流电源、再充电***、电源故障检测电路、电源转换器或者逆变器、电源状态指示器等任意组件。
具体实施时,以上各个模块可以作为独立的实体来实现,也可以进行任意组合,作为同一或若干个实体来实现,以上各个模块的具体实施可参见前面的方法实施例,在此不再赘述。
本申请实施例还提供一种存储介质,所述存储介质中存储有计算机程序,当所述计算机程序在计算机上运行时,所述计算机执行上述任一实施例所述的应用程序启动方法。
需要说明的是,本领域普通技术人员可以理解上述实施例的各种方法中的全部或部分步骤是可以通过程序来指令相关的硬件来完成,该程序可以存储于计算机可读存储介质中,如存储在终端的存储器中,并被该终端内的至少一个处理器执行,在执行过程中可包括如应用程序启动方法的实施例的流程。其中,存储介质可以包括:只读存储器(ROM,ReadOnly Memory)、随机存取记忆体(RAM,Random Access Memory)、磁盘或光盘等。
在以上的说明中,本申请的具体实施例将参考由一部或多部计算机所执行的步骤及符号来说明,除非另有述明。因此,这些步骤及操作将有数次提到由计算机执行,本文所指的计算机执行包括了由代表了以一结构化型式中的数据的电子信号的计算机处理单元的操作。此操作转换该数据或将其维持在该计算机的内存***中的位置处,其可重新配置或另外以本领域测试人员所熟知的方式来改变该计算机的运作。该数据所维持的数据结构为该内存的实***置,其具有由该数据格式所定义的特定特性。但是,本申请原理以上述文字来说明,其并不代表为一种限制,本领域测试人员将可了解到以下所述的多种步骤及操作亦可实施在硬件当中。
以上对本申请实施例提供的一种应用程序启动方法和装置、存储介质及电子设备进行了详细介绍,其各功能模块可以集成在一个处理芯片中,也可以是各个模块单独物理存在,也可以两个或两个以上模块集成在一个模块中。上述集成的模块既可以采用硬件的形式实现,也可以采用软件功能模块的形式实现。本文中应用了具体个例对本申请的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本申请的方法及其核心思想;同时,对于本领域的技术人员,依据本申请的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本申请的限制。

Claims (16)

1.一种应用程序启动方法,其特征在于,包括:
当接收到应用程序启动指令时,创建所述应用程序对应的进程,所述进程包括主线程和至少一个子线程;
在所述子线程中加载启动所述应用程序所需的预设类型资源;
通过所述主线程读取在所述子线程中加载后的所述预设类型资源;
基于所述加载后的所述预设类型资源启动所述应用程序。
2.如权利要求1所述的应用程序启动方法,其特征在于,所述方法还包括:
在第一次启动所述应用程序时,对所述预设类型资源进行标识;
所述在所述子线程中加载启动所述应用程序所需的预设类型资源,包括:
根据所述标识在所述子线程中获取启动所述应用程序所需的预设类型资源,并对所述预设类型资源进行解码。
3.如权利要求2所述的应用程序启动方法,其特征在于,在第一次启动所述应用程序时,还包括:
获取所述预设类型资源的容量和数量;
所述当接收到应用程序启动指令时,创建所述应用程序对应的进程,所述进程包括主线程和至少一个子线程,包括:
当接收到应用程序启动指令时,创建所述应用程序对应的进程,并根据所述预设类型资源的容量和数量对所述进程进行划分,所述进程包括主线程和至少一个子线程。
4.如权利要求3所述的应用程序启动方法,其特征在于,所述根据所述预设类型资源的容量和数量对所述进程进行划分,所述进程包括主线程和至少一个子线程,包括:
当所述容量大于第一阈值,且所述数量大于第二阈值时,将所述进程划分为主线程、第一子线程和第二子线程;
所述在所述子线程中加载启动所述应用程序所需的预设类型资源,包括:
按照预设规则将所述预设类型资源划分为第一预设类型资源和第二预设类型资源;
在所述第一子线程中加载所述第一预设类型资源;
在所述第二子线程中加载所述第二预设类型资源。
5.如权利要求1所述的应用程序启动方法,其特征在于,在所述当接收到应用程序启动指令时,创建所述应用程序对应的进程之后,在所述子线程中加载启动所述应用程序所需的预设类型资源之前,还包括:
在所述主线程中加载第一类型资源;
所述基于所述加载后的所述预设类型资源启动所述应用程序,包括:
根据所述第一类型资源和所述加载后的预设类型资源启动所述应用程序。
6.如权利要求5所述的应用程序启动方法,其特征在于,加载所述第一类型资源的开始时刻为第一时刻,结束时刻为第二时刻,所述第二时刻大于所述第一时刻;
加载所述预设类型资源的开始时刻在所述第一时刻和所述第二时刻之间。
7.如权利要求5所述的应用程序启动方法,其特征在于,所述在所述主线程中加载第一类型资源与所述在所述子线程中加载启动所述应用程序所需的预设类型资源的开始时刻相同。
8.如权利要求1-7任一项所述的应用程序启动方法,其特征在于,所述预设类型资源为容量大于第三阈值的资源,所述第三阈值小于所述第一阈值。
9.如权利要求1-7任一项所述的应用程序启动方法,其特征在于,所述预设类型资源包括图片资源或音频资源中的一种或多种。
10.一种应用程序启动装置,其特征在于,包括:
进程创建单元,用于当接收到应用程序启动指令时,创建所述应用程序对应的进程,所述进程包括主线程和至少一个子线程;
第一加载单元,用于在所述子线程中加载启动所述应用程序所需的预设类型资源;
资源读取单元,用于通过所述主线程读取在所述子线程中加载后的所述预设类型资源;
应用启动单元,用于基于所述加载后的所述预设类型资源启动所述应用程序。
11.如权利要求10所述的应用程序启动装置,其特征在于,所述装置还包括资源标识单元;
所述资源标识单元,用于在第一次启动所述应用程序时,对所述预设类型资源进行标识;
所述第一加载单元,用于根据所述标识在所述子线程中获取启动所述应用程序所需的预设类型资源,并对所述预设类型资源进行解码。
12.如权利要求11所述的应用程序启动装置,其特征在于,所述资源标识单元,还用于:
获取所述预设类型资源的容量和数量;
所述进程创建单元,用于当接收到应用程序启动指令时,创建所述应用程序对应的进程,并根据所述预设类型资源的容量和数量将所述进程划分为主线程和至少一个子线程。
13.如权利要求12所述的应用程序启动装置,其特征在于,所述进程创建单元,用于:
当所述容量大于第一阈值,且数量大于第二阈值时,将所述进程划分为主线程、第一子线程和第二子线程;
所述第一加载单元包括:
资源划分子单元,用于按照预设规则将所述预设类型资源划分为第一预设类型资源和第二预设类型资源;
第一加载子单元,用于在所述第一子线程中加载所述第一预设类型资源;
第二加载子单元,用于在所述第二子线程中加载所述第二预设类型资源。
14.如权利要求10所述的应用程序启动装置,其特征在于,所述装置还包括:
第二加载单元,用于在所述主线程中加载第一类型资源;
所述应用启动单元,用于根据所述第一类型资源和所述加载后的预设类型资源启动所述应用程序。
15.一种存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现如权利要求1-9任一项所述方法的步骤。
16.一种电子设备,包括存储器,处理器及存储在存储器上并可在处理器上运行的计算机程序,其特征在于,所述处理器执行所述程序时实现如权利要求1-9任一项所述方法的步骤。
CN201811320089.4A 2018-11-07 2018-11-07 应用程序启动方法和装置、存储介质及电子设备 Pending CN109582385A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201811320089.4A CN109582385A (zh) 2018-11-07 2018-11-07 应用程序启动方法和装置、存储介质及电子设备

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201811320089.4A CN109582385A (zh) 2018-11-07 2018-11-07 应用程序启动方法和装置、存储介质及电子设备

Publications (1)

Publication Number Publication Date
CN109582385A true CN109582385A (zh) 2019-04-05

Family

ID=65921708

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201811320089.4A Pending CN109582385A (zh) 2018-11-07 2018-11-07 应用程序启动方法和装置、存储介质及电子设备

Country Status (1)

Country Link
CN (1) CN109582385A (zh)

Cited By (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110244897A (zh) * 2019-05-21 2019-09-17 深圳壹账通智能科技有限公司 一种界面切换方法及装置
CN110673887A (zh) * 2019-08-15 2020-01-10 华为技术有限公司 应用程序启动方法、装置、终端设备及可读存储介质
CN112527403A (zh) * 2019-09-19 2021-03-19 华为技术有限公司 一种应用启动方法及电子设备
CN113157337A (zh) * 2021-04-19 2021-07-23 深圳市中科明望通信软件有限公司 应用程序启动方法、装置、终端设备及存储介质
CN113656089A (zh) * 2020-04-30 2021-11-16 华为技术有限公司 应用程序中的类验证方法和装置
CN114003308A (zh) * 2021-10-28 2022-02-01 上海米哈游璃月科技有限公司 项目文本资源的加载方法、装置、电子设备及存储介质
CN115080151A (zh) * 2022-07-22 2022-09-20 平安银行股份有限公司 App启动流程控制方法、计算机可读存储介质及终端

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20110321023A1 (en) * 2010-06-24 2011-12-29 International Business Machines Corporation Concurrent Embedded Application Update
CN104360889A (zh) * 2014-12-08 2015-02-18 中科创达软件股份有限公司 一种驱动程序加载方法及装置
CN104679548A (zh) * 2013-12-03 2015-06-03 联想(北京)有限公司 一种信息处理的方法及电子设备
CN108536481A (zh) * 2018-02-28 2018-09-14 努比亚技术有限公司 一种应用程序启动方法、移动终端及计算机存储介质

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20110321023A1 (en) * 2010-06-24 2011-12-29 International Business Machines Corporation Concurrent Embedded Application Update
CN104679548A (zh) * 2013-12-03 2015-06-03 联想(北京)有限公司 一种信息处理的方法及电子设备
CN104360889A (zh) * 2014-12-08 2015-02-18 中科创达软件股份有限公司 一种驱动程序加载方法及装置
CN108536481A (zh) * 2018-02-28 2018-09-14 努比亚技术有限公司 一种应用程序启动方法、移动终端及计算机存储介质

Cited By (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110244897A (zh) * 2019-05-21 2019-09-17 深圳壹账通智能科技有限公司 一种界面切换方法及装置
CN110673887A (zh) * 2019-08-15 2020-01-10 华为技术有限公司 应用程序启动方法、装置、终端设备及可读存储介质
CN110673887B (zh) * 2019-08-15 2021-05-04 华为技术有限公司 应用程序启动方法、装置、终端设备及可读存储介质
CN112527403A (zh) * 2019-09-19 2021-03-19 华为技术有限公司 一种应用启动方法及电子设备
US11947974B2 (en) 2019-09-19 2024-04-02 Honor Device Co., Ltd. Application start method and electronic device
CN113656089A (zh) * 2020-04-30 2021-11-16 华为技术有限公司 应用程序中的类验证方法和装置
CN113656089B (zh) * 2020-04-30 2023-02-28 华为技术有限公司 应用程序中的类验证方法和装置
CN113157337A (zh) * 2021-04-19 2021-07-23 深圳市中科明望通信软件有限公司 应用程序启动方法、装置、终端设备及存储介质
CN114003308A (zh) * 2021-10-28 2022-02-01 上海米哈游璃月科技有限公司 项目文本资源的加载方法、装置、电子设备及存储介质
CN115080151A (zh) * 2022-07-22 2022-09-20 平安银行股份有限公司 App启动流程控制方法、计算机可读存储介质及终端
CN115080151B (zh) * 2022-07-22 2023-07-14 平安银行股份有限公司 App启动流程控制方法、计算机可读存储介质及终端

Similar Documents

Publication Publication Date Title
CN109582385A (zh) 应用程序启动方法和装置、存储介质及电子设备
CN108228305A (zh) 应用页面的显示方法、装置、存储介质及电子设备
CN103902265A (zh) 一种应用实现方法及相关装置
CN104750528B (zh) 一种Android程序中的组件管理方法和装置
CN109062617A (zh) 一种支持多类型设备的平台的应用方法、移动终端
CN103810020A (zh) 虚拟机弹性伸缩方法及装置
CN108363528A (zh) 应用页面的启动方法、装置、存储介质及电子设备
CN108549562A (zh) 一种图像加载的方法及装置
CN108647032B (zh) 应用加载方法及装置、计算机装置和计算机可读存储介质
CN103729210A (zh) 一种实现一个刷机包支持多种制式智能终端的方法及装置
CN104731614B (zh) 一种在开机过程中快速加载数据的方法及装置
CN112486522A (zh) 含智能网卡OpenStack裸机的部署方法及装置
CN110018765A (zh) 页面显示方法、装置、终端及存储介质
US20060252406A1 (en) System and method for providing bundle group termination in an OSGi service platform
CN110113391A (zh) 一种客户端上线方法、装置及一种客户端运行方法、装置
CN108597546A (zh) 回忆视频的背景音乐确定方法及相关设备
CN104375896B (zh) 一种信息处理方法及电子设备
CN104484211B (zh) 共享镜像文件的方法及装置
CN102214105B (zh) 平行化快速启动方法及具有多处理单元的电子装置
CN116643778B (zh) 一种应用程序优化方法及电子设备
CN110083355B (zh) 一种app页面的处理方法及装置
CN117093707A (zh) 文章生成方法、装置、设备及介质
CN107797843A (zh) 一种容器功能增强的方法和装置
CN106775608A (zh) 独立***进程的实现方法和装置
CN111722888B (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
RJ01 Rejection of invention patent application after publication
RJ01 Rejection of invention patent application after publication

Application publication date: 20190405