CN112231077A - 应用的调度方法及电子设备 - Google Patents
应用的调度方法及电子设备 Download PDFInfo
- Publication number
- CN112231077A CN112231077A CN202010990204.XA CN202010990204A CN112231077A CN 112231077 A CN112231077 A CN 112231077A CN 202010990204 A CN202010990204 A CN 202010990204A CN 112231077 A CN112231077 A CN 112231077A
- Authority
- CN
- China
- Prior art keywords
- application
- scheduling
- electronic device
- policy
- stack
- 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.)
- Granted
Links
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
- 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
- G06F9/4887—Scheduling strategies for dispatcher, e.g. round robin, multi-level priority queues involving deadlines, e.g. rate based, periodic
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/14—Digital output to display device ; Cooperation and interconnection of the display device with other functional units
- G06F3/1454—Digital output to display device ; Cooperation and interconnection of the display device with other functional units involving copying of the display data of a local workstation or window to a remote workstation or window so that an actual copy of the data is displayed simultaneously on two or more displays, e.g. teledisplay
-
- 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
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Software Systems (AREA)
- Human Computer Interaction (AREA)
- User Interface Of Digital Computer (AREA)
- Telephone Function (AREA)
Abstract
本申请实施例提供一种应用的调度方法及电子设备,所述方法在对多个应用进行调用时,通过结合对应于应用的用户操作行为,以对应用进行不同优先级别的调度,以实现多前台应用并发的优先调度,从而保障多前台应用运行的流畅度。
Description
技术领域
本申请实施例涉及电子设备控制领域,尤其涉及一种应用的调度方法及装置。
背景技术
随着通信的发展,终端中的应用也越来越多,现有的安卓(Android)系统中,对于多前台应用的场景,通常是采用单一焦点机制,即基于优先级较高的调度策略对焦点应用进行调度,而对于其它非焦点应用,则采用优先级较低的调度策略进行调度,而在多前台应用的场景下,由于多个应用均置于前台,则对于非焦点应用,由于其与其它非前台应用相同的较低优先级的调度策略,将会存在卡顿的问题。
发明内容
为了解决上述技术问题,本申请提出了一种应用的调用方法及电子设备。在该方法中,在应用调用的过程中,电子设备通过结合应用的栈顶位置以及对应于应用的用户操作行为,对应用进行不同优先级别的调度,同时支持多个前台应用并发的优先调度,以保障多前台应用运行的流程度。
第一方面,提供一种电子设备。电子设备包括:一个或多个处理器;存储器;以及一个或多个计算机程序,其中一个或多个计算机程序存储在存储器上,当计算机程序被一个或多个处理器执行时,使得电子设备执行以下步骤:对至少一个应用进行调度时,获取单一应用的应用状态,应用状态包括单一应用在所属任务栈中的位置和单一应用的操作事件状态;基于单一应用的应用状态,确定对应于单一应用的调度策略;基于对应于各应用的调度策略,对至少一个应用进行调度;其中,若单一应用位于所属任务栈的栈顶位置,且存在且存在对应于单一应用的操作事件,单一应用对应第一调度策略;若单一应用位于所属任务栈的栈顶位置,且在预定时长内未存在对应于单一应用的操作事件,单一应用对应第二调度策略;若单一应用位于所属任务栈的非栈顶位置,且不存在对应于单一应用的操作事件,单一应用对应第三调度策略;第一调度策略的优先级大于第二调度策略的优先级,第二调度策略的优先级大于第三调度策略的优先级。这样,电子设备对多个应用进行调用时,可结合对应于应用的用户操作行为,以对应用进行不同优先级别的调度,以实现多前台应用并发的优先调度,从而保障多前台应用运行的流畅度。
根据第一方面,至少一个应用包括第一应用和第二应用,第一应用所属任务栈为第一任务栈,第二应用所属任务栈为第二任务栈。这样,对多个前台应用同时进行调度时,可结合应用在对应的任务栈中的位置及其对应的用户操作行为,对应用进行不同优先级别的调度。
根据第一方面,或者以上第一方面的任意一种实现方式,电子设备对应于第一Display,另一电子设备对应于第二Display,第一任务栈对应于第一Display,第二任务栈对应于第二Display;电子设备还执行以下步骤:基于第二应用,对另一电子设备进行投屏。这样,本申请可应用于投屏场景,以保证在不同电子设备的多前台应用调度时的流畅度。
根据第一方面,或者以上第一方面的任意一种实现方式,电子设备对应于第一Display和第二Display,第一Display用于显示第一应用,第二Display用于显示第二应用,第一任务栈对应于第一Display,第二任务栈对应于第二Display。这样,本申请可应用于同一电子设备的多个Display场景,以保证在不同Display的多前台应用调度时的流畅度。
根据第一方面,或者以上第一方面的任意一种实现方式,电子设备对应于第一Display;其中,若单一应用位于所属任务栈的非栈顶位置,且不存在对应于单一应用的操作事件,以及单一应用显示在第一Display上,单一应用对应第二调度策略;若单一应用位于所属任务栈的非栈顶位置,且不存在对应于单一应用的操作事件,以及单一应用未显示在第一Display上,单一应用对应第三调度策略。这样,本申请还可进一步结合应用的感知状态,即是否显示于Display上,对应用进行不同优先级别的调度。
根据第一方面,或者以上第一方面的任意一种实现方式,电子设备还执行以下步骤:获取对应于第一应用的操作事件;响应于第一用户指令,触发第一应用,并将第一应用置于第一任务栈的栈顶位置。这样,电子设备可基于对应于应用的用户操作行为,将应用置于任务栈的栈顶位置,从而在后续的过程中,可结合栈顶应用及对应于栈顶应用的用户操作行为,确定应用调度的优先级。
根据第一方面,或者以上第一方面的任意一种实现方式,电子设备还执行以下步骤:获取对应于第二应用的操作事件;响应于第二应用的操作事件,触发第二应用,并将第二应用置于第二任务栈的栈顶位置。这样,电子设备可支持多前台应用的调度,并结合用户的操作行为,确定不同应用的调度的优先级。
根据第一方面,或者以上第一方面的任意一种实现方式,第一调度策略对应deadline组,第二调度策略对应top-app组,第三调度策略对应除deadline组和top-app组之外的其它组,deadline组、top-app组和其它组属于控制组cgroup,电子设备还执行以下步骤:基于单一应用的应用状态,确定对应于单一应用的目标cgroup,其中,目标cgroup对应的调度策略为对应于单一应用的调度策略。这样,通过将应用划分到对应的cgroup,可实现应用的不同优先级的调度。
根据第一方面,或者以上第一方面的任意一种实现方式,第一调度策略采用比第二调度策略和第三调度策略优先占用时间片的方式,第二调度策略采用比第三调度策略优先占用时间片的方式。这样,通过采用更激进的调度方式,使对应于第一调度策略的应用可优先获得时间片,而对于未存在用户操作事件的栈顶应用,由于其对应于第二调度策略,则该类应用可较之对应于第三调度策略的应用优先获得时间片,从而实现在保证第一调度策略对应的应用的流畅度的同时,提升第二调度策略对应的应用的流畅度。
根据第一方面,或者以上第一方面的任意一种实现方式,第一调度策略采用实时RT算法策略,第二调度策略采用公平调度CFS算法策略,第三调度策略采用CFS算法策略,其中,第二调度策略在CFS算法策略中的优先级高于第三调度策略在CFS算法策略中的优先级。这样,本申请通过将第一调度策略的算法设置为较之第二调度策略和第三调度策略更加激进,使得第一调度策略对应的应用可优先获得对应的资源,相应的第二调度策略对应的应用可较之第三调度对应的应用,优先获得资源,从而实现在保证第一调度策略对应的应用的流畅度的同时,提升第二调度策略对应的应用的流畅度。
根据第一方面,或者以上第一方面的任意一种实现方式,第一调度策略中的选核策略、调频策略、输入输出策略、网络请求策略和内存分配策略中的任一一种的优先级高于第二调度策略。这样,本申请退通过将第一调度策略中的各子策略,设置为较之第二调度策略和第三调度策略更加激进,使得第一调度策略对应的应用可优先获得对应的资源,相应的第二调度策略对应的应用可较之第三调度对应的应用,优先获得资源,从而实现在保证第一调度策略对应的应用的流畅度的同时,提升第二调度策略对应的应用的流畅度。
根据第一方面,或者以上第一方面的任意一种实现方式,操作事件包括以下至少之一:触摸操作事件、语音操作事件、隔空手势操作事件、输入操作事件。这样,电子设备可基于各类操作事件,识别对应于应用的用户操作行为,并结合用户操作行为,确定对应于应用的调度的优先级。
第二方面,提供给一种应用的调度方法。方法可以包括:对至少一个应用进行调度时,获取单一应用的应用状态,应用状态包括单一应用在所属任务栈中的位置和单一应用的操作事件状态;基于单一应用的应用状态,确定对应于单一应用的调度策略;基于对应于各应用的调度策略,对至少一个应用进行调度;其中,若单一应用位于所属任务栈的栈顶位置,且存在且存在对应于单一应用的操作事件,单一应用对应第一调度策略;若单一应用位于所属任务栈的栈顶位置,且在预定时长内未存在对应于单一应用的操作事件,单一应用对应第二调度策略;若单一应用位于所属任务栈的非栈顶位置,且不存在对应于单一应用的操作事件,单一应用对应第三调度策略;第一调度策略的优先级大于第二调度策略的优先级,第二调度策略的优先级大于第三调度策略的优先级。
根据第二方面,至少一个应用包括第一应用和第二应用,第一应用所属任务栈为第一任务栈,第二应用所属任务栈为第二任务栈。
根据第二方面,或者以上第二方面的任意一种实现方式,第一Display对应电子设备,第二Display对应另一电子设备,第一任务栈对应于第一Display,第二任务栈对应于第二Display;方法还包括:基于第二应用,对另一电子设备进行投屏。
根据第二方面,或者以上第二方面的任意一种实现方式,第一Display和第二Display对应电子设备,第一Display用于显示第一应用,第二Display用于显示第二应用,第一任务栈对应于第一Display,第二任务栈对应于第二Display。
根据第二方面,或者以上第二方面的任意一种实现方式,电子设备对应于第一Display;其中,若单一应用位于所属任务栈的非栈顶位置,且不存在对应于单一应用的操作事件,以及单一应用显示在第一Display上,单一应用对应第二调度策略;若单一应用位于所属任务栈的非栈顶位置,且不存在对应于单一应用的操作事件,以及单一应用未显示在第一Display上,单一应用对应第三调度策略。
根据第二方面,或者以上第二方面的任意一种实现方式,获取单一应用的应用状态之前,还包括:获取对应于第一应用的操作事件;响应于第一应用的操作事件,触发第一应用,并将第一应用置于第一任务栈的栈顶位置。
根据第二方面,或者以上第二方面的任意一种实现方式,获取单一应用的应用状态之前,还包括:获取对应于第二应用的操作事件;响应于第二应用的操作事件,触发第二应用,并将第二应用置于第二任务栈的栈顶位置。
根据第二方面,或者以上第二方面的任意一种实现方式,第一调度策略对应deadline组,第二调度策略对应top-app组,第三调度策略对应除deadline组和top-app组之外的其它组,deadline组、top-app组和其它组属于控制组cgroup,基于第一应用在第一任务栈中的位置和第一应用的操作事件状态,确定对应于第一应用的调度策略,包括:基于单一应用的应用状态,确定对应于单一应用的目标cgroup,其中,目标cgroup对应的调度策略为对应于单一应用的调度策略。
根据第二方面,或者以上第二方面的任意一种实现方式,第一调度策略采用比第二调度策略和第三调度策略优先占用时间片的方式,第二调度策略采用比第三调度策略优先占用时间片的方式。
根据第二方面,或者以上第二方面的任意一种实现方式,第一调度策略采用实时RT算法策略,第二调度策略采用公平调度CFS算法策略,第三调度策略采用CFS算法策略,其中,第二调度策略在CFS算法策略中的优先级高于第三调度策略在CFS算法策略中的优先级。
根据第二方面,或者以上第二方面的任意一种实现方式,第一调度策略中的选核策略、调频策略、输入输出策略、网络请求策略和内存分配策略中的任一一种的优先级高于第二调度策略。
根据第二方面,或者以上第二方面的任意一种实现方式,操作事件包括以下至少之一:触摸操作事件、语音操作事件、隔空手势操作事件、输入操作事件。
第三方面以及第三方面的任意一种实现方式分别与第一方面以及第一方面的任意一种实现方式相对应。第三方面以及第三方面的任意一种实现方式所对应的技术效果可参见上述第一方面以及第一方面的任意一种实现方式所对应的技术效果,此处不再赘述。
第四方面,提供一种计算机可读存储介质。该介质包括计算机程序,当计算机程序在电子设备上运行时,使得电子设备执行第二方面以及第二方面任意一项的应用的调用方法。
第四方面以及第四方面的任意一种实现方式与第二方面第二方面的任意一种实现方式相对应。第四方面以及第四方面的任意一种实现方式所对应的技术效果可参见上述第二方面以及第二方面的任意一种实现方式所对应的技术效果,此处不再赘述。
本申请中有关更多应用的调用,与上述的调用方式相类似,此处不再赘述。
附图说明
为了更清楚地说明本申请实施例的技术方案,下面将对本申请实施例的描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1为示例性示出的应用场景示意图;
图2为示例性示出的电子设备的框图;
图3为示例性示出的hierarchy的示意图;
图4为示例性示出的用户使用场景示意图;
图5a为示例性示出的应用分组示意图;
图5b为示例性示出的应用分组示意图;
图6为本申请提供的电子设备的软件结构框图;
图7a为示例性示出的堆栈示意图;
图7b为示例性示出的堆栈示意图;
图7c为示例性示出的堆栈示意图;
图8为本申请提供的cgroup划分的流程示意图;
图9a为示例性示出的堆栈示意图;
图9b为示例性示出的堆栈示意图;
图10a为本申请提供的应用的调用方法的流程示意图;
图10b为本申请提供的应用的调用方法的流程示意图;
图10c为本申请提供的应用的调用方法的流程示意图;
图10d为本申请提供的应用的调用方法的流程示意图;
图11a为示例性示出的应用分组示意图;
图11b为示例性示出的应用分组示意图;
图11c为示例性示出的应用分组示意图;
图11d为示例性示出的应用分组示意图;
图12为示例性示出的应用场景示意图;
图13为示例性示出的应用场景示意图;
图14为本申请提供的装置的结构示意图。
具体实施方式
下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
本文中术语“和/或”,仅仅是一种描述关联对象的关联关系,表示可以存在三种关系,例如,A和/或B,可以表示:单独存在A,同时存在A和B,单独存在B这三种情况。
本申请实施例的说明书和权利要求书中的术语“第一”和“第二”等是用于区别不同的对象,而不是用于描述对象的特定顺序。例如,第一目标对象和第二目标对象等是用于区别不同的目标对象,而不是用于描述目标对象的特定顺序。
在本申请实施例中,“示例性的”或者“例如”等词用于表示作例子、例证或说明。本申请实施例中被描述为“示例性的”或者“例如”的任何实施例或设计方案不应被解释为比其它实施例或设计方案更优选或更具优势。确切而言,使用“示例性的”或者“例如”等词旨在以具体方式呈现相关概念。
在本申请实施例的描述中,除非另有说明,“多个”的含义是指两个或两个以上。例如,多个处理单元是指两个或两个以上的处理单元;多个系统是指两个或两个以上的系统。
在本申请实施例的描述中,栈顶应用也可以称为前台应用,是指各任务栈中,对应于用户最后一次(最新一次)操作事件的应用。
图1所示为本申请实施例提供的应用场景示意图。如图1所示,应用场景包括第一电子设备100和第二电子设备200,本申请实施例中以第一电子设备100为手机,第二电子设备200为大屏为例进行说明,实际上,本申请实施例提供的应用的调度方法可以应用于手机、平板电脑、可穿戴设备、增强现实(augmented reality,AR)/虚拟现实(virtualreality,VR)设备等等电子设备与笔记本电脑、超级移动个人计算机(ultra-mobilepersonal computer,UMPC)、上网本、个人数字助理(personal digital assistant,PDA)、车载设备、大屏(或可称为智慧屏,电视)等电子设备相连接的场景下,本申请实施例对相连接的两个电子设备的具体类型不作任何限制。需要说明的是,本申请所述的“连接”可以是指无线连接,也可以是指有线连接,本申请不做限定。
在本申请实施例中,第一电子设备100可通过投屏的方式,将第一电子设备100上运行的应用在第二电子设备200上进行播放和/或显示,被投屏的应用可以为聊天应用、地图应用、音乐应用、视频应用等任一应用,本申请不做限定。
在本申请实施例中,第一电子设备100与第二电子设备200可选地提供可供用户操作的界面,或者是其它供用户输入或控制通道,使用户可以对第一电子设备100上的应用以及投屏到第二电子设备200上的应用进行操作。一个示例中,电子设备(包括第一电子设备100和第二电子设备200)可通过识别用户在触摸屏上的触摸动作,确定对应于应用的用户操作。另一个示例中,电子设备可通过输入设备,例如鼠标、键盘、按键等,识别对应于应用的用户操作。有一个示例中,电子设备可通过识别语音输入、隔空手势等,确定对应于应用的用户操作。
示例性的,图2示出了本申请实施例的电子设备100的示意性框图,图2虽然以图1中的第一电子设备100为例说明电子设备的结构,但本领域技术人员明了,图2中的电子设备的结构也适用于图1中的第二电子设备200。参照图2,电子设备100可以电子设备100可以包括处理器110,外部存储器接口120,内部存储器121,USB接口130,充电管理模块140,电源管理模块141,电池142,天线1,天线2,移动通信模块150,无线通信模块160,音频模块170,扬声器170A,受话器170B,麦克风170C,耳机接口170D,传感器模块180,按键190,马达191,指示器192,摄像头193,显示屏194,以及用户标识模块(subscriber identificationmodule,SIM)卡接口195等。其中传感器模块180可以包括压力传感器180A,陀螺仪传感器180B,气压传感器180C,磁传感器180D,加速度传感器180E,距离传感器180F,接近光传感器180G,指纹传感器180H,温度传感器180J,触摸传感器180K,环境光传感器180L,骨传导传感器180M等。
可以理解的是,本申请实施例示意的结构并不构成对电子设备100的具体限定。在本申请另一些实施例中,电子设备100可以包括比图示更多或更少的部件,或者组合某些部件,或者拆分某些部件,或者不同的部件布置。图示的部件可以以硬件,软件或软件和硬件的组合实现。
处理器110可以包括一个或多个处理单元,例如:处理器110可以包括应用处理器(application processor,AP),调制解调处理器,图形处理器(graphics processingunit,GPU),图像信号处理器(image signal processor,ISP),控制器,视频编解码器,数字信号处理器(digital signal processor,DSP),基带处理器,和/或神经网络处理器(neural-network processing unit,NPU)等。其中,不同的处理单元可以是独立的器件,也可以集成在一个或多个处理器中。
控制器可以根据指令操作码和时序信号,产生操作控制信号,完成取指令和执行指令的控制。
处理器110中还可以设置存储器,用于存储指令和数据。在一些实施例中,处理器110中的存储器为高速缓冲存储器。该存储器可以保存处理器110刚用过或循环使用的指令或数据。如果处理器110需要再次使用该指令或数据,可从所述存储器中直接调用。避免了重复存取,减少了处理器110的等待时间,因而提高了系统的效率。
USB接口130是符合USB标准规范的接口,具体可以是Mini USB接口,Micro USB接口,USB Type C接口等,可支持USB1.0、USB2.0、USB3.0和USB4.0或者更高标准USB规范在内的各种USB规范。示例性的,USB接口130可以包括一个或多个USB接口。
可以理解的是,本申请实施例示意的各模块间的接口连接关系,只是示意性说明,并不构成对电子设备100的结构限定。在本申请另一些实施例中,电子设备100也可以采用上述实施例中不同的接口连接方式,或多种接口连接方式的组合。
充电管理模块140用于从充电器接收充电输入。电源管理模块141用于连接电池142,充电管理模块140与处理器110。电子设备100的无线通信功能可以通过天线1,天线2,移动通信模块150,无线通信模块160,调制解调处理器以及基带处理器等实现。
天线1和天线2用于发射和接收电磁波信号。电子设备100中的每个天线可用于覆盖单个或多个通信频带。不同的天线还可以复用,以提高天线的利用率。例如:可以将天线1复用为无线局域网的分集天线。在另外一些实施例中,天线可以和调谐开关结合使用。
移动通信模块150可以提供应用在电子设备100上的包括2G/3G/4G/5G等无线通信的解决方案。移动通信模块150可以包括至少一个滤波器,开关,功率放大器,低噪声放大器(low noise amplifier,LNA)等。移动通信模块150可以由天线1接收电磁波,并对接收的电磁波进行滤波,放大等处理,传送至调制解调处理器进行解调。移动通信模块150还可以对经调制解调处理器调制后的信号放大,经天线1转为电磁波辐射出去。在一些实施例中,移动通信模块150的至少部分功能模块可以被设置于处理器110中。在一些实施例中,移动通信模块150的至少部分功能模块可以与处理器110的至少部分模块被设置在同一个器件中。
无线通信模块160可以提供应用在电子设备100上的包括无线局域网(wirelesslocal area networks,WLAN)(如无线保真(wireless fidelity,Wi-Fi)网络),蓝牙(bluetooth,BT),全球导航卫星系统(global navigation satellite system,GNSS),调频(frequency modulation,FM),近距离无线通信技术(near field communication,NFC),红外技术(infrared,IR)等无线通信的解决方案。无线通信模块160可以是集成至少一个通信处理模块的一个或多个器件。无线通信模块160经由天线2接收电磁波,将电磁波信号调频以及滤波处理,将处理后的信号发送到处理器110。无线通信模块160还可以从处理器110接收待发送的信号,对其进行调频,放大,经天线2转为电磁波辐射出去。
在一些实施例中,电子设备100的天线1和移动通信模块150耦合,天线2和无线通信模块160耦合,使得电子设备100可以通过无线通信技术与网络以及其他设备通信。所述无线通信技术可以包括全球移动通讯系统(global system for mobile communications,GSM),通用分组无线服务(general packet radio service,GPRS),码分多址接入(codedivision multiple access,CDMA),宽带码分多址(wideband code division multipleaccess,WCDMA),时分码分多址(time-division code division multiple access,TD-SCDMA),长期演进(long term evolution,LTE),BT,GNSS,WLAN,NFC,FM,和/或IR技术等。所述GNSS可以包括全球卫星定位系统(global positioning system,GPS),全球导航卫星系统(global navigation satellite system,GLONASS),北斗卫星导航系统(beidounavigation satellite system,BDS),准天顶卫星系统(quasi-zenith satellitesystem,QZSS)和/或星基增强系统(satellite based augmentation systems,SBAS)。
电子设备100可以通过ISP,摄像头193,视频编解码器,GPU,显示屏194以及应用处理器等实现拍摄功能。
外部存储器接口120可以用于连接外部存储卡,例如Micro SD卡,实现扩展电子设备100的存储能力。外部存储卡通过外部存储器接口120与处理器110通信,实现数据存储功能。例如将音乐,视频等文件保存在外部存储卡中。
电子设备100可以通过音频模块170,扬声器170A,受话器170B,麦克风170C,耳机接口170D,以及应用处理器等实现音频功能。例如音乐播放,录音等。
为使本领域人员更好的理解本申请的技术方案,下面结合图1所示的应用场景对可能涉及到的背景技术进行简单介绍。
1)控制组(control groups,cgroup)
具体的,cgroup以分组的形式对进程使用系统资源的行为进行管理和控制。也就是说,电子设备可通过cgroup对所有进程进行分组,再对分组整体进行资源的分配和控制。
具体的,每个cgroup中可以包括一个或多个进程,也可以不包括任何进程。如图3所示为层次等级(hierarchy)的示意图,hierarchy可以理解为一颗具有层次等级关系的cgroup树,树的每个节点就是一个cgroup,参照图3,示例性的,该进程树包括top-app(顶层应用)组、foreground(前台)组、system-background(系统后台)组和background(后台)组。需要说明的是,本申请中所示的各cgroup的数量和名称仅为示例性举例,本申请对此不作限定。
在Android系统中,基于应用(也可称为任务或进程)的前后台状态,可将应用划分到不同的cgroup中,从而对应用执行与其所属的cgroup对应的调度策略。举例说明,top-app组中可包括用户最后一次操作的应用,也可以称为焦点应用,foreground组中可包括导航栏、状态栏等应用,system-backgroud组包括系统运行的应用,例如,电池电量统计等应用,background组包括置于后台的应用,例如桌面应用,或其它切换到后台的应用。以上划分方式仅为示意性举例,本申请对此不作限定。
每个cgroup可与一个或多个子系统(subsystem)关联,subsystem是一个通过cgroup提供的工具和接口来管理进程集合的模块。一个subsystem就是一个典型的“资源控制器”,用来调度资源或者控制资源使用的上限。可以更通俗地理解为,一个subsystem提供一种调度策略,各cgroup绑定一个或多个subsystem,即单一cgroup对应一个或多个subsystem所提供的调度策略,cgroup绑定的一个或多个subsystem,即对应的一个或多个调度策略,构成cgroup的机制(mechanism)。
示例性的,subsystem如表1所示:
表1
子系统 | 作用 |
cpuset | 绑定cgroup到指定CPU |
cpu | 限制cgroup的CPU使用率 |
cpuacct | 统计cgroup的CPU使用率 |
schedtune | 选择CPU以及boost触发 |
参照表1,cpuset(CPU设置)用于指示cgroup绑定的CPU,举例说明,终端包括8个CPU核,分别为核0~核7(包括核0、核1、核2、核3、核4、核5、核6、核7),其中,核0~核3为小核、核4~核6为中核、核7为大核,需要说明的是,大核、中核与小核可选地是按照核的处理能力划分的,处理能力从大到小依次为:大核>中核>小核,下文中不再重复说明。示例性的,若cgroup绑定的subsystem为cpuset,且指示绑定核1和核2,即为将cgroup与核1和核2绑定,也就是说,核1和核2可用于对cgroup的进程进行调度。schedtune(调度调节)用于选择CPU,可以理解为对绑定的CPU核的选择,如上文所述,CPU可分为大核、中核和小核,可通过schedtune指示cgroup与大核、中核和/或小核绑定,以通过具有不同的处理能力的核对不同的cgroup进行调度。subsystem还包括但不限于表1中的cpuacct(CPU AccountingController,cpu统计器)和cpu等,可参照已有标准中的描述,此处不赘述。
2)调度策略
如上文所述,将cgroup绑定到不同的subsystem可实现调度策略的定制,调度策略可包括算法策略,亦可称为调度器类。
示例性的,算法策略如表2所示:
表2
参照表2,各算法策略对应有不同的优先级,示例性的,算法策略的优先级从高到低依次为:stop_sched_class->dl_sched_class->rt_sched_class->fair_sched_class->idle_sched_class。
具体的,将cgroup与算法策略绑定,可实现对cgroup分级的方式,通常情况下,与高优先级的算法策略绑定的cgroup优先运行,与低优先级的算法策略绑定的cgroup后运行,对应于相同优先级的算法策略cgroup中的进程可按照轮询方式进行调度,即一个接一个,重复进行,或可按照先入先出方式,即一个运行完成后再运行另一个。
举例说明,若两个cgroup对应同一个核,对应于rt_sched_class策略的cgroup的优先级高于对应于fair_sched_class策略的cgroup的优先级,对应于rt_sched_class策略的cgroup可优先获得时间片,即先运行。在对应于rt_sched_class策略的cgroup中的进程运行完成后,对应于fair_sched_class策略的cgroup再运行。其中,时间片是一个数值,它表明进程在被抢占前所能持续运行的时间,单一CPU核在一个时间片内只能调度一个进程。
通常情况下,cgroup绑定rt_sched_class(以下称为RT策略)或fair_sched_class(以下称为CFS策略)。
下面对RT策略和CFS策略进行简单介绍,其它算法策略可参照已有标准,本文不赘述。具体的,RT策略可包括轮询算法(或策略)或先入先出算法,在多个进程或cgroup均对应RT策略的情况下,可进一步通过进程对应轮询算法或先入先出算法,以确定多个进程的调度方式,例如,若多个进程对应轮询算法,则为多个进程轮询进行。若多个进程对应先入先出算法,则为先运行一个进程,待进程运行后,再运行下一个进程。
CFS策略是根据各个进程的权重分配运行时间,权重代表着进程对于CPU使用时间的占有率,所以它的大小跟进程优先级相关,优先级越高,抢占的CPU时间越多,因此它的权重就越大。其它算法策略的调度方式可参照已有标准中的描述,本申请不做限定。
需要说明的是,本申请所涉及的优先级分为两种,一种为不同调度策略之间的优先级,例如,RT策略的优先级高于CFS策略的优先级,因此,对应于RT策略的cgroup的优先级高于对应于CFS策略的cgroup。另一种优先级是指相同策略中的优先级,如上文所述,CFS策略中也分为高优先级和低优先级,在多个对应于CFS策略的cgroup中,可进一步分为高优先级的cgroup和低优先级的cgroup。因此,本申请所述的高优先级cgroup和低优先级cgroup可以是指具有不同调度策略的cgroup之间的优先级关系,也可以是指具有相同调度策略的cgroup之间的优先级关系,总体而言,高优先级的cgroup获得的资源优于低优先级的cgroup,下文中不再重复说明。
下面以一具体示例对上文所述各部分内容进行举例说明,结合图3,示例性的,各cgroup均对应CFS策略,其中,各cgroup在CFS策略中的优先级从大到小依次为:top-app组≥foreground组≥system-backgroud组≥background组,也就是说,top-app组的优先级最高,抢占的CPU时间最多,权重最大。示例性的,如图4所示为示例性示出的一种用户使用场景示意图,参照图4,手机(即第一电子设备)运行聊天应用,可选地能够在聊天应用界面接收用户输入文字,同时,手机将短视频应用镜像投屏至大屏(即第二电子设备),其中短视频应用运行在手机后台,在手机侧对用户不可见。在一些实施方案中,手机可以通过AndroidDisplay机制和Miracast投屏协议实现上面的场景。手机定义Display1和Display2,其中Display1用于生成在手机上显示的图像,Display2用于生成在大屏上显示的图像。其中,Display1对应的应用渲染后在手机上显示,Display2对应的应用渲染后经H.264编码后,通过Wi-Fi Direct技术将视频流发送至大屏,大屏经过H.264解码后将视频流显示在大屏的显示屏上。
可以理解的是,手机的后台还在运行着天气应用、音乐应用、桌面应用等。需要说明的是,在本申请中,投屏到大屏的应用是运行在手机上并显示在大屏上的,下文不再重复说明。
继续参照图4,目前的Android系统采用单一焦点机制,即只能存在一个焦点应用,焦点应用即为用户最后一次操作的应用。在一些实施方案中,Display2通过Miracast协议中的UIBC(User Input Back Channel,用户输入反向通道)功能实现焦点感知和焦点抢占。在该应用场景下,当手机接收的最近一次的输入作用于聊天应用,焦点应用(即聊天应用)将会被划分到高优先级的cgroup,即为top-app组,而短视频应用将会被划分到低优先级的cgroup,例如foreground组,低优先级的cgroup还可以包括background组等,background组中包括浏览器应用、音乐应用、桌面应用等,如图5a所示。示例性的,被划分到高优先级组(即top-app组)的聊天应用可优先分配资源,被划分到低优先级组的短视频应用将会与同在低优先级组的其它应用争抢资源,该种情况下,可能会使得短视频应用的数据失帧,即帧率降低,导致短视频应用卡顿。反之,若用户对大屏上的短视频应用进行操作,则短视屏应用获得焦点,即为焦点应用,并被划分到高优先级组(即top-app组),聊天应用则被划分到低优先级组,如图5b所示,则聊天应用将会与同在低优先级组的其它应用争抢资源,使得聊天应用的数据失帧,即帧率降低,造成聊天应用卡顿。
上述为对投屏场景下的多前台应用的调度过程中的卡顿现象的举例说明,本领域人员明了,在其它应用场景,例如,分屏场景、画中画等场景中同样可能存在由于焦点切换导致的非焦点应用卡顿的问题。需要说明的是,非焦点应用可以是可感知应用,也可以是不可感知应用。其中,“可感知”的应用是指用户可以在屏幕上看到的应用,“不可感知”的应用是指用户无法在屏幕上看到的应用,例如,音乐播放应用。
针对多前台应用并发场景下的应用卡顿问题,本申请提出一种应用的调度方法,通过增加一具有更高优先级的调度策略的deadline组,以一种更激进的方式优先获得调度资源,从而解决上述问题。可以理解的是,deadline只是一个示例,还可以为其他名称。
实施例一
图6为本申请实施例的电子设备100的软件结构框图。分层架构将软件分成若干个层,每一层都有清晰的角色和分工。层与层之间通过软件接口通信。在一些实施例中,电子设备的软件架构可分为两层:应用层310和操作系统层350,该操作系统可以为Android操作系统。
应用层310可以包括一系列应用程序包,应用程序包可以包括相机,图库,日历,通话,导航,音乐,短视频,聊天、社交、搜索等应用程序。在本申请另一些实施例中,相较于图6所示应用层包含的应用,电子设备100可包括更多或更少的应用,电子设备100也可包括完全不同的应用。
操作系统层350从上至下分别为框架(Framework)层320、核心库层330和内核层340。
框架层320为应用程序层的应用程序提供应用编程接口(ApplicationProgramming Interface,API)和编程框架,包括各种组件和服务来支持开发者的安卓开发。系统框架层包括一些预先定义的函数。如图6所示,系统框架层可包括活动管理服务(ActivityManagerService)、显示管理服务(DisplayManagerService)和输入管理服务(InputManagerService)等。ActivityManagerService为Android提供了管理Activity运行状态的系统服务,以及用于管理安卓中的其他组件运行状态,具体的,在本申请中,ActivityManagerService可用于对任务堆栈(以下简称堆栈)进行管理。DisplayManagerService用来管理显示的生命周期,它决定如何根据当前连接的物理显示设备和/或虚拟显示设备控制其逻辑显示,并且在状态更改时,向系统和应用程序发送通知等等。InputManagerService用于管理整个系统的输入部分,包括键盘、鼠标、触摸屏等等。
核心库层330是操作系统的核心部分,核心库包含两部分:一部分是java语言需要调用的功能函数,另一部分是安卓的核心库。核心库层330包括调度增强模块、输入/输出服务、核心服务、图形设备接口以及实现CPU或GPU图形处理的图形引擎(Graphics Engine)等。其中,调度增强模块用于基于从ActivityManagerService、DisplayManagerService以及InputManagerService获取到的信息,识别各应用的状态,以进一步确定对应于各应用的调度方式。具体执行方式将在下面的实施例中进行详细说明。
内核层340包括核调度执行模块、CPU驱动、GPU驱动以及显示控制器驱动等。各驱动用于将硬件抽象化,以隐藏硬件的特定通道,使应用可访问(或调用)硬件。在本申请中,内部调度执行模块基于调度增强模块的输入,对应用进行调度,具体执行方式将在下面的实施例中进行详细说明。
可以理解的是,图6中的软件结构框图仅仅是一个示例,还可选地为其他软件结构,例如相对于图6的软件结构具有不同的层数、功能模块相对于图6具有不同的命名和/或放置位置,本申请对此不做限定。
下面对堆栈的概念进行简单说明。堆栈中包括一个或多个应用的标识信息,示例性的,应用标识信息为进程标识(Process Identification,PID)。堆栈中的各PID的顺序用于表示用户操作应用的顺序,示例性的,置于栈顶的PID,可简称为栈顶PID,其所对应的应用,可称为栈顶应用,即为用户最后一次(最新一次)操作的应用。如果用户对另一应用进行操作,则另一应用的PID置于堆栈的顶部,原栈顶应用的PID下移。
示例性的,本申请中以第一电子设备的显示窗口记为Display1,第二电子设备的显示窗口记为Display2为例进行说明,需要说明的是,每个Display对应有各自的堆栈,如图7a所示为Display的堆栈示意图,参照图7a,Display1当前对应的堆栈中,各PID的顺序从上到下依次为PID11、PID12和PID13,也就是说,用户在第一电子设备的显示窗口,即Display1上最后一次操作的应用为PID11对应的应用。Display2当前对应的堆栈中,的顺序从上到下依次为PID21、PID22和PID23,也就是说,用户在第二电子设备的显示窗口,即Display2上最后一次操作的应用为PID21对应的应用。
一个示例中,若第一电子设备响应于检测到的用户操作,将PID11对应的应用切换到后台,并检测到用户当前对PID12对应的应用进行操作,则Display1的堆栈如图7b所示,即PID12置于栈顶,PID11下移,PID13位置不变。而由于第一电子设备未检测到用户对第二电子设备的显示窗口中显示的PID21对应的应用进行操作,则Display2当前对应的堆栈顺序不变。
另一个示例中,若第一电子设备响应于检测到的用户操作,确定用户对PID12对应的应用进行操作,同时,用户在第二电子设备的显示窗口对PID22对应的应用进行操作,则Display1和Display2的堆栈如图7c所示,即在Display1对应的堆栈中,PID12置于栈顶,PID11下移,PID13位置不变,在Display2对应的堆栈中,PID22置于栈顶,PID21下移,PID23位置不变。
需要说明的是,本申请所属的显示窗口,可以占用电子设备(包括第一电子设备或第二电子设备)的全部或部分屏幕,本申请不做限定。
进一步需要说明的是,本申请所述的用户对应用的操作包括但不限于:输入、触摸、点击、滑动,还可以为语音操作或非接触操作。示例性的,用户可通过语音,对第二电子设备说出“快进”指示,以使在第二电子设备上显示的短视频应用的播放进度条快进。示例性的,用户还可以通过隔空手势,控制第二电子设备上显示的短视屏应用的播放进度条快进,任一操作方式均可认为是本申请中可能的实现方式,本申请不做限定。
下面结合图6对本申请的技术方案进行详细说明。具体的,第一电子设备正在运行第一应用,期间,第一电子设备响应于接收到的用户的指令,将第二应用投屏到第二电子设备上,以使第二电子设备显示第二应用。需要说明的是,第一应用和第二应用可以为第一电子设备中的任一应用,本申请不做限定。
投屏成功后,DisplayManagerService向调度增强模块输入Display信息,ActivityManagerService向调度增强模块输入堆栈信息。
具体的,堆栈信息用于指示各Display当前的堆栈以及各堆栈中的PID及其排列顺序。Display信息用于指示当前包括的Display的数量和标识,示例性的,在本申请中,以第一电子设备的显示窗口为Display1,第二电子设备的显示窗口为Display2为例,即Display信息中包括Display1和Display2。
需要说明的是,本申请仅以两个Display为例进行说明,在其他实施例中,可以存在第三电子设备,对应Display3,本申请不做限定。
进一步需要说明的是,DisplayManagerService在Display变化的时候会向调度增强模块输入Display信息,例如,新增加了一个Display,则调度增强模块输入Display信息,Display信息包括Display1、Display2和Display3。
示例性的,第一电子设备中的InputManagerService响应于接收到的用户指令,识别用户对第一应用和/或第二应用的操作。
以用户对第一应用进行操作为例,一个示例中,如果第一应用的PID已置于Display1的堆栈的栈顶,则ActivityManagerService不对该堆栈进行更新。另一个示例中,如果第一应用的PID未置于栈顶,则ActivityManagerService对该堆栈进行更新,即将第一应用的PID置于栈顶,其它应用的PID下移。Display2的堆栈变化情况与Display1的类似,此处不赘述。
在一种可能的实现方式中,仍以用户对第一应用进行操作为例,如果第一应用的PID原本已置于Display1的栈顶,则InputManagerService向调度增强模块输入操作事件信息,以指示当前被操作的应用为第一应用。在另一种可能的实现方式中,如果第一应用的PID未置于栈顶,则InputManagerService向调度增强模块输入操作事件,并且,ActivityManagerService向调度增强模块输入堆栈变化信息。其中,堆栈变化信息用于指示Display的栈顶PID的变化,示例性的,堆栈变化信息包括更新的Display的标识信息,例如Display1,以及原栈顶应用的PID和更新后的栈顶应用(即第一应用)的PID。若用户对第二应用进行操作,则步骤与第一应用类似,此处不赘述。
具体的,调度增强模块可基于Display信息、堆栈信息、堆栈变化信息和/或操作事件信息,确定各应用的cgroup。
示例性的,在本申请中,cgroup包括:高优先级组、中优先级组和低优先级组。示例性的,高优先级组可以为deadline组,中优先级组可以为top-app组,低优先级组可以包括但不限于:foreground组、system-backgroud组和background组。
在本申请中,deadline组可采用较之top-app组更加激进的调度策略,以使属于deadline组中的应用可优先获得调度资源。并且,top-app组的调度策略的优先级高于其他组,以使得top-app组的比除deadline组以外的其它组优先获得调度资源,从而提升deadline组和top-app组中的应用的帧率,以减少失帧,进而提升数据的响应时延和完成时延,以提高应用数据的流畅度。
在本申请中,各cgroup的调度策略可进一步包括以下至少之一:算法策略、选核策略、调频策略、抢占策略、IO执行策略、内存分配策略、网络请求策略等。
示例性的,deadline组对应的调度策略中可包括上述至少两个策略,并且,各策略可较之top-app组的策略更加激进,以实现deadline组的资源优先分配。举例说明:一个示例中,deadline组的算法策略可以为RT策略,选核策略为优先选择大核或中核,top-app组的算法策略为CFS策略,选核策略为优先选择中核,其他组的算法策略为CFS策略,选核策略为根据负载进行选核。另一个示例中,deadline组的算法策略为RT策略,选核策略为优先选择大核或中核,调频策略为快速4ms调频,top-app组的算法策略为CFS策略,选核策略为优先选择中核,调频策略为中速8ms调频,其它组的算法策略为CFS策略,选核策略为根据负载进行选核,调频策略为正常20ms调频。
下面结合图8对调度增强模块对应用的cgroup划分进行详细说明。参照图8,具体包括:
S101,调度增强模块接收堆栈变化信息和/或操作事件信息。
示例性的,调度增强模块可基于ActivityManagerService输入的堆栈变化信息,确定栈顶应用是否发生变化。需要说明的是,如前所述,如果栈顶应用变化,通常是由于对应存在操作事件,也就是说,调度增强模块接收到堆栈变化信息和操作事件信息,执行步骤102。
另一个示例中,若调度增强模块接收到操作事件信息,而未接收到堆栈变化信息,执行步骤103。
S102,调度增强模块确认将栈顶应用划分到高优先级组,将原栈顶应用划分到低优先级组。
在一些可能的实施例中,若调度增强模块只收到操作事件信息,没有收到堆栈变化信息,则将当前缓存的任务栈的栈顶应用划分到高优先级组。若调度增强模块收到操作事件信息和堆栈变化信息,则将新任务栈的栈顶应用划分到高优先级组,同时将变化前的任务栈的栈顶应用划分到低优先级组。
S103,调度增强模块确认沿用栈顶应用的当前分组。
示例性的,调度增强模块可记录有当前栈顶应用的分组情况,若调度增强模块仅接收到操作事件信息,而未接收到栈顶应用变化信息,则仍沿用栈顶应用的当前分组,即确认当前栈顶应用仍属于高优先级组。
在另一种可能的实现方式中,若调度增强模块记录的当前栈顶应用属于高优先级组,而在在预定时长,例如2s内,调度增强模块未接收到InputManagerService输入的,对应于栈顶应用的操作事件信息,则确定当前不存在对应于栈顶应用的操作事件,并将当前栈顶应用划分到中优先级组,例如top-app组。示例性的,调度增强模块可设置有定时器,计时时长为2s,当计时器到时候将当前栈顶应用划分到中优先级组。示例性的,调度增强模块每次接收到操作事件信息后,重新启动该定时器,即重新从2S开始计时。
综上,调度增强模块对应用与cgroup之间的划分规则如下:
1)deadline组:应用为栈顶应用,并且栈顶应用对应有操作事件。
2)top-app组:应用为栈顶应用,并且栈顶应用未对应操作事件。
3)其他组:应用为非栈顶应用。
在一些可能的实施方式中,top-app组还可能包括非栈顶应用,且这些应用为可感知应用,例如放音应用、视频播放应用等。通过这种方式,能够在保障焦点应用运行的同时,保障用户的感知体验。
在一种可能的实现方式中,各cgroup(包括deadline组、top-app组和其他组)中可包括一个或多个应用。其中,deadline组中的应用越多,则该组所获得的调度资源越多,例如,由于其采用更加激进的调频策略,其占用的CPU核可快速调频到多个应用对应的频率。
其它应用与cgroup的划分可参照已有技术中的描述,本申请不做限定。
具体的,调度增强模块确认应用对应的cgroup后,可将划分结果输入至内核调度执行模块,以使内核调度执行模块基于调度增强模块对应用的划分结果,将应用划分至对应的cgroup,并基于cgroup对应的调度策略,对应用进行调用。
下面以几个具体实施例对上述方法进行详细说明。
示例性的,在下面的几个实施例中,均以当前第一电子设备上正在运行新闻应用和短视频应用、并且,第一电子设备向第二电子设备投屏社交应用与搜索应用为前提进行说明。示例性的,第一电子设备的Display1的堆栈与第二电子设备的Display2的堆栈的示意图如图9a所示。示例性的,当前的分组情况为:新闻应用与社交应用属于top-app组,短视频应用于搜索应用属于其他组,例如background组。示例性的,调度增强模块记录有当前各Display的栈顶应用的PID。
下面结合图10a对第一电子设备与第二电子设备的应用的调用方法进行详细说明。
S201,ActivityManagerService向调度增强模块输入堆栈变化信息,InputManagerService向调度增强模块输入操作事件信息。
示例性的,第一电子设备响应于检测到的用户的触摸动作,触发聊天应用并获取用户输入的字符。相应的,ActivityManagerService对Display1的堆栈进行更新,示例性的,更新后的堆栈如图9b所示,聊天应用的PID置于Display1的栈顶,新闻应用和短视频应用的PID依次下移。
示例性的,ActivityManagerService向调度增强模块输入堆栈变化信息,堆栈变化信息包括Display1、原栈顶应用(即新闻应用)的PID以及当前栈顶应用(即聊天应用)的PID。
示例性的,InputManagerService基于检测到的用户的触摸动作,生成对应的操作事件信息,操作事件信息包括聊天应用的PID和操作事件指示,用于指示聊天应用对应有操作事件。InputManagerService向调度增强模块输入该操作事件信息。
S202a,调度增强模块判定Display1的栈顶应用是否发生变化。
示例性的,在本实施例中,调度增强模块基于ActivityManagerService输入的堆栈变化信息,确定Display1的栈顶应用发生变化,即栈顶应用变为聊天应用,执行S203a。
S203a,调度增强模块确定将聊天应用划分到deadline组,将新闻应用划分到background组。
示例性的,调度增强模块可确定聊天应用为Display1的堆栈的栈顶应用,并对应有操作事件,符合deadline组的规则(概念见上文),调度增强模块确认将聊天应用划分到deadline组,并将原栈顶应用(即新闻应用)划分到低优先级组,例如background组。
S202b,调度增强模块判定Display2的栈顶应用是否发生变化。
示例性的,在本实施例中,调度增强模块基于ActivityManagerService输入的堆栈变化信息,确定Display2的栈顶应用未发生变化,即栈顶应用仍为社交应用,执行S203b。
S203b,调度增强模块判定栈顶应用是否对应操作事件。
示例性的,调度增强模块进一步判定Display2的栈顶应用(即社交应用)未存在对应的操作事件,则基于Display2的堆栈未发生变化,且并未对应有操作事件,则调度增强模块确定社交应用仍然属于top-app组,搜索应用仍然属于其他组。如图11a为本实施例中各应用的cgroup划分示意图。需要说明的是,图11a~d中仅示出了deadline组、top-app组和background组,在其他实施例中,还可以包括foreground组等,本申请不做限定。
S204,调度增强模块将聊天应用和新闻应用的分组信息输入至内核调度执行模块。
示例性的,调度增强模块确认将聊天应用以及社交应用的分组变化后,向内核调度执行模块输入聊天应用的PID和聊天应用对应的cgroup(即deadline组)信息,以及新闻应用的PID和新闻应用对应的cgroup(即background)信息,以向内核调度执行模块指示应用与cgroup的对应关系。示例性的,cgroup信息可以为cgroup对应的内核的文件节点信息。
示例性的,调度增强模块记录当前各Display的栈顶应用的PID,即,调度增强模块Display1的栈顶应用(即聊天应用)的PID和Display2的栈顶应用(即社交应用)的PID。可选地,调度增强模块还可以记录各栈顶应用对应的cgroup。
需要说明的是,调度增强模块仅向内核调度执行模块输入cgroup发生变化的应用,而对于其它cgroup未发生变化的应用,则内核调度执行模块仍按照原有分组对其进行调度
S205,内核调度执行模块基于聊天应用和新闻应用的分组信息,将聊天应用划分到deadline组,将新闻应用划分到background组。
示例性的,内核调度执行模块可根据调度增强模块的指示,将聊天应用划分到对应的deadline组,并将新闻应用划分到background组,其它应用仍属于原有分组。
S206,内核调度执行模块基于cgroup的调度策略,对应用进行调度。
示例性的,内核调度执行模块可按照各cgroup的调度策略,对cgroup中的一个或多个进程进行调度。具体的,属于deadline分组的聊天应用,采用RT调度策略,将会抢占其他组的调度资源,以优先进行调度,top-app组中的社交应用可抢占除deadline组以外的cgroup的调度资源,以优先进行调度。举例说明,社交应用原运行在CPU的大核上,在本实施例中,聊天应用优先选择大核进行调度,将抢占社交应用的大核上的时间片,社交应用可选择中核进行调度,其中,若其它cgroup的应用同样占用中核,则社交应用将优先获得中核的时间片,即社交应用的优先级高于其他组的应用的优先级。
下面结合图10b对第一电子设备与第二电子设备的应用的调用方法进行详细说明。其中,图10b的示例可以是接在S206后的步骤。
S301,InputManagerService向调度增强模块输入操作事件信息。
示例性的,第二电子设备响应于用户的指令,确定用户对社交应用进行操作,其中,由于社交应用的PID已置于Display2的栈顶,因此,ActivityManagerService无需更新Display2的堆栈,并且,由于第一电子设备未检测到用户的任何操作,则Display1的堆栈未更新,即当前堆栈的示意图仍可参照图9b。
示例性的,由于各堆栈无变化,ActivityManagerService无需向调度增强模块输入堆栈的相关信息。InputManagerService向调度增强模块输入操作事件信息,用于指示社交应用对应有操作事件,其他细节可参照S201。
S302a,调度增强模块判定Display1的栈顶应用是否发生变化。
示例性的,在本实施例中,调度增强模块未接收到ActivityManagerService输入的堆栈变化信息,则确定Display1的栈顶应用未变化,栈顶应用仍为调度增强模块当前记录的新闻应用。
S303a,调度增强模块判定栈顶应用是否对应操作事件。
示例性的,调度增强模块进一步判定在预定时长2s内,Display1的栈顶应用未存在对应的操作事件。
S302b,调度增强模块判定Display2的栈顶应用是否发生变化。
示例性的,在本实施例中,调度增强模块未接收到ActivityManagerService输入的堆栈变化信息,则确定Display2的栈顶应用未变化,栈顶应用仍为调度增强模块当前记录的社交应用。
S303b,调度增强模块判定栈顶应用是否对应操作事件。
示例性的,调度增强模块进一步判定在预定时长2s内,Display2的栈顶应用(即社交应用)存在对应的操作事件。
S304,调度增强模块确定将聊天应用划分到top-app组,将社交应用划分到deadline组。
示例性的,调度增强模块确定当前Display1的栈顶应用仍然为调度增强模块记录的聊天应用,并且,在预定时长2s内,不存在对应于聊天应用的操作事件,则确定聊天应用符合top-app组的划分规则,确定将聊天应用划分到top-app组。在一种可能的实现方式中,若未到达预定时长,则调度增强模块仍然将聊天应用划分到deadline组。
示例性的,调度增强模块确定Display2的栈顶以仍然为当前记录的社交应用,并且对应有操作事件,则确定社交应用符合deadline组的划分规则,调度增强模块确定将社交应用划分到deadline组,如图11b为本实施例中各应用的cgroup划分示意图。
S305,调度增强模块将聊天应用和社交应用的分组信息输入至内核调度执行模块。
示例性的,调度增强模块向内核调度执行模块输入聊天应用的PID以及聊天应用对应的cgroup(即top-app组),以及,社交应用的PID以及社交应用对应的cgroup(即deadline组),以向内核调度执行模块指示应用与cgroup的对应关系。
示例性的,调度增强模块记录当前各Display的栈顶应用的PID,即,调度增强模块Display1的栈顶应用(即聊天应用)的PID和Display2的栈顶应用(即社交应用)的PID。可选地,调度增强模块还可以记录各栈顶应用对应的cgroup。
S306,内核调度执行模块基于聊天应用和社交应用的分组信息,将聊天应用划分到top-app组,将社交应用划分到deadline组。
S307,内核调度执行模块基于cgroup的调度策略,对应用进行调度。
在S301~S307中,未描述事宜,与S201~S206相同或相类似,此处不再赘述。
下面结合图10c对第一电子设备与第二电子设备的应用的调用方法进行详细说明。其中,图10c的示例可以是接在S306后的步骤。
S401,调度增强模块判定Display1和Display2的栈顶应用是否发生变化。
示例性的,第一电子设备在2s内未检测到用户对第一电子设备和第二电子设备上的应用进行操作,则ActivityManagerService和InputManagerService均不会向调度增强模块输入信息,调度增强模块可判定确定Display1和Display2的栈顶应用未变化,仍为当前记录的聊天应用和社交应用。
S402,调度增强模块判定栈顶应用是否对应操作事件。
示例性的,调度增强模块可进一步判定在预定时长2s内,各栈顶应用未存在对应的操作事件。
S403,调度增强模块确定将社交应用划分到top-app组。
示例性的,调度增强模块基于已记录的Display1和Display2的栈顶应用的PID,确定Display2的栈顶应用(即社交应用)不存在对应的操作事件,符合top-app组的划分规则(概念参见上文),调度增强模块可进一步确定将社交应用划分到top-app组。并且,调度增强模块确认Display1的栈顶应用(即聊天应用)仍然为栈顶应用,且不存在对应的操作事件,其仍然属于top-app组。如图11c为本实施例中各应用的cgroup划分示意图。
S404,调度增强模块将社交应用的分组信息输入至内核调度执行模块。
S405,内核调度执行模块将社交应用划分到top-app组。
S406,内核调度执行模块基于cgroup的调度策略,对应用进行调度。
在S401~S406中,未描述事宜,与S201~S206相同或相类似,此处不再赘述。
下面结合图10d对第一电子设备与第二电子设备的应用的调用方法进行详细说明。其中,图10d的示例可以是接在S405后的步骤。
S501,InputManagerService向调度增强模块输入操作事件信息。
示例性的,第一电子设备和第二电子设备响应于用户的操作,确定用户对第一电子设备上的聊天应用和第二电子设备上的社交应用进行操作,InputManagerService向调度增强模块输入操作事件信息,以指示聊天应用和社交应用对应有操作事件。并且,由于Display1和Display2的堆栈未变化,ActivityManagerService无需向调度增强模块输入堆栈相关的信息。
S502,调度增强模块判定Display1和Display2的栈顶应用是否发生变化。
示例性的,调度增强模块未接收到ActivityManagerService的堆栈变化信息,确定Display1和Display2的堆栈未变化,栈顶应用仍然为当前记录的聊天应用和社交应用。
S503,调度增强模块判定栈顶应用是否对应操作事件。
示例性的,在本实施例中,调度增强模块基于InputManagerService输入的操作事件信息,确定聊天应用与社交应用均对应有操作事件。
S504,调度增强模块确定将聊天应用和社交应用划分到deadline组。
示例性的,在本实施例中,聊天应用与社交应用均为栈顶应用,且对应有操作事件,符合deadline组的划分规则,调度增强模块确认将聊天应用和社交应用均划分到deadline组,如图11d为本实施例中各应用的cgroup划分示意图。
S505,调度增强模块将聊天应用和社交应用的分组信息输入至内核调度执行模块。
S506,内核调度执行模块基于聊天应用和社交应用的分组信息,将聊天应用和社交应用划分到deadline组。
S507,内核调度执行模块基于cgroup的调度策略,对应用进行调度。
在一种可能的实现方式中,若用户在2s内未对第一电子设备和第二电子设备上的应用进行操作,则聊天应用和社交应用再次被划分到top-app组,具体细节可参照上述步骤,此处不赘述。
在一种可能的实现方式中,本申请的应用调度方法还可以应用于分屏场景下,如图12所示为分屏场景的示意图,参照图12,示例性的,第一电子设备可基于用户的操作,执行分屏操作,即,在屏幕上存在至少两个显示窗口,每个显示窗口可显示至少一个应用。可选地,在该场景下,每个显示窗口可记为一个Display,其具体实现方式与异源投屏场景相同或相似,可参照上文中的任一方法实施例,此处不赘述。
在另一种可能的实现方式中,本申请的应用调度方法还可以应用于画中画场景下,如图13所示为画中画场景的示意图,参照图13,示例性的,画中画场景可以理解为在运行一个应用(例如网页应用)的同时,显示窗口上还可以包括一个子显示窗口,用于显示另外一个应用(例如视频应用),在该场景下,ActivityManagerService可向调度增强模块输入感知信息,用于指示应用是否可以感知。其中,可感知即为该应用的画面当前对用户可见,则对于该类应用,调度增强模块将该类应用划分至top-app组,也就是说,该类应用虽然为非栈顶应用,且未对应操作事件,但是,仍可属于top-app组,从而使画中画应用能够优先获取资源,以缩短应用响应时间,提升应用流畅度,防止卡顿现象发生。
需要说明的是,本申请以投屏场景、分屏场景以及画中画场景等多前台并发场景为例进行说明,在其他实施例中,存在多前台并发的任意场景均可适用本申请中的技术方案,本申请对此不做限定。
基于本申请的应用的调度方法,其得到的收益可通过检测工具进行测量,如表3所示为第一电子设备运行短视频应用,并将地图应用投屏到第二电子设备的场景下,通过检测工具测出的帧率。如表4所示为第一电子设备运行社交应用,并将地图应用投屏到第二电子设备的场景下,通过检测工具测出的帧率。
表3
表4
参照表3和表4,可见,通过本申请所述的应用的调用方法优化后,应用的帧率较之优化前有明显提高,帧率的提高意味着失帧率降低。
综上,本申请通过结合应用在任务栈中的位置以及用户操作事件,对应用进行不同优先级别的调度,从而有效提升应用的流畅度,防止卡顿现象的发生。
可以理解的是,电子设备为了实现上述功能,其包含了执行各个功能相应的硬件和/或软件模块。结合本文中所公开的实施例描述的各示例的算法步骤,本申请能够以硬件或硬件和计算机软件的结合形式来实现。某个功能究竟以硬件还是计算机软件驱动硬件的方式来执行,取决于技术方案的特定应用和设计约束条件。本领域技术人员可以结合实施例对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本申请的范围。
本实施例可以根据上述方法示例对电子设备进行功能模块的划分,例如,可以对应各个功能划分各个功能模块,也可以将两个或两个以上的功能集成在一个处理模块中。上述集成的模块可以采用硬件的形式实现。需要说明的是,本实施例中对模块的划分是示意性的,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式。
在另一个示例中,图14示出了本申请实施例的一种装置300的示意性框图装置300可包括:处理器301和收发器/收发管脚302,可选地,还包括存储器303。
装置300的各个组件通过总线304耦合在一起,其中总线304除包括数据总线之外,还包括电源总线、控制总线和状态信号总线。但是为了清楚说明起见,在图中将各种总线都称为总线304。
可选地,存储器303可以用于前述方法实施例中的指令。该处理器301可用于执行存储器303中的指令,并控制接收管脚接收信号,以及控制发送管脚发送信号。
装置300可以是上述方法实施例中的第一电子设备或第二电子设备。
其中,上述方法实施例涉及的各步骤的所有相关内容均可以援引到对应功能模块的功能描述,在此不再赘述。
本实施例还提供一种计算机存储介质,该计算机存储介质中存储有计算机指令,当该计算机指令在电子设备上运行时,使得电子设备执行上述相关方法步骤实现上述实施例中的应用的调用方法。
本实施例还提供了一种计算机程序产品,当该计算机程序产品在计算机上运行时,使得计算机执行上述相关步骤,以实现上述实施例中的应用的调用方法。
另外,本申请的实施例还提供一种装置,这个装置具体可以是芯片,组件或模块,该装置可包括相连的处理器和存储器;其中,存储器用于存储计算机执行指令,当装置运行时,处理器可执行存储器存储的计算机执行指令,以使芯片执行上述各方法实施例中的应用的调用方法。
其中,本实施例提供的电子设备、计算机存储介质、计算机程序产品或芯片均用于执行上文所提供的对应的方法,因此,其所能达到的有益效果可参考上文所提供的对应的方法中的有益效果,此处不再赘述。
通过以上实施方式的描述,所属领域的技术人员可以了解到,为描述的方便和简洁,仅以上述各功能模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能模块完成,即将装置的内部结构划分成不同的功能模块,以完成以上描述的全部或者部分功能。
在本申请所提供的几个实施例中,应该理解到,所揭露的装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,模块或单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个装置,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是一个物理单元或多个物理单元,即可以位于一个地方,或者也可以分布到多个不同地方。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本申请各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
本申请各个实施例的任意内容,以及同一实施例的任意内容,均可以自由组合。对上述内容的任意组合均在本申请的范围之内。
集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个可读取存储介质中。基于这样的理解,本申请实施例的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该软件产品存储在一个存储介质中,包括若干指令用以使得一个设备(可以是单片机,芯片等)或处理器(processor)执行本申请各个实施例方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(read only memory,ROM)、随机存取存储器(random access memory,RAM)、磁碟或者光盘等各种可以存储程序代码的介质。
上面结合附图对本申请的实施例进行了描述,但是本申请并不局限于上述的具体实施方式,上述的具体实施方式仅仅是示意性的,而不是限制性的,本领域的普通技术人员在本申请的启示下,在不脱离本申请宗旨和权利要求所保护的范围情况下,还可做出很多形式,均属于本申请的保护之内。
Claims (15)
1.一种应用的调度方法,应用于电子设备,其特征在于,包括:
在第一电子设备运行第一应用、第二应用、第三应用,且所述第一应用和所述第二应用在所述第一电子设备上显示,所述第三应用在第二电子设备上显示的情况下,对所述第一应用和所述第三应用采用第二调度策略,对所述第二应用采用第三调度策略;其中,所述第一应用为最近一次接收用户操作的应用;
检测到对所述第二应用的第一用户操作,对所述第二应用采用第一调度策略,对所述第一应用采用所述第三调度策略;
若第一阈值时间内未检测到对所述第二应用的第二用户操作,对所述第二应用采用所述第二调度策略;
若第一阈值时间内检测到对所述第二应用的所述第二用户操作,对所述第二应用采用所述第一调度策略;
其中,所述第一调度策略的系统资源分配优先级大于所述第二调度策略,所述第二调度策略的系统资源分配优先级大于所述第三调度策略。
2.根据权利要求1所述的方法,其特征在于,所述第一应用和所述第二应用所属的任务栈为第一任务栈,所述第三应用所属的任务栈为第二任务栈。
3.根据权利要求2所述的方法,其特征在于,所述方法还包括:
在检测到对所述第二应用的所述第一用户操作,对所述第二应用采用所述第一调度策略前,所述第一应用位于所述第一任务栈的栈顶位置,所述第二应用位于所述第一任务栈的非栈顶位置,所述第三应用位于所述第二任务栈的栈顶位置;
在检测到对所述第二应用的所述第一用户操作,对所述第二应用采用所述第一调度策略后,所述第二应用位于所述第一任务栈的栈顶位置,所述第一应用位于所述第一任务栈的非栈顶位置,所述第三应用位于所述第二任务栈的栈顶位置。
4.根据权利要求1至3中任一所述的方法,其特征在于,所述第一应用和所述第二应用对应的Display为第一Display,所述第三应用对应的Display为第二Display。
5.根据权利要求1至4中任一所述的方法,其特征在于,所述第一调度策略对应deadline组,所述第二调度策略对应top-app组,所述第三调度策略对应foreground组,background组以及system-background组。
6.根据权利要求1至5中任一所述的方法,其特征在于,所述第一调度策略采用比所述第二调度策略和所述第三调度策略优先占用时间片的方式,所述第二调度策略采用比所述第三调度策略优先占用时间片的方式。
7.根据权利要求1至6中任一所述的方法,其特征在于,所述第一调度策略采用实时RT算法策略,所述第二调度策略采用公平调度CFS算法策略,所述第三调度策略采用CFS算法策略,其中,所述第二调度策略在CFS算法策略中的优先级高于所述第三调度策略在CFS算法策略中的优先级。
8.根据权利要求1至7中任一所述的方法,其特征在于,所述第一调度策略的选核策略、调频策略、输入数据策略、网络请求和内存分配策略中至少一个在系统资源分配时的优先级高于所述第二调度策略。
9.根据权利要求1至8中任一所述的方法,其特征在于,所述第三应用在所述第二电子设备上显示,包括:所述第三应用通过投屏技术在所述第二电子设备上显示。
10.根据权利要求1至9中任一所述的方法,其特征在于,所述第一电子设备为手机,所述第二电子设备为车机;或
所述第一电子设备为手机,所述第二电子设备为笔记本电脑;或
所述第一电子设备为手机,所述第二电子设备为平板电脑。
11.根据权利要求1至10中任一所述的方法,其特征在于,所述第二应用为后台应用或以最小化窗口的形式显示。
12.根据权利要求1所述的方法,其特征在于,所述方法还包括:
检测到对所述第三应用的第三用户操作,对所述第三应用采用所述第一调度策略,对所述第一应用采用所述第二调度策略,对所述第二应用采用所述第三调度策略;
若第二阈值时间内未检测到对所述第三应用的第四用户操作,对所述第三应用采用所述第二调度策略;
若第二阈值时间内检测到对所述第三应用的所述第四用户操作,对所述第三应用采用所述第一调度策略。
13.根据权利要求1至11任一项所述的方法,其特征在于,所述第一用户操作和所述第二用户操作为以下项中的至少一项:触摸操作、语音操作、隔空手势操作和输入操作。
14.一种计算机可读存储介质,包括计算机程序,其特征在于,当所述计算机程序在电子设备上运行时,使得所述电子设备执行如权利要求1-11中任意一项所述的应用的调用方法。
15.一种电子设备,其特征在于,所述电子设备包括存储器和一个或多个处理器;其中,所述存储器用于存储计算机程序代码,所述计算机程序代码包括计算机指令;当所述计算机指令被所述处理器执行时,使得所述电子设备执行如权利要求1至11中任一项所述的应用的调用方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010990204.XA CN112231077B (zh) | 2020-07-24 | 2020-07-24 | 应用的调度方法及电子设备 |
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010990204.XA CN112231077B (zh) | 2020-07-24 | 2020-07-24 | 应用的调度方法及电子设备 |
CN202010725146.8A CN113806030A (zh) | 2020-07-24 | 2020-07-24 | 应用的调度方法及电子设备 |
Related Parent Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010725146.8A Division CN113806030A (zh) | 2020-07-24 | 2020-07-24 | 应用的调度方法及电子设备 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN112231077A true CN112231077A (zh) | 2021-01-15 |
CN112231077B CN112231077B (zh) | 2021-10-19 |
Family
ID=74130453
Family Applications (2)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010725146.8A Pending CN113806030A (zh) | 2020-07-24 | 2020-07-24 | 应用的调度方法及电子设备 |
CN202010990204.XA Active CN112231077B (zh) | 2020-07-24 | 2020-07-24 | 应用的调度方法及电子设备 |
Family Applications Before (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010725146.8A Pending CN113806030A (zh) | 2020-07-24 | 2020-07-24 | 应用的调度方法及电子设备 |
Country Status (1)
Country | Link |
---|---|
CN (2) | CN113806030A (zh) |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114340021B (zh) * | 2022-03-03 | 2022-08-12 | 荣耀终端有限公司 | 一种请求处理方法及设备 |
CN116196621B (zh) * | 2023-05-05 | 2023-10-03 | 荣耀终端有限公司 | 应用处理方法及相关装置 |
Citations (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102841804A (zh) * | 2012-06-27 | 2012-12-26 | 北京三星通信技术研究有限公司 | 同屏多前台任务处理方法及装置 |
CN103164269A (zh) * | 2011-12-08 | 2013-06-19 | 中兴通讯股份有限公司 | 一种多窗口显示应用程序的方法及终端 |
CN103902359A (zh) * | 2014-03-31 | 2014-07-02 | 深圳创维-Rgb电子有限公司 | 基于Android系统内存优化与应用调度方法及系统 |
US9258614B2 (en) * | 2013-03-15 | 2016-02-09 | Time Warner Cable Enterprises Llc | System and method for resolving scheduling conflicts in multi-tuner devices and systems |
CN105786540A (zh) * | 2014-12-24 | 2016-07-20 | 中国移动通信集团公司 | 一种应用管理方法及电子设备 |
CN107168803A (zh) * | 2017-05-19 | 2017-09-15 | 努比亚技术有限公司 | 一种cpu资源分配方法和终端 |
CN107436801A (zh) * | 2017-06-23 | 2017-12-05 | 努比亚技术有限公司 | I/o资源调度方法、终端和计算机可读存储介质 |
CN107832113A (zh) * | 2017-10-26 | 2018-03-23 | 青岛海信移动通信技术股份有限公司 | 一种Android系统应用程序的界面显示方法及装置 |
CN109690465A (zh) * | 2016-12-07 | 2019-04-26 | 华为技术有限公司 | 一种存储设备管理方法及用户终端 |
CN109857539A (zh) * | 2017-11-30 | 2019-06-07 | 阿里巴巴集团控股有限公司 | 资源调度方法和终端 |
CN110489228A (zh) * | 2019-07-16 | 2019-11-22 | 华为技术有限公司 | 一种资源调度的方法和电子设备 |
US20190370091A1 (en) * | 2018-06-03 | 2019-12-05 | Apple Inc. | Multi-process model for cross-platform applications |
-
2020
- 2020-07-24 CN CN202010725146.8A patent/CN113806030A/zh active Pending
- 2020-07-24 CN CN202010990204.XA patent/CN112231077B/zh active Active
Patent Citations (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103164269A (zh) * | 2011-12-08 | 2013-06-19 | 中兴通讯股份有限公司 | 一种多窗口显示应用程序的方法及终端 |
CN102841804A (zh) * | 2012-06-27 | 2012-12-26 | 北京三星通信技术研究有限公司 | 同屏多前台任务处理方法及装置 |
US9258614B2 (en) * | 2013-03-15 | 2016-02-09 | Time Warner Cable Enterprises Llc | System and method for resolving scheduling conflicts in multi-tuner devices and systems |
CN103902359A (zh) * | 2014-03-31 | 2014-07-02 | 深圳创维-Rgb电子有限公司 | 基于Android系统内存优化与应用调度方法及系统 |
CN105786540A (zh) * | 2014-12-24 | 2016-07-20 | 中国移动通信集团公司 | 一种应用管理方法及电子设备 |
CN109690465A (zh) * | 2016-12-07 | 2019-04-26 | 华为技术有限公司 | 一种存储设备管理方法及用户终端 |
CN107168803A (zh) * | 2017-05-19 | 2017-09-15 | 努比亚技术有限公司 | 一种cpu资源分配方法和终端 |
CN107436801A (zh) * | 2017-06-23 | 2017-12-05 | 努比亚技术有限公司 | I/o资源调度方法、终端和计算机可读存储介质 |
CN107832113A (zh) * | 2017-10-26 | 2018-03-23 | 青岛海信移动通信技术股份有限公司 | 一种Android系统应用程序的界面显示方法及装置 |
CN109857539A (zh) * | 2017-11-30 | 2019-06-07 | 阿里巴巴集团控股有限公司 | 资源调度方法和终端 |
US20190370091A1 (en) * | 2018-06-03 | 2019-12-05 | Apple Inc. | Multi-process model for cross-platform applications |
CN110489228A (zh) * | 2019-07-16 | 2019-11-22 | 华为技术有限公司 | 一种资源调度的方法和电子设备 |
Also Published As
Publication number | Publication date |
---|---|
CN112231077B (zh) | 2021-10-19 |
CN113806030A (zh) | 2021-12-17 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US20210109788A1 (en) | Task Processing Method and Apparatus, Terminal, and Computer Readable Storage Medium | |
CN112527476B (zh) | 资源调度方法及电子设备 | |
CN113535340B (zh) | 一种任务调度方法、装置及电子设备 | |
CN112231077B (zh) | 应用的调度方法及电子设备 | |
CN115016706B (zh) | 一种线程的调度方法及电子设备 | |
US20230385112A1 (en) | Memory Management Method, Electronic Device, and Computer-Readable Storage Medium | |
CN117130773A (zh) | 资源分配方法、装置和设备 | |
CN114449576A (zh) | 一种应用数据的发送方法、装置及设备 | |
CN116414534A (zh) | 任务调度方法、装置、集成电路、网络设备及存储介质 | |
CN110413383B (zh) | 事件处理方法、装置、终端及存储介质 | |
CN116320727B (zh) | 一种算法调度方法及电子设备 | |
CN116700913B (zh) | 嵌入式文件系统的调度方法、设备及存储介质 | |
CN114697348A (zh) | 分布式实现方法、分布式系统、可读介质及电子设备 | |
CN111104209B (zh) | 一种处理任务的方法及相关设备 | |
CN115729684B (zh) | 输入输出请求处理方法和电子设备 | |
CN117687772A (zh) | 一种算法调度方法及电子设备 | |
CN115562772B (zh) | 一种场景识别和预处理方法及电子设备 | |
CN114364026B (zh) | 通信方法及电子设备 | |
CN114916017B (zh) | 数据传输的方法、电子设备及可读存储介质 | |
CN116916093B (zh) | 识别卡顿的方法、电子设备及存储介质 | |
WO2024007970A1 (zh) | 线程调度方法及电子设备 | |
CN117632460A (zh) | 一种负载调节方法及终端设备 | |
CN116700944A (zh) | 一种内存回收方法、装置及电子设备 | |
CN117707720A (zh) | 一种进程调度方法、装置及电子设备 | |
CN117724860A (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 | ||
TA01 | Transfer of patent application right | ||
TA01 | Transfer of patent application right |
Effective date of registration: 20210421 Address after: Unit 3401, unit a, building 6, Shenye Zhongcheng, No. 8089, Hongli West Road, Donghai community, Xiangmihu street, Futian District, Shenzhen, Guangdong 518040 Applicant after: Honor Device Co.,Ltd. Address before: 518129 Bantian HUAWEI headquarters office building, Longgang District, Guangdong, Shenzhen Applicant before: HUAWEI TECHNOLOGIES Co.,Ltd. |
|
GR01 | Patent grant | ||
GR01 | Patent grant |