CN113728312A - 用于控制应用的执行的方法、电子装置及其存储介质 - Google Patents
用于控制应用的执行的方法、电子装置及其存储介质 Download PDFInfo
- Publication number
- CN113728312A CN113728312A CN202080031247.3A CN202080031247A CN113728312A CN 113728312 A CN113728312 A CN 113728312A CN 202080031247 A CN202080031247 A CN 202080031247A CN 113728312 A CN113728312 A CN 113728312A
- Authority
- CN
- China
- Prior art keywords
- application
- priority
- processes
- electronic device
- processor
- 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 530
- 238000003860 storage Methods 0.000 title claims description 16
- 230000008569 process Effects 0.000 claims abstract description 498
- 230000004044 response Effects 0.000 claims abstract description 18
- 238000012545 processing Methods 0.000 claims description 19
- 230000008859 change Effects 0.000 claims description 15
- 238000001514 detection method Methods 0.000 claims description 12
- 238000004891 communication Methods 0.000 description 43
- 239000011230 binding agent Substances 0.000 description 27
- 238000010586 diagram Methods 0.000 description 16
- 230000006870 function Effects 0.000 description 14
- 230000001419 dependent effect Effects 0.000 description 12
- 230000008014 freezing Effects 0.000 description 12
- 238000007710 freezing Methods 0.000 description 12
- 238000004886 process control Methods 0.000 description 10
- 238000012544 monitoring process Methods 0.000 description 6
- 238000004590 computer program Methods 0.000 description 4
- 238000005516 engineering process Methods 0.000 description 4
- 230000000977 initiatory effect Effects 0.000 description 4
- 238000013459 approach Methods 0.000 description 3
- 238000004364 calculation method Methods 0.000 description 3
- 230000007774 longterm Effects 0.000 description 3
- 230000007257 malfunction Effects 0.000 description 3
- 101100165783 Arabidopsis thaliana CYP703A2 gene Proteins 0.000 description 2
- 101100216054 Saccharomyces cerevisiae STA1 gene Proteins 0.000 description 2
- 230000007246 mechanism Effects 0.000 description 2
- 230000002159 abnormal effect Effects 0.000 description 1
- 230000001133 acceleration Effects 0.000 description 1
- 230000003213 activating effect Effects 0.000 description 1
- 238000013473 artificial intelligence Methods 0.000 description 1
- 230000005540 biological transmission Effects 0.000 description 1
- 230000010267 cellular communication Effects 0.000 description 1
- 230000001413 cellular effect Effects 0.000 description 1
- 239000004020 conductor Substances 0.000 description 1
- 238000010276 construction Methods 0.000 description 1
- 238000009826 distribution Methods 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 230000007613 environmental effect Effects 0.000 description 1
- 239000000446 fuel Substances 0.000 description 1
- 238000009434 installation Methods 0.000 description 1
- 230000010354 integration Effects 0.000 description 1
- 230000003993 interaction Effects 0.000 description 1
- 238000012423 maintenance Methods 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000024159 perception of rate of movement Effects 0.000 description 1
- 230000002093 peripheral effect Effects 0.000 description 1
- 238000011112 process operation Methods 0.000 description 1
- 238000004904 shortening Methods 0.000 description 1
- 230000005236 sound signal Effects 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
- 239000000758 substrate Substances 0.000 description 1
- 230000026676 system process Effects 0.000 description 1
- 238000010257 thawing Methods 0.000 description 1
- 230000001960 triggered effect Effects 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/46—Multiprogramming arrangements
- G06F9/48—Program initiating; Program switching, e.g. by interrupt
- G06F9/4806—Task transfer initiation or dispatching
-
- 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/46—Multiprogramming arrangements
- G06F9/48—Program initiating; Program switching, e.g. by interrupt
- G06F9/4806—Task transfer initiation or dispatching
- G06F9/4843—Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system
- G06F9/4881—Scheduling strategies for dispatcher, e.g. round robin, multi-level priority queues
-
- 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/46—Multiprogramming arrangements
- G06F9/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5005—Allocation of resources, e.g. of the central processing unit [CPU] to service a request
- G06F9/5027—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals
- G06F9/5038—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals considering the execution order of a plurality of tasks, e.g. taking priority or time dependency constraints into consideration
-
- 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/46—Multiprogramming arrangements
- G06F9/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5005—Allocation of resources, e.g. of the central processing unit [CPU] to service a request
- G06F9/5027—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals
- G06F9/5044—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals considering hardware capabilities
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2209/00—Indexing scheme relating to G06F9/00
- G06F2209/48—Indexing scheme relating to G06F9/48
- G06F2209/482—Application
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2209/00—Indexing scheme relating to G06F9/00
- G06F2209/50—Indexing scheme relating to G06F9/50
- G06F2209/5018—Thread allocation
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Telephone Function (AREA)
- User Interface Of Digital Computer (AREA)
- Stored Programmes (AREA)
Abstract
提供了一种电子装置。所述电子装置包括至少一个处理器和存储指令的存储器,所述指令被执行以使得所述至少一个处理器能够:识别与应用相关联的多个进程,在运行所述应用的时间的至少部分时间期间在所述多个进程当中识别操作受限的至少一个进程,在运行所述应用的时间的所述至少部分时间期间限制所述至少一个识别的进程的操作,以及响应于满足预设条件而释放对所述至少一个识别的进程中的至少一些进程的操作限制。
Description
技术领域
本公开涉及一种用于控制应用的执行的方法。更具体地,本公开涉及一种电子装置及其存储介质。
背景技术
随着智能电话或其他电子装置获得更高的性能,正在电子装置上提供各种服务。例如,越来越多的应用开始广泛使用以经由人工智能(AI)技术提供更复杂的服务,例如,Bixby或物联网(IoT)。在这样的智能平台上使用的应用程序被称作应用,并且当应用被启动时,可以随着资源例如类、布局、图像或库由存储器读取而进行计算。这种启动可能需要等待时间以让所启动的应用在屏幕上完全地运行。因此,可以在屏幕上显示指示加载的屏幕。
上述信息仅作为背景技术信息被呈现以帮助理解本公开。至于上述任一项是否可能适用作为关于本公开的现有技术,尚未做出确定,并且未做出断言。
发明内容
技术问题
最近的电子装置递送更好的性能,因此更无缝地运行应用。然而,在运行高资源应用时,启动应用仍花费时间。由于当最初执行应用时必要的各种计算任务和资源,启动时间可能会延长。
用于减少应用启动时间的方法是在高性能中央处理单元(CPU)中调度尽可能多的与应用相关的进程。例如,启动与所启动的应用相关的目标进程可以被渲染为在高性能CPU上运行。
然而,随着电子装置被使用较长时间,不管所启动的应用如何,后台运行进程都可能增加。因此,尽管使用了高性能CPU,但是CPU占用率可能被分配更长的时间以用于处理后台进程,而不是用于处理所启动的应用相关进程。此外,使所有后台进程转变为冻结状态以避免不必要的调度可能导致电子装置发生故障。
问题的解决方案
本公开的各方面是为了解决至少上面提及的问题和/或缺点并且为了提供至少下述优点。因此,本公开的一个方面是为了提供一种用于在运行应用时提高启动速度的方法。
附加方面将部分地在以下描述中阐述,并且部分地将从描述中显而易见,或者可通过对所呈现的实施例的实践来学习。
根据本公开的一个方面,提供了一种电子装置。该电子装置包括至少一个处理器和存储指令的存储器,这些指令当由该至少一个处理器执行时,使该至少一个处理器识别与应用相关联的多个进程,在多个进程当中识别至少一个操作受限的进程,该至少一个操作受限的进程在运行应用的时间的至少一部分期间是操作受限的,在运行应用的时间的至少一部分期间限制至少一个操作受限的进程的操作,以及响应于满足预设条件而释放对至少一个操作受限的进程当中的第一操作受限的进程的操作限制。
根据本公开的另一方面,提供了一种用于在电子装置上控制应用的执行的方法。该方法包括:识别与应用相关联的多个进程;在多个进程当中识别至少一个操作受限的进程,该至少一个操作受限的进程在运行应用的时间的至少一部分期间是操作受限的;在运行应用的时间的至少一部分期间限制至少一个操作受限的进程的操作;以及响应于满足预设条件而释放对至少一个操作受限的进程当中的第一操作受限的进程的操作限制。
根据本公开的另一方面,提供了一种电子装置。该电子装置包括存储指令的存储介质,这些指令被配置为,当由至少一个处理器执行时,使该至少一个处理器能够执行至少一个操作,该至少一个操作包括:识别与应用相关联的多个进程;在多个进程当中识别至少一个操作受限的进程,该至少一个操作受限的进程在运行应用的时间的至少一部分期间是操作受限的;在运行应用的时间的至少一部分期间限制至少一个操作受限的进程的操作;以及响应于满足预设条件而释放对至少一个操作受限的进程当中的第一操作受限的进程的操作限制。
发明的有利效果
根据各种实施例,可以限制在应用启动时段期间启动应用时依赖性较小的进程的操作,从而允许更快速地完成应用启动操作。因此,可以提高启动速度,并且可以缩短用户感觉的启动时间。
根据各种实施例,由于每当应用运行时要操作受限的进程基于对应用的依赖性而变化,所以与在固定操作限制方案中比,可以更灵活地执行操作限制。此外,可以更稳定的方式执行应用。
根据各种实施例,能够通过在运行应用时提高作为启动目标的进程的优先级以允许比其他进程更早地处理该进程来提高在执行应用时的启动速度。
根据各种实施例,能够防止由于电子装置的长期使用可能引起的后台进程的增加而导致的应用启动的延迟。因此,电子装置可以很长的一段时间内保持稳定的性能。
根据各种实施例,尽管***在某些情况例如后台应用更新或异常操作中很忙,但是应用启动速度可以如在***正常状态下一样保持不变。
根据以下详细描述,本公开的其他方面、优点和显著特征将变得对本领域的技术人员而言显而易见,以下详细描述结合附图进行,公开本公开的各种实施例。
附图说明
根据结合附图进行的以下描述,本公开的某些实施例的上述及其他方面、特征和优点将更加显而易见,在附图中:
图1是示出根据本公开的实施例的网络环境中的电子装置的框图;
图2A是示出根据本公开的实施例的电子装置的框图;
图2B是示出根据本公开的实施例的依赖性确定模块和优先级确定模块的详细配置的视图;
图3是示出根据本公开的实施例的当应用运行时对一个或更多个进程的操作限制的过程的视图;
图4A是示出根据本公开的实施例的用于控制应用的执行的电子装置的操作的流程图;
图4B是示出根据本公开的实施例的基于应用的启动时间的电子装置的操作的流程图;
图5是根据本公开的实施例的对冻结目标进程的操作限制的信号流程图;
图6是示出根据本公开的实施例的当发生事件时电子装置的操作的流程图;
图7是示出根据本公开的实施例的在最初运行应用时基于依赖性的进程控制过程的信号流程图;
图8是示出根据本公开的实施例的在重新运行应用时基于依赖性的进程控制过程的信号流程图;
图9是示出根据本公开的实施例的在更新应用时基于依赖性的进程控制过程的信号流程图;
图10是示出根据本公开的实施例的基于优先级的电子装置的操作的流程图;
图11是示出根据本公开的实施例的基于优先级的启动目标进程控制过程的视图;以及
图12是示出根据本公开的实施例的基于优先级的进程控制过程的视图。
在整个附图中,相似的附图标记将被理解为是指相似的部分、部件和结构。
具体实施方式
参考附图的以下描述被提供来帮助全面理解如由权利要求及其等同物所限定的本公开的各种实施例。它包括各种特定细节以帮助该理解,但是这些将被视为仅仅示例性的。因此,本领域的普通技术人员将认识到,在不脱离本公开的范围和精神的情况下,能够对本文描述的各种实施例做出各种变化和修改。另外,为了清楚和简洁,可省略对公知功能和构造的描述。
以下描述和权利要求中使用的术语和单词不限于书目含义,而是仅仅被发明人使用来实现对本公开的清楚且一致的理解。因此,对本领域的技术人员而言应当显而易见的,本公开的各种实施例的以下描述是仅为了图示目的而提供的,而不是为了限制如由所附权利要求及其等同物所限定的本公开的目的而提供的。
应当理解,除非上下文另外清楚地规定,否则单数形式“一”、“一个”和“该”包括复数指示物。因此,例如,对“部件表面”的引用包括对此类表面中的一个或更多个的引用。
如本文所使用的术语被仅仅提供来描述其一些实施例,而不是限制本公开的其他实施例的范围。应当理解,除非上下文另外清楚地规定,否则单数形式“一”、“一个”和“该”包括复数指示物。本文使用的包括技术和科学术语的所有术语都具有与由本公开的实施例所属领域的普通技术人员通常理解的相同的含义。应进一步理解,术语(诸如在常用词典中定义的术语)应当被解释为具有与其在相关领域的上下文中的含义一致的含义,而不应在理想化或过于正式的意义上解释,除非本文明确地如此定义。在一些情况下,本文定义的术语个体被解释为排除本公开的实施例。
图1是示出根据各种实施例的网络环境100中的电子装置101的框图。
参照图1,网络环境100中的电子装置101可经由第一网络198(例如,短距离无线通信网络)与电子装置102进行通信,或者经由第二网络199(例如,长距离无线通信网络)与电子装置104或服务器108进行通信。根据实施例,电子装置101可经由服务器108与电子装置104进行通信。根据实施例,电子装置101可包括处理器120、存储器130、输入装置150、声音输出装置155、显示装置160、音频模块170、传感器模块176、接口177、触觉模块179、相机模块180、电力管理模块188、电池189、通信模块190、用户识别模块(SIM)196或天线模块197。在一些实施例中,可从电子装置101中省略所述部件中的至少一个(例如,显示装置160或相机模块180),或者可将一个或更多个其它部件添加到电子装置101中。在一些实施例中,可将所述部件中的一些部件实现为单个集成电路。例如,可将传感器模块176(例如,指纹传感器、虹膜传感器、或照度传感器)实现为嵌入在显示装置160(例如,显示器)中。
处理器120可运行例如软件(例如,程序140)来控制电子装置101的与处理器120连接的至少一个其它部件(例如,硬件部件或软件部件),并可执行各种数据处理或计算。根据一个实施例,作为所述数据处理或计算的至少部分,处理器120可将从另一部件(例如,传感器模块176或通信模块190)接收到的命令或数据加载到易失性存储器132中,对存储在易失性存储器132中的命令或数据进行处理,并将结果数据存储在非易失性存储器134中。根据实施例,处理器120可包括主处理器121(例如,中央处理器(CPU)或应用处理器(AP))以及与主处理器121在操作上独立的或者相结合的辅助处理器123(例如,图形处理单元(GPU)、图像信号处理器(ISP)、传感器中枢处理器或通信处理器(CP))。另外地或者可选择地,辅助处理器123可被适配为比主处理器121耗电更少,或者被适配为具体用于指定的功能。可将辅助处理器123实现为与主处理器121分离,或者实现为主处理器121的部分。
在主处理器121处于未激活(例如,睡眠)状态时,辅助处理器123可控制与电子装置101(而非主处理器121)的部件之中的至少一个部件(例如,显示装置160、传感器模块176或通信模块190)相关的功能或状态中的至少一些,或者在主处理器121处于激活状态(例如,运行应用)时,辅助处理器123可与主处理器121一起来控制与电子装置101的部件之中的至少一个部件(例如,显示装置160、传感器模块176或通信模块190)相关的功能或状态中的至少一些。根据实施例,可将辅助处理器123(例如,图像信号处理器或通信处理器)实现为在功能上与辅助处理器123相关的另一部件(例如,相机模块180或通信模块190)的部分。
存储器130可存储由电子装置101的至少一个部件(例如,处理器120或传感器模块176)使用的各种数据。所述各种数据可包括例如软件(例如,程序140)以及针对与其相关的命令的输入数据或输出数据。存储器130可包括易失性存储器132或非易失性存储器134。
可将程序140作为软件存储在存储器130中,并且程序140可包括例如操作***(OS)142、中间件144或应用146。
输入装置150可从电子装置101的外部(例如,用户)接收将由电子装置101的其它部件(例如,处理器120)使用的命令或数据。输入装置150可包括例如麦克风、鼠标、键盘或数字笔(例如,手写笔)。
声音输出装置155可将声音信号输出到电子装置101的外部。声音输出装置155可包括例如扬声器或接收器。扬声器可用于诸如播放多媒体或播放唱片的通用目的,接收器可用于呼入呼叫。根据实施例,可将接收器实现为与扬声器分离,或实现为扬声器的部分。
显示装置160可向电子装置101的外部(例如,用户)视觉地提供信息。显示装置160可包括例如显示器、全息装置或投影仪以及用于控制显示器、全息装置和投影仪中的相应一个的控制电路。根据实施例,显示装置160可包括被适配为检测触摸的触摸电路或被适配为测量由触摸引起的力的强度的传感器电路(例如,压力传感器)。
音频模块170可将声音转换为电信号,反之亦可。根据实施例,音频模块170可经由输入装置150获得声音,或者经由声音输出装置155或与电子装置101直接(例如,有线地)连接或无线连接的外部电子装置(例如,电子装置102)的耳机输出声音。
传感器模块176可检测电子装置101的操作状态(例如,功率或温度)或电子装置101外部的环境状态(例如,用户的状态),然后产生与检测到的状态相应的电信号或数据值。根据实施例,传感器模块176可包括例如手势传感器、陀螺仪传感器、大气压力传感器、磁性传感器、加速度传感器、握持传感器、接近传感器、颜色传感器、红外(IR)传感器、生物特征传感器、温度传感器、湿度传感器或照度传感器。
接口177可支持将用来使电子装置101与外部电子装置(例如,电子装置102)直接(例如,有线地)或无线连接的一个或更多个特定协议。根据实施例,接口177可包括例如高清晰度多媒体接口(HDMI)、通用串行总线(USB)接口、安全数字(SD)卡接口或音频接口。
连接端178可包括连接器,其中,电子装置101可经由所述连接器与外部电子装置(例如,电子装置102)物理连接。根据实施例,连接端178可包括例如HDMI连接器、USB连接器、SD卡连接器或音频连接器(例如,耳机连接器)。
触觉模块179可将电信号转换为可被用户经由他的触觉或动觉识别的机械刺激(例如,振动或运动)或电刺激。根据实施例,触觉模块179可包括例如电机、压电元件或电刺激器。
相机模块180可捕获静止图像或运动图像。根据实施例,相机模块180可包括一个或更多个透镜、图像传感器、图像信号处理器或闪光灯。
电力管理模块188可管理对电子装置101的供电。根据实施例,可将电力管理模块188实现为例如电力管理集成电路(PMIC)的至少部分。
电池189可对电子装置101的至少一个部件供电。根据实施例,电池189可包括例如不可再充电的原电池、可再充电的蓄电池、或燃料电池。
通信模块190可支持在电子装置101与外部电子装置(例如,电子装置102、电子装置104或服务器108)之间建立直接(例如,有线)通信信道或无线通信信道,并经由建立的通信信道执行通信。通信模块190可包括能够与处理器120(例如,应用处理器(AP))独立操作的一个或更多个通信处理器,并支持直接(例如,有线)通信或无线通信。根据实施例,通信模块190可包括无线通信模块192(例如,蜂窝通信模块、短距离无线通信模块或全球导航卫星***(GNSS)通信模块)或有线通信模块194(例如,局域网(LAN)通信模块或电力线通信(PLC)模块)。这些通信模块中的相应一个可经由第一网络198(例如,短距离通信网络,诸如蓝牙、无线保真(Wi-Fi)直连或红外数据协会(IrDA))或第二网络199(例如,长距离通信网络,诸如蜂窝网络、互联网、或计算机网络(例如,LAN或广域网(WAN)))与外部电子装置进行通信。可将这些各种类型的通信模块实现为单个部件(例如,单个芯片),或可将这些各种类型的通信模块实现为彼此分离的多个部件(例如,多个芯片)。无线通信模块192可使用存储在用户识别模块196中的用户信息(例如,国际移动用户识别码(IMSI))识别并验证通信网络(诸如第一网络198或第二网络199)中的电子装置101。
天线模块197可将信号或电力发送到电子装置101的外部(例如,外部电子装置)或者从电子装置101的外部(例如,外部电子装置)接收信号或电力。根据实施例,天线模块197可包括天线,所述天线包括辐射元件,所述辐射元件由形成在基底(例如,PCB)中或形成在基底上的导电材料或导电图案构成。根据实施例,天线模块197可包括多个天线。在这种情况下,可由例如通信模块190(例如,无线通信模块192)从所述多个天线中选择适合于在通信网络(诸如第一网络198或第二网络199)中使用的通信方案的至少一个天线。随后可经由所选择的至少一个天线在通信模块190和外部电子装置之间发送或接收信号或电力。根据实施例,除了辐射元件之外的另外的组件(例如,射频集成电路(RFIC))可附加地形成为天线模块197的一部分。
上述部件中的至少一些可经由外设间通信方案(例如,总线、通用输入输出(GPIO)、串行外设接口(SPI)或移动工业处理器接口(MIPI))相互连接并在它们之间通信地传送信号(例如,命令或数据)。
根据实施例,可经由与第二网络199连接的服务器108在电子装置101和外部电子装置104之间发送或接收命令或数据。电子装置102和电子装置104中的每一个可以是与电子装置101相同类型的装置,或者是与电子装置101不同类型的装置。根据实施例,将在电子装置101运行的全部操作或一些操作可在外部电子装置102、外部电子装置104或服务器108中的一个或更多个运行。例如,如果电子装置101应该自动执行功能或服务或者应该响应于来自用户或另一装置的请求执行功能或服务,则电子装置101可请求所述一个或更多个外部电子装置执行所述功能或服务中的至少部分,而不是运行所述功能或服务,或者电子装置101除了运行所述功能或服务以外,还可请求所述一个或更多个外部电子装置执行所述功能或服务中的至少部分。接收到所述请求的所述一个或更多个外部电子装置可执行所述功能或服务中的所请求的所述至少部分,或者执行与所述请求相关的另外功能或另外服务,并将执行的结果传送到电子装置101。电子装置101可在对所述结果进行进一步处理的情况下或者在不对所述结果进行进一步处理的情况下将所述结果提供作为对所述请求的至少部分答复。为此,可使用例如云计算技术、分布式计算技术或客户机-服务器计算技术。
在下面详细地描述的是一种用于缩短运行的应用的启动时间以加速在***级启动应用所需要的进程的操作的方法。为了在运行应用时减少应用的启动时间,可以采用主要两种方法,例如,限制除启动应用外的其他不必要地运行的进程并且使***运行时钟最大化。
后台进程往往与电子装置的使用时间成比例地增加。对渐增后台进程的操作的完全限制可能导致电子装置发生故障,因此,这样做是不切实际的。因此,随着后台操作增加,后台进程可以长时间占用CPU。如果使用预定义列表来限制一些后台进程,则应用启动时间可能会比较长。例如,由于在启动应用时涉及诸如网络操作、显示操作或内核线程的各种进程作为临界区,所以可能难以限制所有后台进程。
然而,根据实施例,可以通过动态地改变每当运行应用时受到限制的进程来实现应用的执行中的启动速度和应用的稳定执行。为此,根据实施例,可以基于在运行应用时与应用相关联的多个进程当中的依赖性来对至少一个进程的操作强加限制。因此,可以限制在应用启动时段期间启动应用时具有依赖性较小的进程的操作,从而允许更快速地完成应用启动操作。因此,可提高启动速度,并且可以缩短用户感觉的启动时间。
同时,使***运行时钟最大化的方法虽然缩短了应用启动时间,但是可能由于增加的处理而急剧地增加电流消耗。此外,在由于长期使用而导致后台进程急剧增加的情况下,即使在增加运行时钟的情况下,应用启动也可能花费更长的时间。
然而,根据各种实施例,能够通过在运行应用时提高作为启动目标的进程的优先级以允许比其他进程更早地处理该进程来提高当应用被执行时的启动速度。可以通过使用高性能CPU来调度优先级更高的进程来致使快速启动成为可能的。
在下面参照图2A详细地描述前文。
图2A是示出根据本公开的实施例的电子装置的框图(200)。
关于图2A使用的术语“模块”表示处理至少一个功能或操作并且用硬件、软件或其组合加以实现的单元。尽管关于图2A使用术语“模块”,但是该术语可以与“单元”或“装置”互换地使用。
参照图2A,电子装置201可以包括处理器220和存储器230。电子装置201可以对应于例如图1的电子装置101的全部或一部分。虽然图2A示出在处理器220中包括依赖性确定模块221和优先级确定模块222的示例,但是依赖性确定模块221和优先级确定模块222的相应操作可以在处理器220的控制下被执行或者可以由处理器220单独执行,而不是由依赖性确定模块221和优先级确定模块222来执行。
存储器230可以存储至少一个应用。存储器230可以存储用于运行的应用、维护和管理应用的数据。例如,可以随着诸如类、布局、图像或库的资源由存储器230读取而启动(或执行)应用。所启动的应用需要被完全地执行的等待时间,并且这种等待时间可以被称为应用启动时间。
根据实施例,存储器230可以包括依赖性DB 231和优先级DB 234。当应用由依赖性确定模块221执行时,可以将与应用相关联的多个进程210划分成与基于对应用的依赖性的启动目标相对应的进程和与要在启动的同时操作受限的冻结目标相对应的进程。
依赖性DB 231可以包括被分类为解冻目标进程的解冻目标组232和被分类为冻结目标进程的冻结目标组233。根据实施例,解冻目标组232和冻结目标组233可以存储关于与应用相关联的进程而不是实际进程的信息。例如,关于在应用运行的同时更新的每个进程的依赖性信息可以被存储在依赖性DB 231中。例如,在启动应用时,可以基于按照与每个应用相关联的多个进程存储的依赖性信息来确定要操作受限的进程和启动目标进程。
同时,优先级DB 234可以包括高优先级组235和低优先级组236。根据实施例,高优先级组235可以存储关于已经被指配有较高的优先级的进程和该进程中的至少一个线程的信息。低优先级组236可以存储关于启动目标进程中的除了已被指配有较高的优先级的至少一个线程以外的其他线程的信息。低优先级组236也可以存储关于在应用启动时段期间已经操作受限的进程的信息。
参照图2A,尽管如果应用A开始运行,则需要执行与应用A相关的启动目标进程214,但是对应用A具有较少依赖性的进程也可以在后台中运行。例如,剩余后台进程A、B、…、N(215、216、217)可以是随着电子装置201被使用较长时间而已经增加的后台进程,并且这些进程可能对被请求运行的应用的依赖性较小。尽管如Android BG 211、DEX2OAT线程212和即时(JIT)线程213这样的进程可以是可在应用启动时段期间运行的进程,但是此类进程不是需要在启动时段期间执行的进程并且可能不太依赖于应用。
因此,根据实施例,限制除启动目标进程214以外的更少依赖的进程(包括后台进程)的执行可以缩短应用A的启动时间。为此,依赖性确定模块221可以在后台中运行的后台进程当中识别更少依赖的后台进程并且限制其操作,并且依赖性确定模块221可以预先管理将在启动时段期间与应用A的执行无关的进程作为要在启动时段内冻结的冻结目标。
根据各种实施例,可以将如Android BG 211、DEX2OAT线程212和即时(JIT)线程213这样的进程预先包括在冻结目标组233中。可以在被请求运行的应用的启动时段期间冻结剩余后台进程A、B、...、N(215、216、217)。换句话说,可以将剩余后台进程A、B、…、N(215、216、217)添加到在启动时段期间不要操作的冻结目标组233。
根据实施例,依赖性确定模块221可以根据在应用启动期间发生的事件将冻结进程改变回成解冻状态,同时对于其他冻结进程保持冻结状态直到应用启动完成为止。例如,对于已被添加到在启动时段期间对其应用了操作限制的冻结目标组233的后台进程A、B、…、N(215、216、217)当中与事件的发生相对应的后台进程,依赖性确定模块221可以将操作被限制的冻结状态改变成操作限制被释放的解冻状态。
尽管在上述描述中,要在应用启动完成之前操作受限的进程保持在冻结状态下,但是可以使与事件不对应的进程保持在冻结状态下,直到应用结束为止。
此后,在应用终止时,依赖性确定模块221可以更新包括解冻目标组232和冻结目标组233的依赖性DB。例如,依赖性确定模块221可以通过将在应用启动完成之前冻结的进程添加到冻结目标组233来更新依赖性DB 231。
因此,不是在电子装置201上运行应用时在应用启动期间冻结所有进程,而是至少一个进程被选择性地改变成冻结状态,对应于诸如以下各项的各种事件的检测:网络事件或绑定器调用以及外部事件,例如用户输入。因此,可以加速启动,并且可以防止电子装置201中的任何故障。
在下面简要地描述绑定器调用。
Android操作***(OS)在进程单元中提供部件并且可以由基于Linux的java来配置。在Android OS上运行的应用可以在Linux上作为独立进程被运行,并且可以在java虚拟机上运行由Java创建的应用。
由于以进程的形式提供了所有应用,所以应用间交互需要进程之间的请求-响应机制。这样的用于进程间通信的机制是绑定器。例如,可以经由绑定器提供由Android OS***中的其他进程提供的功能。
绑定器驱动程序可以用于在执行应用时共享运行预定服务所必需的程序和数据。例如,应用可以调用Linux上提供的***调用,从而执行通信。因此,可以通过绑定器调用在不同应用之间或在不同服务之间执行数据交换。
根据实施例,处理器220可以包括依赖性确定模块221和优先级确定模块222。处理器220可以确定要在用于运行应用的启动时段期间操作受限的至少一个进程并且限制所确定的进程的操作。处理器220可以在启动时段期间监视电子装置201的上下文,并且在检测到事件时,可以确定要释放操作限制的进程并且释放该操作限制。
因此,可以在启动时段期间释放对操作受限的进程当中与事件的检测相对应的一个或更多个进程的操作限制。然而,如果启动时段结束,即启动完成,则可以从操作限制中释放所有操作受限的进程。例如,由于每当应用运行时要操作受限的进程基于对应用的依赖性而变化,所以与在固定操作限制方案中比,可以更灵活地执行操作限制。此外,可以以更稳定的方式执行应用。因此,不管频繁的应用更新和各种各样的应用,都可以在智能电话环境中实现经优化的应用启动,因为要操作受限的进程可以基于对应用的依赖性而变化。此外,由于每当应用运行时要经受操作限制的进程变化并被更新,所以可以通过主动地冻结不依赖于应用的进程来缩短启动时间。
根据实施例,电子装置201包括至少一个处理器220和存储器230,该存储器存储指令,这些指令被执行以使得至少一个处理器220能够识别与应用相关联的多个进程,在多个进程当中识别要在运行应用的时间的至少部分时间期间操作受限的至少一个进程,在运行应用的时间的至少部分时间期间限制至少一个识别的进程的操作,以及响应于满足预设条件而释放对至少一个识别的进程中的至少一些的操作限制。
根据实施例,预设条件可以包括应用的启动时间,并且指令可以被配置为使得至少一个处理器220能够在应用启动时间过去时,释放对至少一个识别的进程的操作限制。
根据实施例,预设条件可以包括检测至少一个事件,并且指令可以被配置为使得至少一个处理器220能够释放对至少一个识别的进程当中与至少一个事件的检测相对应的进程的操作限制。
根据实施例,指令可以被配置为使得至少一个处理器220能够基于对应用的依赖性来在多个进程当中识别要在运行应用的时间的至少部分时间期间操作受限的至少一个进程。
根据实施例,指令可以被配置为使得至少一个处理器220能够将至少一个识别的进程添加到操作限制组,并且响应于操作限制组包括与至少一个事件的检测相对应的进程,从操作限制组中释放。
根据实施例,可以更新操作限制组,使得每当应用运行时操作限制组中包括的进程中的至少一些进程发生变化。
根据实施例,指令可以被配置为使得至少一个处理器220能够确定多个进程当中除了至少一个识别的进程之外的至少一个进程的优先级。
根据实施例,指令可以被配置为使得至少一个处理器220能够提高至少一个进程中的至少一个线程的优先级。
根据实施例,指令可以被配置为使得至少一个处理器220能够由具有第一运行速度的中央处理单元(CPU)调度优先级较高的至少一个进程中的至少一个线程,并且由具有第二运行速度的CPU调度至少一个进程中的剩余线程。可以将第一运行速度设置为比第二运行速度高。
根据实施例,指令可以被配置为使得至少一个处理器220能够在应用启动时间过去时,将至少一个进程中的至少一个线程的优先级改变为原始优先级。
在下面参照图2B更详细地描述图2A的依赖性确定模块221和优先级确定模块222的操作。
图2B是示出根据本公开的实施例的依赖性确定模块221和优先级确定模块222的详细配置的视图。
参照图2B,依赖性确定模块221和优先级确定模块222的所有操作可以开始与用户输入相对应。例如,可以经由触摸屏传送用户输入以启动(或执行)应用(例如,应用A),因此,可以驱动依赖性确定模块221和优先级确定模块222。
根据实施例,当对应于用户请求执行应用时,可以确定依赖性和优先级。相比之下,如果与用户请求无关的应用运行,则可能不执行依赖性和优先级确定。例如,如果用户意外地运行应用,例如关闭屏幕,则可以更新仅依赖性和优先级中的至少一个的数据库(DB),而不在启动时对一个或更多个进程执行操作限制。因此,为了执行用户已打算运行的应用(即,用户的预定应用)可以仅对一个或更多个进程强加操作限制,使得可以加速启动,并且可以缩短用户感觉的启动时间。对于用户的预定应用,应用可以偶尔甚至在没有用户输入的情况下自动运行。在应用自动运行上下文中,可以执行依赖性和优先级确定,从而对一个或更多个进程强加操作限制。
具体地,如果应用A对应于用户请求启动,则依赖性确定模块221可以选择与应用A相关联的一个或更多个进程并且运行所选择的进程。与应用相关联的一个或更多个进程可以与电子装置201的一个或更多个硬件或软件部件相关,并且可以通过激活与一个或更多个选择的进程相关联的硬件或软件部件来执行一个或更多个选择的进程。
例如,在启动来自用户的应用运行请求时,可以对应于该请求执行包括一个或更多个进程的应用(例如,应用A)。这里,可以将与应用A相关联并且被实际上执行的进程称作启动目标进程。
根据实施例,一个或更多个应用关联的进程可以包括需要在驱动应用时执行的启动目标进程。这里,当应用被驱动时需要必然运行的进程可以包括例如在一个或更多个应用关联的进程当中没有依赖性但涉及临界***任务(例如,应用的执行)的***进程,并且可以将此类必要的启动目标进程设置为解冻目标组。
一个或更多个应用关联的进程可以包括图形进程、网络进程、媒体进程、日志进程或连接进程中的至少一个。具体地,图形进程以是更新用户界面应用的屏幕所必需的进程,网络进程可以是向/从网络发送/接收数据所必需的进程,媒体进程可以是输出视频和音频所必需的进程,日志进程可以是用于收集日志数据的进程,并且连接进程可以是用于与外部装置通信的进程。
根据实施例,依赖性确定模块221可以在一个或更多个应用关联的进程当中识别要在应用的执行期间操作受限的至少一个进程。这里,应用执行时段(或时间)可以是应用在期间运行的时间(或持续时间)的至少一部分。
根据实施例,依赖性确定模块221可以基于对应用的依赖性来识别要操作受限的至少一个进程。因此,依赖性确定模块221可以冻结至少一个识别的进程。为了确定是否对应用存在依赖性,可以参考依赖性DB(例如,图2A的依赖性DB 231)。每当应用运行时,操作受限组中包括的进程中的至少一些可以变化,从而更新依赖性数据库。因此,依赖性确定模块221可以通过应用更新或依赖性在应用运行时变化的进程来重新确定每当应用运行时是否存在依赖性。
根据实施例,依赖性确定模块221可以将与冻结目标相对应的至少一个识别的进程作为要操作受限的冻结目标组来管理。因此,依赖性确定模块221可以将至少一个识别的进程添加到冻结目标组。这里,也可以将冻结目标组称为包括冻结进程的操作受限组或非依赖性组。
根据实施例,可以从应用开始限制所识别的至少一个进程的操作直到启动结束为止。例如,如果应用启动完成,则依赖性确定模块221可以释放对至少一个识别的进程的操作限制。依赖性确定模块221可以更新数据库,同时释放对已作为冻结目标组被管理的至少一个识别的进程的操作限制。因此,可以在应用启动完成时释放对已经与应用启动的开始同时地操作受限的所有进程的操作限制。
根据实施例,依赖性确定模块221可以取决于是否发生事件而确定是否释放对至少一个进程的操作限制。依赖性确定模块221可以检测在启动时段期间是否发生至少一个事件。例如,如果与应用A相关联的特定进程启动,则依赖性确定模块221可以监视是否发生如特定进程用来请求另一进程的绑定器调用这样的事件。基于监视,依赖性确定模块221可以识别进程之间的依赖性。
在启动时段期间接收到至少一个事件时,依赖性确定模块221可以将在一个或更多个应用关联的进程当中接收到事件的进程260设置为解冻目标并且将其指定为解冻目标组(262)。
相比之下,依赖性确定模块221可以将在一个或更多个应用关联的进程当中未能接收到如绑定器调用这样的事件的进程261设置为冻结目标263并且将它们添加到冻结目标组233。对应于设置为解冻目标和冻结目标,可以更新依赖性DB(264)。换句话说,每当为解冻目标和冻结目标指定至少一个进程,可以更新依赖性DB。
同时,依赖性确定模块221可以基于所检测到的事件的至少一部分来释放对冻结目标组233中的操作受限进程当中与所检测到的事件相对应的进程的操作限制。因此,依赖性确定模块221可以从冻结目标组233中删除操作限制释放的进程并且将其指定为解冻目标组。
根据实施例,至少一个事件可以是在电子装置201内部发生或者由外部装置或用户触发的事件并且可以包括例如外部事件,例如用户输入,以及网络事件或绑定器调用中的至少一个。
如上所述操作的依赖性确定模块221可以使用存储器230中的解冻目标组232和冻结目标组233来分别管理多个应用关联的进程。根据实施例,依赖性确定模块221可以基于对应用的依赖性来将多个应用关联的进程划分成解冻目标组232和冻结目标组233。
根据实施例,可以考虑主要两种方法来在运行应用时缩短应用的启动时间:限制除启动应用外不必要地运行的其他进程的基于依赖性的方案以及对于启动目标进程使***运行时钟最大化的基于优先级的方案。
根据实施例,作为用于提高应用启动速度的方案之一的基于依赖性的方案可以是这样的方案,即当应用运行时,使不太依赖于应用的至少一个进程变成冻结状态,同时应用启动以停止不必要的调度,并且在启动完成时,使至少一个冻结的进程变回成解冻状态。这里,可以通过参考存储器230中的冻结目标组(或操作受限组)的数据库(DB)(例如,图2A的依赖性DB231)来识别至少一个更少依赖的进程。当应用在下载之后被首先执行时,依赖性确定模块221可以通过参考预先确定的冻结目标进程来在与已下载的应用相关联的进程当中识别要操作受限的进程。根据实施例,冻结目标组233中的预先确定的冻结目标进程的示例可以包括例如DEX2OAT 265、即时(JIT)266和Android BG 267。
DEX2OAT 265是当安装执行文件(例如,APK)时运行的进程,并且随着APK被编译,可以在短时间内产生巨大负载。DEX2OAT主要有两种类型:内部DEX2OAT和正常DEX2OAT。由于内部DEX2OAT对启动目标的应用具有依赖性,所以可以将它从冻结目标中排除。相比之下,对于正常DEX2OAT,即在应用被更新或安装的同时执行的进程不依赖于应用启动过程,它可以被指定为冻结目标,然后在启动时段期间被冻结。
JIT266是预先编译经常用作编译器的热代码以提高应用的使用性能的进程。JIT(266)编译器用来以形式为JAVA字节码的源代码预先编译在应用启动期间检测到的热代码。然而,由于这种编译是在应用已被启动之后而不是在应用正在启动的同时编译在操作期间检测到的热代码,所以它不依赖于启动。此外,由于JIT 266具有大的编译负载和存储器使用率,所以依赖性确定模块221可以在运行应用之前预先将JIT 266指定为冻结目标组233并且在启动时段期间冻结它。
Android后台(BG)267正在收集并处理不需要由每个Android***服务器立即处理并且不依赖于应用启动的作业。因此,依赖性确定模块221将Android BG 267放置在冻结目标组233中并且在启动时段期间冻结它。
根据实施例,作为用于提高应用启动速度的另一方案,基于优先级的方案可以提高在应用正在启动时与应用相关联的多个进程当中作为启动目标的进程以及该启动目标进程中的至少一个线程的优先级,并且在应用启动完成时,将经提高的该进程和该进程中的线程的优先级改变回原始优先级。
根据实施例,处理器220可以使用线程来处理任务。例如,当每个进程单独地占用存储器时,多个线程可以共享进程中的存储器。多个线程可以包括主线程、工人(worker)线程和用户界面(UI)线程。
主线程可以按应用被分配或生成并且可以负责用户可辨识的任务,诸如输入处理和UI更新。因此,可以通过为主线程设置高优先级来缩短用户感觉的启动时间。
UI线程可以负责请求UI部件的任务。例如,UI线程可以处理UI更新请求。因此,如果为UI线程设置高优先级,则用户可以看到快速地启动的应用屏幕。因此,可以减少用户感觉的启动时间。
工人线程可以处理巨大的数据和复杂的计算。可以在执行与由主线程处理的任务相比需要相对长期处理的任务(例如,存储I/O或网络I/O)时生成工人线程。可以提供多个工人线程。
根据实施例,优先级确定模块222在应用A开始运行的情况下,可以降低与应用A相关联的进程当中与启动无关的进程的优先级,同时将高优先级指配给与启动直接相关的进程。例如,如果应用A开始运行,则优先级确定模块222可以确定与应用A相关联的启动目标进程的优先级。启动目标进程可以包括至少一个线程。通过允许启动目标进程以及启动目标进程中的主线程和UI线程快速地运行,可以缩短用户感觉的应用启动时间。
为此,根据实施例,对应于用于执行应用的用户输入,优先级确定模块222可以向与应用相关联的启动目标进程中的主线程和UI线程250指配较高的优先级,使得可以比其他进程的运行更快速地执行它们。例如,可以通过在应用的初始执行时为主线程和UI线程设置较高的优先级来在应用被执行之后立即在屏幕上快速地显示UI,使得可以缩短用户感觉的启动时间。因此,优先级确定模块222可以向启动目标进程中的主线程和UI线程250指配较高的优先级并且更新应用A的优先级DB(252)。
因此,可以指配最高的优先级,例如实时(RT)优先级,以提高启动目标进程中的主线程和UI线程的优先级。为了防止在启动目标进程中的主线程和UI线程的优先级上升时可能发生的优先级反转,可以将RT优先级指配给与要首先处理的其他进程进行通信的进程。RT优先级的指配可以减少其他任务对CPU调度的抢占,并且因此增加CPU使用率。可以将指配高优先级的线程调度为在高性能CPU上运行。
由于与高优先级组相对应的进程和该进程中的至少一个线程需要快速响应,所以可以使用具有第一运行速度的CPU(例如,高性能CPU)来加速处理并因此加速应用启动。相比之下,可以用具有第二运行速度的CPU(例如,低性能CPU)来处理与低优先级组相对应的进程和该进程中的至少一个线程。这里,第一运行速度可以比第二运行速度高。此后,当应用启动完成或者应用终止时,指配了高优先级的目标进程中的主线程和UI线程可以回到其原始优先级。
如上所述,可以在应用启动期间为与应用相关联的多个进程当中的启动目标进程和该启动目标进程中的至少一个线程设置较高的优先级,然而可以为其他进程和其中的至少一个线程指配较低的优先级。例如,可以为冻结目标进程和该冻结目标进程中的至少一个线程指配比为启动目标进程设置的优先级低的优先级。
此外,优先级确定模块222可以监视从启动目标进程到外部的绑定器通信并且同样对于接收事件例如绑定器调用的进程251可以提高优先级,从而更新应用A的优先级DB(252)。例如,可以为与事件的接收相对应的进程指配RT优先级以比其他进程更早地被调度,并且随着高性能CPU的占用率增加,快速处理可以是可能的。相比之下,对于缺少与启动目标进程的绑定器调用的进程,即,未能接收事件的进程或除接收事件的进程外的其他进程,可以降低优先级或者可以按其原始优先级调度它们。这样的低优先级进程和其中的至少一个线程可以由低性能CPU运行。
优先级确定模块222可以将至少一个启动目标进程和该启动目标进程中的至少一个线程划分成低优先级组253、优先级不变组254和高优先级组255。
例如,低优先级组236可以包括垃圾回收(GC)256、日志守护进程257和Android BG258。这里,GC 256可以指当存储器不足时释放存储器以供其他目的使用的程序。日志守护进程257可以指将***相关任务移动到后台的程序。
此后,在应用启动完成或应用终止时,优先级确定模块222可以更新包括高优先级组235和低优先级组236的优先级DB(例如,图2A的DB 234)。例如,可以将在应用启动完成之前一直处于冻结状态的进程和该冻结目标进程中的至少一个线程添加到低优先级组236,使得可以更新优先级DB。
根据实施例,当应用被终止时,优先级确定模块222可以将经提高的至少一个进程和该进程中的至少一个线程的优先级改变回原始优先级。此外,优先级确定模块222可以在应用启动期间临时提高与应用相关联的多个进程当中与在应用启动期间发生的事件相对应的进程和该进程中的至少一个线程的优先级,并且在应用启动完成或应用终止时,改变回原始优先级。
图3是示出根据本公开的实施例的当应用运行时对一个或更多个进程的操作限制的过程的视图(300)。
参照图3,附图标记310表示时间轴,该时间轴可以被主要划分成应用的执行的开始时间320、应用启动时段330和在启动完成之后的释放时段340。
首先,如果对应于用户请求执行(320)应用,则在基于依赖性和优先级对一个或更多个进程未强加限制的完全启动(325)的情况下,可以在启动时段期间执行后台进程和与应用启动无关的进程以及应用相关的启动目标进程。
相比之下,可以通过完全启动的进程(进程325)当中的依赖性和优先级确定操作来确定一个或更多个应用关联的进程当中要操作受限的至少一个进程。如图3所示,处理器220可以基于对应用的依赖性来识别多个进程325当中预先被确定为冻结目标的进程336以及后台进程当中与应用无关的后台进程A和B 338。因此,在启动时段330内,可以冻结除与应用相关的后台进程N 339和启动目标进程337外的其他进程336和338。换句话说,可以在启动时段330内操作限制其他进程336和338。
此后,如果启动时段330结束,即,如果启动时间过去,则可以从操作限制中释放操作受限的进程336和338。如在上面阐述的,可以在启动时段330内执行部分限制启动335,并且在启动时段330之后释放(释放时段340)时,可以全部解冻操作受限的进程345。在启动时段330之后,应用可以处于运行状态。
图4A是示出根据本公开的实施例的用于控制应用的执行的电子装置的操作的流程图(400)。
参照图4A,操作方法可以包括操作405至430。操作方法的每个操作可以由电子装置(例如,图1或图2A的电子装置101或201)中的至少一个或电子装置的至少一个处理器(例如,图1或图2A的处理器120或220)执行。根据实施例,操作405至430中的至少一个可以被省略或按顺序改变或者可以添加其他操作。
参照图4A,应用可以对应于用户请求例如用户的触摸输入开始运行。因此,电子装置201可以在操作405中确定是否存在来自用户的应用运行请求。
如果存在应用运行请求,则电子装置201可以在操作410中识别与应用相关联的多个进程。然后,电子装置201可以在操作415中在多个进程当中识别要在运行应用的时间的至少一部分期间操作受限的至少一个进程。根据实施例,运行应用的时间的至少一部分可以包括应用启动时间。
在操作420中,电子装置201可以限制在运行应用的时间的至少一部分期间识别的至少一个进程的操作。根据实施例,可以基于对应用的依赖性来识别要在应用启动时间期间操作受限的至少一个进程。例如,可以将多个进程当中未接收到事件(例如,绑定器调用)的进程确定为不依赖于应用。因此,可以在启动时段内操作限制缺少用于在进程之间交换数据的绑定器通信的进程。
根据实施例,至少一个识别的进程可以被添加到操作限制组并且可以是操作受限的。
此后,电子装置201可以在操作425中识别是否满足预设条件。如果满足预设条件,则电子装置201可以在操作430中响应于满足预设条件而释放对至少一个识别的进程中的至少一些的操作限制。根据实施例,如果操作限制组包括满足预设条件的进程,则电子装置201可以从操作限制组中释放该进程。根据实施例,可以更新操作限制组,使得每当应用运行时操作限制组中包括的进程中的至少一些变化。
根据实施例,预设条件可以包括应用的启动时间,并且释放对至少一个识别的进程中的至少一些的操作限制可以包括,如果应用启动时间过去,则释放对至少一个识别的进程的操作限制。
根据实施例,预设条件可以包括检测至少一个事件,并且释放对至少一个识别的进程中的至少一些的操作限制可以包括释放对至少一个识别的进程当中与至少一个事件的检测相对应的进程的操作限制。
例如,在联系人应用由用户提供的情况下,当联系人应用启动时,可以经由绑定器调用从联系人提供者进程取出联系人DB,在这种情况下联系人提供者进程可以被确定为依赖于联系人应用并且可以作为上行链路传输功率被管理,使得它在联系人应用启动时不被冻结。
如在上面阐述的,利用在应用启动时间内操作受限的一个或更多个进程的操作,电子装置可以连续地监视是否满足预设条件,直到应用启动终止为止。
参照图4B描述监视是否满足预设条件的示例。
图4B是示出根据本公开的实施例的基于应用的启动时间的电子装置的操作的流程图(441)。
图4B的操作441,包括图4B的操作445和447,可以对应于图4A的操作425和430。
参照图4B,如果预设条件指示应用启动时间,则电子装置201可以在操作445中确定应用启动时间是否过去。直到在应用启动时间过去之前,可以如在图4A的操作420中一样保持对至少一个识别的进程的操作限制。
相比之下,如果在操作445中应用启动时间过去,则电子装置201可以在操作447中响应于应用启动时间的过去而释放对至少一个识别的进程的操作限制。
图5是根据本公开的实施例的对冻结目标进程的操作限制的信号流程图(500)。图5将DEX2OAT示出为示例冻结目标进程。
参照图5,如果从DEX2OAT 505生成(515)线程,则依赖性确定模块221可以在操作520中确定DEX2OAT 505是否是内部DEX2OAT。如果在操作520中DEX2OAT 505是内部DEX2OAT,则依赖性确定模块221可以在操作525中将它从冻结目标中排除。由于内部DEX2OAT可以实时地编译,所以它依赖于启动目标应用并且可以被从冻结目标中排除。相比之下,由于正常DEX2OAT当在应用安装或更新时被编译一次时被执行,所以它不依赖于应用启动,因此可以如在操作530中一样被添加到冻结目标。
但是可以在应用510被执行或者它可以被预先存储在冻结目标组中而不管应用510是否运行之后执行关于它是否为冻结目标的确定。因此,如果应用510在操作535中运行并开始启动,则可以参考或执行预先存储的冻结目标组,然后可以确定它是否为冻结目标,并且如果是这样的话,则可以控制DEX2OAT 505以在操作540中被冻结。因此,DEX2OAT 505可以在启动时段545期间保持在冻结状态550下。
此后,如果应用510的启动在操作555中完成,则依赖性确定模块221可以在操作560中释放对DEX2OAT 505的操作限制。然后,随着DEX2OAT505中的线程在操作565中终止,即,随着DEX2OAT 505的操作被结束,可以在操作570中在从冻结目标中释放DEX2OAT 505之后更新DB。因此,可以在从操作535中的启动的开始到操作555中的启动的终止的启动时段545内仅对与应用510无关的进程保持冻结。
图6是示出根据本公开的实施例的当发生事件时电子装置的操作的流程图(600)。
参照图6,操作方法可以包括操作605到640。操作方法的每个操作可以由电子装置(例如,图1或图2A的电子装置101或201)中的至少一个或电子装置的至少一个处理器(例如,图1或图2A的处理器120或220)执行。根据实施例,操作605至640中的至少一个可以被省略或按顺序改变或者可以添加其他操作。
图6的操作605至620与图4A的操作405至420相同,并且不重复其的详细描述。
图6的操作625和630可以对应于包括图4A的操作425和430的操作440。参照图6描述在图4A中监视是否满足预设条件的示例。
参照图6,电子装置201可以在操作625中确定是否检测到至少一个事件,其中在启动时段期间识别的至少一个进程是操作受限的。如果检测到至少一个事件,则电子装置201可以在操作630中释放对至少一个识别的进程当中与至少一个事件的检测相对应的进程的操作限制。然后,电子装置201可以在操作635中确定是否终止应用启动。如果应用启动尚未被终止,例如,直到在启动时间过去之前,则电子装置可以监视启动时间是否过去。相比之下,如果应用启动被终止,则电子装置201可以在操作640中释放对其他操作受限的进程的操作限制并更新DB。
图7是示出根据本公开的实施例的在最初运行应用时基于依赖性的进程控制过程的信号流程图(700)。
参照图7,如果为了在电子装置201上运行应用而输入(702)用户触摸,则应用启动(710)可以开始。例如,如果与应用相关联的多个进程是进程A、B、C和D,则可以通过用户触摸来开始应用启动710,并且可以执行依赖性确定711。如果启动目标进程是进程A 704,并且此进程自应用已被安装以来被首次启动,则因为它是在建立DB之前,所以依赖性确定模块221可以在初始执行时,将除了进程A 704之外的进程B 706、C 708、和D 709添加到冻结目标组233并且更新依赖性DB 231。因此,依赖性确定模块221可以在操作712中冻结进程B706、C 708和D 709以在启动时段内限制进程B 706、C 708和D 709的操作。进程B 706、C708和D 709可以保持在冻结状态714、716和718下直到发生解冻指令为止。
此后,依赖性确定模块221可以执行监测以在启动时段期间检测事件。如果在监视时发生从进程A 704到进程B 706的绑定器调用,则依赖性确定模块221可以确定(720)进程B 706依赖于进程A704。因此,在从冻结目标组233中删除进程B 706之后,依赖性确定模块221可以将进程B 706添加到解冻目标组232并更新(231)DB。随后,依赖性确定模块221可以解冻进程B 706以释放对进程B 706的操作限制,并且进程B 706可以在操作721中保持(722)与解冻指令相对应的解冻状态。
此后,如果在监视时发生从进程A 704到进程C 708的绑定器调用,则依赖性确定模块221可以确定(723)进程C 708依赖于进程A704。因此,在从冻结目标组233中删除进程C708之后,依赖性确定模块221可以将进程C 708添加到解冻目标组232并更新(231)DB。此外,依赖性确定模块221可以在操作724中解冻进程C 708。对应于此,进程C 708可以保持(726)与解冻指令相对应的解冻状态。
相比之下,如果进程D 709在启动时段期间未与进程A 704交换数据,则可以保持冻结状态718直到在启动结束之前为止。此后,如果启动结束(728),则可以经由依赖性确定729释放和解冻(730)曾经属于冻结目标组233的进程D 709的冻结状态。
对应于如上所述的应用的初始执行,可以将进程B 706和C 708管理为包括在解冻目标组232中,并且可以将进程D 709管理为包括在冻结目标组233中。
图8是示出根据本公开的实施例的在重新运行应用时基于依赖性的进程控制过程的信号流程图(800)。
参照图8,它示出当与图7中执行的应用相同的应用再次运行时的信号流。参照图8,如果先前运行的应用重新运行,则依赖性确定模块221可以基于在初始执行时配置的依赖性DB被运行。例如,在初始运行时配置的依赖性DB可以包括解冻目标组232中的进程B706和C 708以及冻结目标组233中的进程D 709。
因此,如果应用开始启动(810),则可以通过参考依赖性DB来执行依赖性确定811。因此,依赖性确定模块221可以在操作812中冻结进程D 709并且保持(818)冻结状态的同时为进程B 706和C 708保持解冻状态。
此后,可以经由依赖性确定821和823对应于事件(例如,绑定器调用)的检测为进程B 706和C 708保持解冻状态。如果在启动时段的终止时间828之前没有经由依赖性确定829对进程D 709的绑定器调用,则可以保持进程D 709的冻结状态818,并且在启动的终止时间828被解冻(830)。
图9是示出根据本公开的实施例的在更新应用时基于依赖性的进程控制过程的信号流程图(900)。
图9的操作与图8的操作类似,因此在下面不详细地描述。参照图9,它示出这样的示例,其中当进程A的操作由于应用更新而发生改变时,依赖性DB也被更新。例如,进程A704可以能偶尔需要与进程D 709交换数据。在这种情况下,图9的依赖性DB可以与图8的依赖性DB相同。例如,依赖性DB可以包括解冻目标组232中的进程B 706和C 708以及冻结目标组233中的进程D 709。
在启动开始(910)之后,依赖性确定模块221可以执行连续地监视在进程A 704及进程B 706和进程C 708之间是否交换了数据的依赖性确定921和934。如果在进程A 704需要在启动时段内与进程D 709交换数据的情况下发生这样的情况,例如,当经由依赖性确定929发生从进程A 704到进程D 709的绑定器调用时,依赖性确定模块221可以解冻(930)进程D 709,并且因此可以释放进程D 709的冻结状态918。随后,依赖性确定模块221可以控制经由依赖性DB 231将进程D 709从冻结目标组233移动到解冻目标组232。因此,直到在启动结束之前,进程D 709可以保持在解冻状态932。
此后,当启动结束(936)时,可以更新DB以允许解冻目标组232包括进程B 706、C708和D 709。
因此,如果稍后重新运行应用,则依赖性确定模块221可以基于经更新的DB来冻结进程B 706、C 708和D 709以在启动时段内不是操作受限的。与此不同,如果与进程B 706的绑定器调用未发生,则在启动时段期间,直到启动终止为止,依赖性确定模块221可以将进程B 706指定为在冻结目标组233中并更新DB。因此,如果应用再次运行,则依赖性确定模块221可以基于经更新的DB在启动时段期间冻结进程B 706。因此,由于依赖性DB中的冻结目标组被更新使得每当应用运行时冻结目标组中包括的进程中的至少一些变化,所以即使当应用被频繁地更新时,也可以识别要在启动时段内自适应地操作受限的进程,并且因此,可以确保应用启动速度。
图10是示出根据本公开的实施例的基于优先级的电子装置的操作的流程图(1000)。
参照图10,操作方法可以包括操作1005至1045。操作方法的每个操作可以由电子装置(例如,图1或图2A的电子装置101或201)中的至少一个或电子装置的至少一个处理器(例如,图1或图2A的处理器120或220)执行。根据实施例,操作1005至1045中的至少一个可以被省略或按顺序改变或者可以添加其他操作。
图10的操作1005至1015与图4A的操作405至415相同,并且不重复其的详细描述。
参照图10,电子装置201可以在操作1020中向除至少一个识别的进程和该进程中的至少一个线程外的其他进程指配较高的优先级。例如,如果较高的优先级被指配给所有剩余进程,则能与其他进程发生优先级反转或优先级冲突。因此,可以将较高的优先级指配给至少一个进程。由于至少一个进程包括至少一个线程,诸如主线程、UI线程或工人线程,所以也可以为至少一个进程中的至少一个线程确定优先级。
例如,电子装置201可以向需要首先被处理的主线程和UI线程指配最高的优先级,例如RT优先级。
然后,在操作1025中,电子装置201可以在运行应用的同时限制至少一个识别的进程的操作并且指配较低的优先级。例如,可以向至少一个识别的进程指配较低的优先级以在启动时段内不被运行。或者,电子装置201可以控制用低性能CPU去调度它,使得尽管被指配了较低的优先级,但是可以在启动时段内执行该进程中的特定操作。因此,电子装置201可以控制被指配较低的优先级的进程和该进程中的至少一个线程用低性能CPU来调度。
因此,根据实施例,电子装置201可以将较高的优先级指配给与应用相关联的多个进程当中除了至少一个识别的进程之外的至少一个进程和该至少一个进程中的至少一个线程。
根据实施例,电子装置201可以执行由具有第一运行速度的CPU调度已被指配有较高的优先级的至少一个进程中的至少一个线程并且由具有第二运行速度的CPU调度至少一个进程中的剩余线程。根据实施例,可以将第一运行速度设置为比第二运行速度高。
在操作1030中,电子装置201可以确定是否检测到至少一个事件。如果检测到至少一个事件,则电子装置201可以在操作1035中释放对至少一个识别的进程当中与所检测到的事件的至少一部分相对应的进程的操作限制并且向其指配较高的优先级。相比之下,如果未检测到至少一个事件,则电子装置201可以回到操作1020。
然后,电子装置201可以在操作1040中确定应用启动是否被终止。可以保持上述操作直到应用启动终止为止。相比之下,如果作为操作1040中的确定的结果应用启动被终止,则电子装置201可以在操作1045中释放对操作受限的进程的操作限制并且返回到原始优先级,然后更新DB。
如在上面阐述的,根据实施例,如果应用启动时间过去,则电子装置201可以使经提高的至少一个进程和该至少一个进程中的至少一个线程的优先级变回到原始优先级。
图11是示出根据本公开的实施例的基于优先级的启动目标进程控制过程的视图(1100)。
参照图11,它示出应用关联的启动目标进程(例如,进程A)1110包括主线程1111、UI线程1112和多个工人线程#1、#2、...、#N(1113、1114、1115)的示例。启动目标进程(例如,进程A)1110的主线程1111和UI线程1112需要首先被执行而不落后于其他进程操作。
因此,优先级确定模块222可以将主线程1111和UI线程1112的优先级改变(1120)成RT优先级以便在应用沿着时间轴1105启动时向主线程1111和UI线程1112指配较高的优先级。因此,通过指配RT优先级,较长的CPU占用率是可能的,从而导致快速处理。此外,可以用高性能CPU调度(1130)被指配有RT优先级的线程以进行快速处理。
此后,在应用终止时,优先级确定模块222可以恢复(1140)改变后的优先级。这里,应用的终止时间可以表示应用启动的完成时间。
虽然图11示出提高启动目标进程中的至少一个线程的优先级的示例,但是也可以提高与事件(例如,绑定器调用)的检测相对应的进程的优先级。例如,优先级确定模块222可以将接收到来自启动目标进程的绑定器调用的进程指定为高优先级组,同时将未能接收到绑定器调用的进程指定为低优先级组。可以将正常优先级指配给新生成的进程和不属于优先级DB的进程。
图12是示出根据本公开的实施例的基于优先级的进程控制过程的视图(1200)。
参照图12,如果为了在电子装置201上运行应用而输入(1202)用户触摸,则应用启动(1210)可以开始。例如,如果与应用相关联的多个进程是进程A、B、C和D,则可以通过用户触摸来开始应用启动1210,并且可以执行优先级确定1211。如果启动目标进程是进程A1204,并且进程A 1204与进程B 1206和C 1208相关,则当应用启动1210开始时,优先级确定模块222可以将进程B 1206和C 1208添加到高优先级组235并且将进程D 1209添加到低优先级组236,从而更新(231)DB。如果已经建立了包括有包括进程B 1206和C 1208的高优先级组235的数据库,并且低优先级组236包括进程D 1209,则优先级确定模块222可以在操作1212中将较低的优先级指配给进程D 1209。
因此,进程D 1209可以能由于其低优先级而在启动时段期间被部分地操作限制,并且即使在启动时段内,如果需要执行某个特定操作以与进程A进行绑定器通信,则它可以用低性能CPU调度(1218)。因此,由于进程D 1209与进程A 1204无关,所以可以在启动时将进程D 1209的优先级改变成较低的优先级。
此后,尽管需要在启动时段期间运行进程D 1209,但是它可以被指配低性能CPU并且根据较低的优先级被调度(1218)。例如,被指配有较低的优先级的进程D 1209的示例可以包括日志守护程序、垃圾回收(GC)和Android BG并且被限制在低性能CPU上运行。
相比之下,在执行优先级确定的时段例如监视事件例如如在操作1220和1224中一样从进程A 1204到进程B 1206或从进程A1204到进程C 1208的绑定器调用的时段期间,可以将进程B 1206和进程C 1208的优先级改变成较高的优先级,例如,如在操作1222和1226中一样的RT优先级。因此,进程B 1206和C 1208可以被指配高性能CPU并且因此被快速地运行。
此后,如果在操作1228中终止了启动,则可以在操作1230中使进程B 1206和C1208的优先级以及进程D 1209的优先级变回到原始优先级。在这种情况下,由于每当优先级改变时DB被更新,所以尽管优先级被变回到原始优先级,但是可以累积地管理关于应用关联的进程和该进程中的至少一个线程的优先级变化的信息。因此,每当应用运行时,可以将至少一个进程和该进程中的至少一个线程分类为高优先级组和低优先级组,并且可以管理优先级DB。因此,不仅对于被频繁地更新的应用而且对于其他各种各样的应用,可以确保基于自适应地改变优先级的应用快速启动。
例如,由于从应用的进程A 1204的主线程到Android***和另一进程的绑定器通信与启动时间直接相关联,所以它可以被指配有RT优先级以被首先处理,从而缩短启动时间。
根据各种实施例的电子装置可以是各种类型的电子装置中的一个。电子装置可以包括例如便携式通信装置(例如,智能电话)、计算机装置、便携式多媒体装置、便携式医疗装置、相机、可穿戴装置或家用电器。根据本公开的实施例,电子装置不限于上述那些。
应当领会,本公开的各种实施例和在其中使用的术语不旨在将本文阐述的技术特征限于特定实施例并且包括对应实施例的各种变化、等同形式或替换。关于附图的描述,类似的附图标记可以用于是指类似或相关的元件。应当理解,与项目相对应的名词的单数形式可以包括一个或更多个事物,除非相关上下文另外清楚地指示。如本文所使用的,如“A或B”、“A和B中的至少一个”、“A或B中的至少一个”、“A、B或C”、“A、B和C中的至少一个”以及“A、B或C中的至少一个”这样的短语中的每一个可以包括在这些短语中的对应一个中一起枚举的项目的所有可能的组合。如本文所使用的,如“第1”和“第2”或“第一”和“第二”的术语可以用于简单地区分对应的部件和另一部件,而不在其他方面(例如,重要性或顺序)上限制部件。应当理解,如果一个元件(例如,第一元件)在有或没有术语“在操作上”或“通信地”的情况下被称为“与”另一元件(例如,第二元件)“耦合”、“耦合到”另一元件(例如,第二元件)、“与”另一元件(例如,第二元件)“连接”或者“连接到”另一元件(例如,第二元件),则意味着该元件可以直接(例如,有线地)、无线地或经由第三元件与另一元件耦合。
如本文所使用的,术语“模块”可以包括用硬件、软件或固件实现的单元,并且可以与其他术语例如“逻辑”、“逻辑块”、“零件”或“电路”互换地使用。模块可以是被适配为执行一个或更多个功能的单个集成部件或其最小单元或部分。例如,根据实施例,可以专用集成电路(ASIC)的形式实现模块。
可以将如本文所阐述的各种实施例实现为包括被存储在可以由机器(例如,电子装置101)读取的存储介质(例如,内部存储器136或外部存储器138)中的一个或更多个指令的软件(例如,程序140)。例如,机器(例如,电子装置101)的处理器(例如,处理器120)可以调用存储在存储介质中的一个或更多个指令中的至少一个,并且在处理器的控制下使用或不使用一个或更多个其他部件指令的情况下执行它。这允许机器***作以根据所调用的至少一条指令来执行至少一个功能。一个或更多个指令可以包括由编译器生成的代码或由解释器执行的代码。可以非暂时性存储介质的形式提供机器可读存储介质。其中术语“非暂时性”简单地意味着存储介质是有形装置,而不包括信号(例如,电磁波),但是此术语不区分数据被半永久地存储在存储介质中的地方和数据被临时存储在存储介质中的地方。
根据实施例,可以在计算机程序产品中包括并提供根据本公开的各种实施例的方法。计算机程序产品可以作为商品在卖家与买家之间交易。计算机程序产品可以被以机器可读存储介质(例如,紧致盘只读存储器(CD-ROM))的形式分发,或者经由应用商店(例如,PlayStoreTM)在线分发,或者直接在两个用户装置(例如,智能电话)之间分发。如果在线分发,则计算机程序产品的至少一部分可被临时生成或者至少临时存储在诸如制造商的服务器、应用商店的服务器或中继服务器的存储器的机器可读存储介质中。
根据各种实施例,上述部件中的每个部件(例如,模块或程序)可以包括单个实体或多个实体。根据各种实施例,可以省略上述部件中的一个或更多个,或者可以添加一个或更多个其他部件。替代地或附加地,可以将多个部件(例如,模块或程序)集成到单个部件中。在这样的情况下,根据各种实施例,集成部件可以与它们由多个部件中的对应一个在集成之前执行相同或类似的方式执行多个部件中的每一个的一个或更多个功能。根据各种实施例,可以顺序地、并行地、重复地或启发式地执行由模块、程序或另一部件执行的操作,或者可以不同顺序执行或省略这些操作中的一个或更多个,或者可以添加一个或更多个其他操作。
根据实施例,提供了一种存储指令的存储介质,这些指令被配置为,当由至少一个进程执行时,使得至少一个处理器能够执行至少一个操作,该至少一个操作包括:识别与应用相关联的多个进程;在多个进程当中识别要在运行应用的时间的至少部分时间期间操作受限的至少一个进程;在运行应用的时间的至少部分时间期间限制至少一个识别的进程的操作;以及响应于满足预设条件而释放对至少一个识别的进程中的至少一些的操作限制。
本文的实施例是仅仅为了更好地理解本公开而提供的,并且本公开不应当限于此或由此限制。本领域的普通技术人员应当领会,在不脱离由以下权利要求限定的本公开的范围的情况下,可以对实施例做出形式或细节上各种变化。
Claims (15)
1.一种电子装置,所述电子装置包括:
至少一个处理器;以及
存储器,所述存储器存储有指令,所述指令当由所述至少一个处理器执行时,使所述至少一个处理器:
识别与应用相关联的多个进程,
在所述多个进程当中识别至少一个操作受限的进程,所述至少一个操作受限的进程在运行所述应用的时间的至少一部分期间是操作受限的,
在运行所述应用的时间的所述至少一部分期间限制所述至少一个操作受限的进程的操作,以及
响应于满足预设条件而释放对所述至少一个操作受限的进程当中的第一操作受限的进程的操作限制。
2.根据权利要求1所述的电子装置,
其中,所述预设条件包括所述应用的启动时间,并且
其中,所述指令还使所述至少一个处理器:
当所述应用的启动时间过去时,释放对所述第一操作受限的进程的操作限制。
3.根据权利要求1所述的电子装置,
其中,所述预设条件包括检测至少一个事件,并且
其中,所述指令还使所述至少一个处理器:
释放对所述至少一个识别的进程当中与所述至少一个事件的检测相对应的所述第一操作受限的进程的操作限制。
4.根据权利要求1所述的电子装置,其中,所述指令还使所述至少一个处理器:
基于对所述应用的依赖性来识别所述至少一个操作受限的进程。
5.根据权利要求4所述的电子装置,其中,所述指令还使所述至少一个处理器:
将所述至少一个操作受限的进程添加到操作限制组,并且,
响应于所述操作限制组包括与至少一个事件的检测相对应的第二操作受限的进程,从所述操作限制组中移除所述第二操作受限的进程。
6.根据权利要求5所述的电子装置,其中,所述操作限制组被更新,使得每当所述应用运行时所述操作限制组中包括的进程中的至少一些进程发生变化。
7.根据权利要求1所述的电子装置,其中,所述指令还使所述至少一个处理器:
确定所述多个进程当中除了所述至少一个操作受限的进程之外的至少一个优先进程的优先级;
提高所述至少一个优先进程中的至少一个线程的优先级;以及
当所述应用的启动时间过去时,将所述至少一个线程的优先级改变为原始优先级。
8.根据权利要求7所述的电子装置,
其中,所述指令还使所述至少一个处理器:
将所述至少一个线程调度为在具有第一运行速度的第一中央处理单元(CPU)中运行,并且
将所述至少一个优先进程中的另一线程调度为在具有第二运行速度的第二CPU中运行,以及
其中,所述第一运行速度被设置为比所述第二运行速度高。
9.一种用于在电子装置上控制应用的执行的方法,所述方法包括:
识别与应用相关联的多个进程;
在所述多个进程当中识别至少一个操作受限的进程,所述至少一个操作受限的进程在运行所述应用的时间的至少一部分期间是操作受限的;
在运行所述应用的时间的至少一部分期间限制所述至少一个操作受限的进程的操作;以及
响应于满足预设条件而释放对所述至少一个操作受限的进程当中的第一操作受限的进程的操作限制。
10.根据权利要求9所述的方法,
其中,所述预设条件包括所述应用的启动时间,并且
其中,释放对所述至少一个操作受限的进程当中的所述第一操作受限的进程的所述操作限制包括:当所述应用的启动时间过去时,释放对所述第一操作受限的进程的操作限制。
11.根据权利要求9所述的方法,
其中,所述预设条件包括检测至少一个事件,并且
其中,释放对所述至少一个操作受限的进程当中的所述第一操作受限的进程的所述操作限制包括:释放对所述至少一个识别的进程当中与所述至少一个事件的检测相对应的所述第一操作受限的进程的操作限制。
12.根据权利要求9所述的方法,其中,所述至少一个操作受限的进程是基于对所述应用的依赖性来识别的。
13.根据权利要求9所述的方法,所述方法还包括:
将所述至少一个操作受限的进程添加到操作限制组;
响应于所述操作限制组包括与至少一个事件的检测相对应的第二操作受限的进程,从所述操作限制组中移除所述第二操作受限的进程;以及
当所述应用的启动时间过去时,将所述至少一个优先进程和所述至少一个线程的较高的优先级改变为原始优先级,
其中,所述操作限制组被更新,使得每当所述应用运行时所述操作限制组中包括的进程中的至少一些进程发生变化。
14.根据权利要求9所述的方法,所述方法还包括:
向所述多个进程当中除了所述至少一个操作受限的进程之外的至少一个优先进程和所述至少一个优先进程中的至少一个线程指配更高的优先级;
将所述至少一个线程调度为在具有第一运行速度的第一中央处理单元(CPU)中运行;以及
将所述至少一个优先进程中的另一线程调度为在具有第二运行速度的第二CPU中运行,其中所述第一运行速度被设置为高于所述第二运行速度。
15.一种存储指令的非暂时性存储介质,所述指令被配置为,当由至少一个处理器执行时,使得所述至少一个处理器能够执行至少一个操作,所述至少一个操作包括:
识别与应用相关联的多个进程,
在所述多个进程当中识别至少一个操作受限的进程,所述至少一个操作受限的进程在运行所述应用的时间的至少一部分期间是操作受限的,
在运行所述应用的时间的至少一部分期间限制所述至少一个操作受限的进程的操作,以及
响应于满足预设条件而释放对所述至少一个操作受限的进程当中的第一操作受限的进程的操作限制。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR10-2019-0049286 | 2019-04-26 | ||
KR1020190049286A KR20200125258A (ko) | 2019-04-26 | 2019-04-26 | 어플리케이션 실행을 제어하기 위한 방법, 이를 위한 전자 장치 및 저장 매체 |
PCT/KR2020/003837 WO2020218743A1 (en) | 2019-04-26 | 2020-03-20 | Method for controlling execution of application, electronic device and storage medium for the same |
Publications (1)
Publication Number | Publication Date |
---|---|
CN113728312A true CN113728312A (zh) | 2021-11-30 |
Family
ID=72917070
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202080031247.3A Pending CN113728312A (zh) | 2019-04-26 | 2020-03-20 | 用于控制应用的执行的方法、电子装置及其存储介质 |
Country Status (5)
Country | Link |
---|---|
US (1) | US11675621B2 (zh) |
EP (1) | EP3924825A4 (zh) |
KR (1) | KR20200125258A (zh) |
CN (1) | CN113728312A (zh) |
WO (1) | WO2020218743A1 (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114721742A (zh) * | 2022-04-14 | 2022-07-08 | 北京字节跳动网络技术有限公司 | 应用程序的启动优化方法、装置、计算机设备及存储介质 |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR20220107621A (ko) * | 2021-01-25 | 2022-08-02 | 삼성전자주식회사 | 가속기 자원 관리 방법 및 장치 |
CN114326560B (zh) * | 2021-11-18 | 2024-02-09 | 北京华能新锐控制技术有限公司 | 降低风电机组国产化plc的cpu负荷的方法及装置 |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20070121665A1 (en) * | 2005-11-30 | 2007-05-31 | Microsoft Corporation | Delay start-up of applications |
CN102378965A (zh) * | 2009-04-17 | 2012-03-14 | 诺基亚公司 | 用于经由进程间通信共享资源的方法、装置和计算机程序产品 |
US20120102499A1 (en) * | 2010-10-25 | 2012-04-26 | International Business Machines Corporation | OPTIMIZING THE PERFORMANCE OF HYBRID CPU SYSTEMS BASED UPON THE THREAD TYPE OF APPLICATIONS TO BE RUN ON THE CPUs |
US20140123151A1 (en) * | 2012-10-31 | 2014-05-01 | Microsoft Corporation | Application prioritization |
US20150347178A1 (en) * | 2014-05-30 | 2015-12-03 | Apple Inc. | Method and apparatus for activity based execution scheduling |
CN108604190A (zh) * | 2016-01-28 | 2018-09-28 | 三星电子株式会社 | 用于控制应用的电子装置及其操作方法 |
Family Cites Families (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101753589B (zh) * | 2008-12-15 | 2012-12-12 | ***通信集团公司 | 数据文件解密方法、解密装置和数据广播*** |
US8608168B2 (en) * | 2009-08-19 | 2013-12-17 | Marian Rowan | Storage structure used as a target and a bounce back for projectiles |
KR101636870B1 (ko) | 2010-02-26 | 2016-07-06 | 삼성전자주식회사 | 최소 부트 이미지의 생성 방법 및 장치 |
KR101850275B1 (ko) * | 2011-10-14 | 2018-04-20 | 에스프린팅솔루션 주식회사 | 빠른 부팅을 위한 부트 이미지를 생성하는 방법 및 이를 수행하는 화상형성장치, 부트 이미지를 이용하여 빠른 부팅을 수행하는 방법 및 이를 수행하는 화상형성장치 |
US8935697B2 (en) * | 2011-08-10 | 2015-01-13 | Microsoft Corporation | Suspension and/or throttling of processes for connected standby |
CN105612485B (zh) | 2014-09-19 | 2019-11-29 | 华为技术有限公司 | 一种运行应用程序的方法及装置 |
JP2016100731A (ja) * | 2014-11-20 | 2016-05-30 | キヤノン株式会社 | 情報処理装置およびその制御方法、並びにプログラム |
US10310893B2 (en) * | 2016-04-05 | 2019-06-04 | Microsoft Technology Licensing, Llc | Managing container pause and resume |
US10613897B1 (en) * | 2016-12-21 | 2020-04-07 | Ca, Inc. | Systems and methods for creating program-specific execution environments |
CN109254849B (zh) | 2018-08-31 | 2021-03-30 | 北京小米移动软件有限公司 | 应用程序的运行方法及装置 |
-
2019
- 2019-04-26 KR KR1020190049286A patent/KR20200125258A/ko not_active Application Discontinuation
-
2020
- 2020-03-20 WO PCT/KR2020/003837 patent/WO2020218743A1/en unknown
- 2020-03-20 CN CN202080031247.3A patent/CN113728312A/zh active Pending
- 2020-03-20 EP EP20793987.7A patent/EP3924825A4/en active Pending
- 2020-04-02 US US16/838,419 patent/US11675621B2/en active Active
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20070121665A1 (en) * | 2005-11-30 | 2007-05-31 | Microsoft Corporation | Delay start-up of applications |
CN102378965A (zh) * | 2009-04-17 | 2012-03-14 | 诺基亚公司 | 用于经由进程间通信共享资源的方法、装置和计算机程序产品 |
US20120102499A1 (en) * | 2010-10-25 | 2012-04-26 | International Business Machines Corporation | OPTIMIZING THE PERFORMANCE OF HYBRID CPU SYSTEMS BASED UPON THE THREAD TYPE OF APPLICATIONS TO BE RUN ON THE CPUs |
US20140123151A1 (en) * | 2012-10-31 | 2014-05-01 | Microsoft Corporation | Application prioritization |
US20150347178A1 (en) * | 2014-05-30 | 2015-12-03 | Apple Inc. | Method and apparatus for activity based execution scheduling |
CN108604190A (zh) * | 2016-01-28 | 2018-09-28 | 三星电子株式会社 | 用于控制应用的电子装置及其操作方法 |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114721742A (zh) * | 2022-04-14 | 2022-07-08 | 北京字节跳动网络技术有限公司 | 应用程序的启动优化方法、装置、计算机设备及存储介质 |
WO2023197866A1 (zh) * | 2022-04-14 | 2023-10-19 | 北京字节跳动网络技术有限公司 | 应用程序的启动优化方法、装置、计算机设备及存储介质 |
Also Published As
Publication number | Publication date |
---|---|
WO2020218743A1 (en) | 2020-10-29 |
US20200341805A1 (en) | 2020-10-29 |
US11675621B2 (en) | 2023-06-13 |
EP3924825A4 (en) | 2022-03-23 |
KR20200125258A (ko) | 2020-11-04 |
EP3924825A1 (en) | 2021-12-22 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11720368B2 (en) | Memory management of data processing systems | |
CN108388431B (zh) | 应用程序热更新的控制方法、装置、存储介质及移动终端 | |
US11675621B2 (en) | Method for controlling execution of application, electronic device and storage medium for the same | |
KR102205836B1 (ko) | 태스크 스케줄링 방법 및 장치 | |
EP2919115B1 (en) | Task migration method and apparatus | |
US20170078160A1 (en) | Method for processing services and electronic device for the same | |
KR102666329B1 (ko) | 어플리케이션 실행 방법 및 장치 | |
US10684838B2 (en) | Dynamic application deployment | |
US11435985B2 (en) | Electronic device and operation method thereof | |
US20220100490A1 (en) | Firmware updating method, and electronic apparatus and storage media for same | |
US20220261291A1 (en) | Electronic device for executing multiple operating systems and method of controlling same | |
EP4018303B1 (en) | Method for preloading application and electronic device supporting same | |
US11157264B2 (en) | Electronic device and method for controlling update of electronic device | |
US11481020B2 (en) | Electronic device for controlling process and method thereof | |
KR102372644B1 (ko) | 운영 체제의 운용 방법 및 이를 지원하는 전자 장치 | |
US20210248004A1 (en) | Electronic device for task scheduling when application is run, method of operating the same, and storage medium | |
KR20210046426A (ko) | 어플리케이션의 최적화 방법 및 이를 지원하는 전자 장치 | |
CN116610370A (zh) | 一种启动方法、装置、设备及存储介质 | |
US11875035B2 (en) | Electronic device and method for managing memory using the same | |
EP4283473A1 (en) | Device and method for reduction of garbage collection operations | |
US20230236744A1 (en) | Electronic device and method for managing memory of electronic device | |
EP3987395B1 (en) | Electronic device for executing instructions using processor cores and various versions of instruction set architectures | |
EP4372549A1 (en) | Electronic device for obtaining information used to compile application, and method thereof | |
US20230030132A1 (en) | Application optimization method and apparatus supporting the same | |
CN116954724A (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 |