CN112463335A - 一种应用程序运行方法、装置和存储介质 - Google Patents
一种应用程序运行方法、装置和存储介质 Download PDFInfo
- Publication number
- CN112463335A CN112463335A CN202011404878.3A CN202011404878A CN112463335A CN 112463335 A CN112463335 A CN 112463335A CN 202011404878 A CN202011404878 A CN 202011404878A CN 112463335 A CN112463335 A CN 112463335A
- Authority
- CN
- China
- Prior art keywords
- decoder
- parameter
- application program
- decoding
- target cache
- 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 78
- 238000004590 computer program Methods 0.000 claims description 21
- 238000012545 processing Methods 0.000 claims description 19
- 230000004044 response Effects 0.000 claims description 10
- 230000008569 process Effects 0.000 description 11
- 238000010586 diagram Methods 0.000 description 9
- 238000013461 design Methods 0.000 description 5
- 238000004891 communication Methods 0.000 description 4
- 230000008878 coupling Effects 0.000 description 3
- 238000010168 coupling process Methods 0.000 description 3
- 238000005859 coupling reaction Methods 0.000 description 3
- 230000003993 interaction Effects 0.000 description 3
- 230000007246 mechanism Effects 0.000 description 3
- 238000005516 engineering process Methods 0.000 description 2
- 230000003287 optical effect Effects 0.000 description 2
- 238000006467 substitution reaction Methods 0.000 description 2
- 238000003491 array Methods 0.000 description 1
- 238000012217 deletion Methods 0.000 description 1
- 230000037430 deletion Effects 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 235000019800 disodium phosphate Nutrition 0.000 description 1
- 238000012544 monitoring process Methods 0.000 description 1
- 238000003672 processing method Methods 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/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/5011—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resources being hardware resources other than CPUs, Servers and Terminals
- G06F9/5016—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resources being hardware resources other than CPUs, Servers and Terminals the resource being the memory
-
- 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/5011—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resources being hardware resources other than CPUs, Servers and Terminals
- G06F9/5022—Mechanisms to release resources
-
- 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)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Stored Programmes (AREA)
Abstract
本发明公开了一种应用程序运行方法、装置和存储介质,所述方法包括:确定待运行的第一应用程序;根据所述第一应用程序,从参数集中确定所述第一应用程序对应的第一解码参数;所述参数集包括至少一个解码参数;每个所述解码参数对应至少一个应用程序相应的解码器;通过调用所述第一解码参数对应的第一解码器,运行所述第一应用程序。
Description
技术领域
本发明涉及程序处理技术,尤其涉及一种应用程序运行方法、装置和存储介质。
背景技术
随着移动电子设备(例如智能手机、平板电脑等)的普及,以及视频播放技术的发展,现有的电子设备中一般具有播放类应用程序(APP,Application),为了实现播放类APP的加速一般基于预加载播放数据或预加载播放所需要的视图(View)来实现APP启动或APP内视频播放切换,以提升视频起播速度或视频切换速度。然而上述方案会生成过多的View,从而导致内存占用过高的问题。
发明内容
有鉴于此,本发明的主要目的在于提供一种应用程序运行方法、装置和存储介质。
为达到上述目的,本发明的技术方案是这样实现的:
本发明实施例提供一种应用程序运行方法,确定待运行的第一应用程序;
根据所述第一应用程序,从参数集中确定所述第一应用程序对应的第一解码参数;所述参数集包括至少一个解码参数;每个所述解码参数对应至少一个应用程序相应的解码器;
通过调用所述第一解码参数对应的第一解码器,运行所述第一应用程序。
上述方案中,所述方法还包括以下之一:
系统启动时,根据预设的解码参数和/或历史使用的解码参数,建立所述参数集;生成所述参数集中每个解码参数对应的解码器;
系统启动后的预设第一时间段内,根据预设的解码参数和/或历史使用的解码参数,建立所述参数集;生成所述参数集中每个解码参数对应的解码器。
上述方案中,所述通过调用所述第一解码参数对应的第一解码器,运行所述第一应用程序,包括:
将所述第一解码器置于第一目标缓存中,并对所述第一目标缓存对应的第一计数参数进行加一更新;所述第一目标缓存用于保存运行中的解码器;
相应的,所述方法还包括:
确定所述第一应用程序进入第一状态时,将所述第一解码器从所述第一目标缓存中移入第二目标缓存,并对所述第一计数参数进行减一更新;所述第二目标缓存用于保存预设第二时间段内运行的解码器;
所述第一状态表征停止播放或未激活状态。
上述方案中,所述通过调用所述第一解码参数对应的第一解码器,运行所述第一应用程序,包括:
将所述第一解码器置于第一目标缓存中,并对所述第一目标缓存对应的第一计数参数进行加一更新;所述第一目标缓存用于保存运行中的解码器;
相应的,所述方法还包括:
确定所述第一应用程序进入第二状态时,将所述第一解码器从所述第一目标缓存中移除,并对所述第一计数参数进行减一更新;
所述第二状态表征未激活状态。
上述方案中,所述方法还包括:
确定所述第一应用程序进入播放状态时,将所述第一解码器重新置于第一目标缓存中,并对所述第一目标缓存对应的第一计数参数进行加一更新。
上述方案中,调用所述第一解码参数对应的第一解码器之前,所述方法还包括:
检测所述第一目标缓存对应的第一计数参数;
相应于所述第一计数参数小于第一阈值,调用所述第一解码参数对应的第一解码器;
相应于所述第一计数参数大于第二阈值,删除所述第一目标缓存中的至少一个解码器。
上述方案中,所述解码器包括以下至少之一:视频解码器、音频解码器、图片解码器。
本发明实施例提供了一种应用程序运行装置,所述装置包括:
确定模块,用于确定待运行的第一应用程序;
获取模块,用于根据所述第一应用程序,从参数集中确定所述第一应用程序对应的第一解码参数;所述参数集包括至少一个解码参数;每个所述解码参数对应至少一个应用程序相应的解码器;
处理模块,用于通过调用所述第一解码参数对应的第一解码器,运行所述第一应用程序。
上述方案中,所述装置还包括:初始化模块,用于系统启动时,根据预设的解码参数和/或历史使用的解码参数,建立所述参数集;生成所述参数集中每个解码参数对应的解码器;
系统启动后的预设第一时间段内,根据预设的解码参数和/或历史使用的解码参数,建立所述参数集;生成所述参数集中每个解码参数对应的解码器。
上述方案中,所述处理模块,还用于将所述第一解码器置于第一目标缓存中,并对所述第一目标缓存对应的第一计数参数进行加一更新;所述第一目标缓存用于保存运行中的解码器;
相应的,所述处理模块,还用于确定所述第一应用程序进入第一状态时,将所述第一解码器从所述第一目标缓存中移入第二目标缓存,并对所述第一计数参数进行减一更新;所述第二目标缓存用于保存预设第二时间段内运行的解码器;
所述第一状态表征停止播放或未激活状态。
上述方案中,所述处理模块,还用于将所述第一解码器置于第一目标缓存中,并对所述第一目标缓存对应的第一计数参数进行加一更新;所述第一目标缓存用于保存运行中的解码器;
相应的,所述处理模块,还用于确定所述第一应用程序进入第二状态时,将所述第一解码器从所述第一目标缓存中移除,并对所述第一计数参数进行减一更新;
所述第二状态表征未激活状态。
上述方案中,所述处理模块,还用于确定所述第一应用程序进入播放状态时,将所述第一解码器重新置于第一目标缓存中,并对所述第一目标缓存对应的第一计数参数进行加一更新。
上述方案中,所述处理模块,还用于检测所述第一目标缓存对应的第一计数参数;
相应于所述第一计数参数小于第一阈值,调用所述第一解码参数对应的第一解码器;
相应于所述第一计数参数大于第二阈值,删除所述第一目标缓存中的至少一个解码器。
上述方案中,上述解码器包括以下至少之一:视频解码器、音频解码器、图片解码器。
本发明实施例提供了一种应用程序运行装置,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述程序时实现以上所述应用程序运行方法的步骤。
本发明实施例还提供了一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现以上所述应用程序运行方法的步骤。
本发明实施例所提供的应用程序运行方法、装置和存储介质,所述方法包括:确定待运行的第一应用程序;根据所述第一应用程序,从参数集中确定所述第一应用程序对应的第一解码参数;所述参数集包括至少一个解码参数;每个所述解码参数对应至少一个应用程序相应的解码器;通过调用所述第一解码参数对应的第一解码器,运行所述第一应用程序;如此,通过调用应用程序的解码参数对应的解码器实现播放,各解码器作为单独进程服务,可实现多应用程序共享,节约系统内存,提升播放稳定性和内存使用率。
附图说明
图1为本发明实施例提供的一种应用程序运行方法的流程示意图;
图2为本发明实施例提供的MediaCodec服务分层设计模式的示意图;
图3为本发明实施例提供的应用于视频播放的解码器服务设计模式的示意图;
图4为本发明实施例提供的多种解码器服务设计模式的示意图;
图5为本发明实施例提供的另一种应用程序运行方法的流程示意图;
图6为本发明实施例提供的一种应用程序运行装置的结构示意图;
图7为本发明实施例提供的另一种应用程序运行装置的结构示意图。
具体实施方式
下面结合实施例对本发明再作进一步详细的说明。
相关技术中,为提高播放效率,关于播放器的使用提供有以下方案:
方案一,针对视频播放创建多个播放用的SurfaceView及播放器,每个播放器对应一个SurfaceView;例如,现有一个视频待播放,其会创建SurfaceView1和player1,以及SurfaceView2和player2,其使用surfaceview1和player1进行播放,当视频切换时其直接使用surfaceview2和player2,以此交替反复。然而,该方案占用内存过高生成了过多的不必要的View和播放器,其为了观众侧播放体验流程始终有二个甚至多个将要加载的View和播放器;并且,由于其需要初始化多个播放器和View,其初始化时间或者第一次播放时间依然会比较长。
方案二,在视频切换前提前加载该视频的数据流并解码保存,当视频切换时将之前保存的已经解码好的数据输出。然而,该方案预解码视频数据会造成内存占用过高;预解码需要预加载视频流或者文件需要网络消耗,并且,在某些场景下比如用户快速滑动或者跳过下,预解码命中率会快速下降甚至失效。
方案三,将播放器和解码器并行化处理,通过频道信息缓存机制来保存所有的视频编码格式以及解码参数并保存在本地数据库中,使用时通过这些参数来决定是否复用解码器。然而,该方案过于依赖信息缓存机制,依然需要反复创建解码器,且只能提供给本应用程序使用。
综上所述,相关技术在电子设备(如采用安卓(Android)系统的设备)上实施,均存在虽然在用户看到的只有一个播放界面,但是生成了过多的用于播放的View和播放器以及解码器,甚至是不需要的数据。这些资源的生成以及存在会导致内存占用过高,加载的过程依然不可避免。尤其是当一个电子设备中存在多个播放APP时,每一个播放APP需要触发播放操作时,都需要重新创建以上流程,并不能有效复用。
基于此,在本发明的各种实施例中,确定待运行的第一应用程序;根据所述第一应用程序,从参数集中确定所述第一应用程序对应的第一解码参数;所述参数集包括至少一个解码参数;每个所述解码参数对应至少一个应用程序相应的解码器;通过调用所述第一解码参数对应的第一解码器,运行所述第一应用程序。
图1为本发明实施例提供的一种应用程序运行方法的流程示意图;如图1所示,所述视频处理方法应用于电子设备,所述电子设备可以为智能电话、笔记本电脑、个人数字助理(PDA)、平板电脑(PAD)、便携式多媒体应用程序(PMP)等;所述方法包括:
步骤101、确定待运行的第一应用程序;
步骤102、根据所述第一应用程序,从参数集中确定所述第一应用程序对应的第一解码参数;所述参数集包括至少一个解码参数;每个所述解码参数对应至少一个应用程序相应的解码器;
即,每个解码参数对应一个解码器;每个解码器可以由至少一个应用程序调用。
步骤103、通过调用所述第一解码参数对应的第一解码器,运行所述第一应用程序。
在一实施例中,所述确定待运行的第一应用程序,包括:
接收第一操作指令,根据所述第一操作指令确定对应的应用程序,作为所述第一应用程序。
所述第一操作指令可以是电子设备的持有者通过人机交互界面进行操作而产生的指令。
这里,所述待运行的第一应用程序可以是:待播放相应数据的客户端;例如,待播放视频数据的客户端、待播放音乐的客户端、待展示图片的客户端。
实际应用时,所述参数集中的各解码参数预先生成,从而在需要调用解码器时,可以通过调用相应的解码参数而直接调用。
基于此,在一实施例中,所述确定待运行的第一应用程序之前,所述方法还包括以下至少之一:
系统启动时,根据预设的解码参数和/或历史使用的解码参数,建立所述参数集;生成所述参数集中每个解码参数对应的解码器;
系统启动后的预设第一时间段内,根据预设的解码参数和/或历史使用的解码参数,建立所述参数集生成所述参数集中每个解码参数对应的解码器。
具体来说,电子设备可以根据之前使用记录保存的和/或电子设备自身保存保存的解码参数初始化解码器,等待客户端调用。
举例来说,所述电子设备可以采用Android系统。在Android系统的基础上,将Android系统的媒体编解码器(MediaCodec、即编码器/解码器组件)重新设计,将MediaCodec作为一个系统服务存在于Android系统中,在Android初始化的时候初始化该服务,即在系统启动时即可初始化此服务,也就是说,在系统启动时生成参数集。如此,不需要每个APP(具体指需要解码器的APP)在启动播放时重新生成自己的MediaCodec进行解码,其可以通过该服务来获取已经生成好MediaCodec直接使用。并且,多个应用程序之间只要解码参数一致,则可以共享一个MediaCodec。
相应服务可以通过两层内存架构来管理每个MediaCodec,应用程序不用在自己的进程内生成MediaCodec,只需将播放地址交给播放器,播放器将视频对应的解码参数作为键(Key),来获取MediaCodec。
这里,考虑到开机速度的问题,也可以是在系统开机后即刻(即预设第一时间段内)生成参数集;如此在保证开机速度的基础上实现本发明实施例的方案。
这里,所述参数集可以是厂商的开发人员预先设置并保存在电子设备中的,具体针对不同的解码器设置,通过在电子设备的相应存储模块读取即可获得;也可以是通过收集用户曾经在电子设备上运行过的应用程序所需的解码器进行设置,具体指基于历史使用的解码器对应的解码参数得到。
在一实施例中,所述通过调用所述第一解码参数对应的第一解码器,运行所述第一应用程序,包括:
将所述第一解码器置于第一目标缓存中,并对所述第一目标缓存对应的第一计数参数进行加一更新;所述第一目标缓存用于保存运行中的解码器;
相应的,所述方法还包括:
确定所述第一应用程序进入第一状态时,将所述第一解码器从所述第一目标缓存中移入第二目标缓存,并对所述第一计数参数进行减一更新;所述第二目标缓存用于保存预设第二时间段内运行的解码器;
所述第一状态表征停止播放或未激活状态。
对停止播放举例说明,假设电子设备采用应用程序进行播放的过程中,电子设备接收到停止操作指令(可以是用户通过人机交互界面点击暂停播放而产生),此时,根据该停止操作指令停止播放,此时该应用程序可以是运行中但播放暂停。
对未激活状态举例说明,假设电子设备采用应用程序进行播放的过程中,电子设备接收到关闭操作指令(可以是用户通过人机交互界面点击关闭应用程序而产生),此时,根据该关闭操作指令关闭应用程序,即该应用程序不处于运行状态,当然,播放也关闭。
在一实施例中,所述通过调用所述第一解码参数对应的第一解码器,运行所述第一应用程序,包括:
将所述第一解码器置于第一目标缓存中,并对所述第一目标缓存对应的第一计数参数进行加一更新;所述第一目标缓存用于保存运行中的解码器;
相应的,所述方法还包括:
确定所述第一应用程序进入第二状态时,将所述第一解码器从所述第一目标缓存中移除,并对所述第一计数参数进行减一更新;
所述第二状态表征未激活状态。
具体来说,解码器服务可以通过解码器调度管理模块和解码器缓存模块实现,其中,解码器缓存模块又可以具体包括:第一目标缓存和第二目标缓存;
其中,第一目标缓存为活跃解码器缓存,用于保存运行中的解码器;
第二目标缓存为采用最近最少使用(LRU,Least recently used)算法进行解码器管理的缓存,用于保存预设第二时间段内运行的解码器。
解码器调度管理模块负责管理解码器的生命周期,包括:解码器的创建、释放、数据保存、移除缓存、加入缓存以及调用方App的事件接收。
第一目标缓存采用引用计数实现,当引用计数为0时,将MediaCodec实例放回第二目标缓存中,并调用MediaCodec的releaseBuffer方法(释放缓存方法),将Buffer释放,以降低内存消耗。
第二目标缓存则使用LRU算法对MediaCodec实例进行管理,当第一目标缓存中MediaCodec实例的数量小于系统可以接纳下限数目时进行创建,当超过系统可接纳上限时则将最近未使用的MediaCodec实例回收。
实际应用时,对于应用程序的状态进行监测(即确定是否需使用相应的解码器),当确定应用程序进入播放状态,将解码器重新置于第一目标缓存中,从而可以快速的调用解码器。
在一实施例中,所述方法还包括:
确定所述第一应用程序进入播放状态时,将所述第一解码器重新置于第一目标缓存中,并对所述第一目标缓存对应的第一计数参数进行加一更新。
实际应用时,对所述第一目标缓存中保存的解码器可以进行管理,以降低内存消耗;例如,设置相应解码器数量的阈值,超过时则需要删除至少一个解码器;未超过时,则可以添加新的解码器。
基于此,在一实施例中,调用所述第一解码参数对应的第一解码器之前,所述方法还包括:
检测所述第一目标缓存对应的第一计数参数;
相应于所述第一计数参数小于第一阈值,调用所述第一解码参数对应的第一解码器;
相应于所述第一计数参数大于第二阈值,删除所述第一目标缓存中的至少一个解码器。
如此,通过第一阈值和第二阈值实现对第一目标缓存中的解码器的管理。所述第一阈值和所述第二阈值可以由开发人员预先设定并保存。也可以由用户在使用过程中进行数量的调整。这里不做限定。
类似的,实际应用时,还可以对所述第二目标缓存中保存的解码器进行管理,以降低内存消耗;例如,设置相应解码器数量的阈值,超过时则需要删除至少一个解码器;未超过时,则可以添加新的解码器。
基于此,在一实施例中,所述方法还包括:
检测所述第二目标缓存对应的第二计数参数;
相应于所述第二计数参数小于第三阈值,保存新加入的解码器;
相应于所述第二计数参数大于第四阈值,删除所述第二目标缓存中的至少一个解码器。
删除方式采用LRU算法,例如,将一段时间内未使用的解码器删除。
如此,通过第三阈值和第四阈值实现对第二目标缓存中的解码器的管理。所述第三阈值和第四阈值可以由开发人员预先设定并保存。也可以由用户在使用过程中进行数量的调整。这里不做限定。
具体来说,对第二目标缓存中的解码器的管理,包括:
使用LRU算法对其保存的MediaCodec实例进行管理,当MediaCodec实例小于系统可以接纳下限数目时(即小于第三阈值)进行创建,当超过系统可接纳上限时(即大于第四阈值)则将最近未使用的MediaCodec实例回收。
在一实施例中,通过调用所述第一解码参数对应的第一解码器,运行所述第一应用程序,包括:
调用第一解码参数对应的第一解码器,以播放第一应用程序需要播放的数据。
以视频数据为例说明,第一应用程序为一视频类客户端,该客户端将带请求播放的播放地址发送给播放器,播放器将视频数据对应的解码参数作为键(Key)来获取值(Value),即根据解码参数确定相应的第一解码参数和第一解码参数对应的第一解码器(一个MediaCodec实例),通过该第一解码器进行相应的播放操作。
在一实施例中,所述解码器包括以下至少之一:视频解码器、音频解码器、图片解码器。
所述视频解码器、音频解码器、图片解码器可以分别对应有不同的参数集;
例如,具有视频解码参数集,所述视频解码参数集包括至少一个视频解码参数,每个所述视频解码参数对应至少一个视频应用程序相应的解码器;
具有音频解码参数集,所述音频解码参数集包括至少一个音频解码参数,每个所述音频解码参数对应至少一个音频应用程序相应的解码器;
具有图片解码参数集,所述图片解码参数集包括至少一个图片解码参数,每个所述图片解码参数对应至少一个图片应用程序相应的解码器。
如此,针对视频应用程序、音频应用程序、图片应用程序均可以采用本发明实施例提供的方案,实现解码器的高效应用、管理。
本发明实施例提供的方法,利用多进程架构将原本单一的各个应用程序自己生成自己的解码器统一为系统的解码器服务,使得所有应用程序可以共享相同的解码器,从而提升了解码器复用率和解码速度,并提升了播放客户端的稳定性,降低了内存占用率。另外,通过创新的两层解码器内存调度架构在兼顾解码器及时生成复用的基础上,能够避免反复创建解码器,减少了调用解码器时间和内存占用率,有效减少MediaCodec创建生成时间
并且,解码器调度管理模块不再需要各个应用程序自己在切换应用程序前后台、关闭页面、切换视频源时自己管理播放,解码器调度管理模块可以通过监听机制直接管理解码器,能够更加及时的管理解码器生命周期(如更加及时的释放相关解码资源),也减少应用程序调用工作量,提升了解码器响应速度和释放速度。
图2为本发明实施例提供的MediaCodec服务分层设计模式的示意图;如图2所示,MediaCodec服务(以下称为解码器服务)主要分为解码器调度管理模块和解码器缓存架构,其中,解码器缓存架构又分为活跃解码器Cache(相当于一种第一目标缓存)和解码器LruCache(相当于一种第二目标缓存)。
解码器调度管理模块,负责管理解码器的生命周期包括解码器的创建、释放、数据保存、移除Cache、加入Cache以及调用方App的事件接收。
活跃解码器Cache采用引用计数实现,当引用计数为0时,将MediaCodec实例放回解码器LruCache中,并调用MediaCodec实例的releaseBuffer方法,将Buffer释放,降低内存消耗。
解码器LruCache使用LRU算法对MediaCodec实例进行管理,当其保存的MediaCodec实例数量小于系统可以接纳下限数目时可以进行创建,当超过系统可接纳上限时则将最近未使用的MediaCodec实例回收。
图3为本发明实施例提供的应用于视频播放的解码器服务设计模式的示意图;如图3所示,采用了解码器服务后的一个应用程序的视频播放模式。应用程序(如某一视频类客户端)启动视频播放时,先从视频服务器(可以是不同视频应用程序对应的网络端)拉取视频数据(SurfaceView),应用程序通过播放器将该视频数据传递给解码器服务(这里具体指系统的视频解码器服务),系统的视频解码器服务根据传入的视频分辨率、帧率等参数匹配合适的视频解码器(即确定对应的MediaCodec解码器),如果没有则创建并返回。
在应用程序拉取视频列表甚至启动之前,电子设备的系统已初始化MediaCodec服务;而MediaCodec服务单独作为服务进程,减少多应用程序的MediaCodec缓存复用带来的内存过大问题,提高内存使用效率,此外还能减少影响主应用程序进程的稳定性和内存使用率。
本发明实施例中,所述解码器可以为视频解码器、音频解码器、图片解码器;即对于解码器的类型不局限于视频播放,可以根据需要扩展至音视频播放甚至是图片解码,实现在最小化内存占用的情况下最快最高效的解码器服务。如图4所示,电子设备可以具有针对视频、音频、图片三种类型都分别可以采用的相同的解码器服务和三种不同解码器。每个解码器根据需要解码的格式和参数作为键(Key)来区别,采用相同的二级管理架构。所有解码器均有解码器调度管理模块来维护各个解码器的生命周期和其创建释放,以及所在的缓存。如此,可以统一Android系统所有的涉及解码的功能服务,极大的减少内存占用提升客户端流畅度和响应速度。
图5为本发明实施例提供的另一种应用程序运行方法的流程示意图;如图5所示,所述应用程序运行方法应用于电子设备,例如某一个采用Android系统的终端;所述方法包括:
步骤501、Andorid系统启动,初始化解码器服务;
这里,Andorid系统初始化时或者在初始化后预设第一时间段内,初始化解码器服务;初始化解码器服务包括:
根据之前使用记录保存的解码器信息(相当于上述解码参数)初始化解码器,等待客户端调用;
根据电子设备自身保存保存的解码器信息(相当于上述解码参数)初始化解码器,等待客户端调用。
步骤502、确定客户端调用播放器时,根据播放器参数调用对应的解码器进行解码播放;
然后,继续检测客户端的状态,状态包括两种:停止播放、切到后台;
步骤503、判断客户端是否停止播放,确定客户端停止播放,则进入步骤505;
步骤504、判断客户端是否切到后台,确定客户端切到后台,则进入步骤505;
步骤505、将解码器从解码器LruCache中移除放入解码器活跃Cache中,进入等待状态;
针对切到后台的客户端,可以对切到后台的客户端对应的解码器进行管理,所述方法还包括:
步骤506、确定客户端放入后台的时长是否超时;确定时长超时则进入步骤507,否则返回步骤505;
步骤507、释放解码器及资源。
针对切到后台的客户端,所述方法还包括:
步骤509、判断客户端是否切到前台,确定客户端切到前台,则进入步骤502。
针对停止播放的客户端,所述方法还包括:
步骤508、判断客户端是否重新播放,确定客户端重新播放,则进入步骤502。
本发明实施例中通过活跃解码器Cache、解码器LruCache实现解码器的管理。具体来说,所述步骤502还包括:将调用的解码器放入活跃解码器Cache中,引用计数+1。
相应的,确定客户端停止播放或切到后台时,可以将对应的解码器从活跃解码器Cache中移除并放入解码器LruCache中,活跃解码器Cache引用计数-1;当客户端重新开始播放或者切回前台时,将解码器从解码器LruCache中移除放入解码器活跃Cache中,引用计数+1;如果已经存在在活跃解码器Cache中则直接引用计数+1,直接返回对应的解码器即可。
另外,确定客户端因切到后台或者停止播放等长时间没有播放时,解码器调度管理模块还可以将解码器从解码器LruCache中移除并释放相关占用资源。
以上,所有涉及解码器服务的操作都是由解码器服务内部的解码器调度管理模块来执行,客户端并不需要管理和关心,做到对调用方的透明化。
图6为本发明实施例提供的一种应用程序运行装置的结构示意图;如图5所示,所述应用程序运行装置,包括:
确定模块,用于确定待运行的第一应用程序;
获取模块,用于根据所述第一应用程序,从参数集中确定所述第一应用程序对应的第一解码参数;所述参数集包括至少一个解码参数;每个所述解码参数对应至少一个应用程序相应的解码器;
处理模块,用于通过调用所述第一解码参数对应的第一解码器,运行所述第一应用程序。
在一实施例中,所述装置还包括:初始化模块,用于系统启动时,根据预设的解码参数和/或历史使用的解码参数,建立所述参数集;生成所述参数集中每个解码参数对应的解码器;
系统启动后的预设第一时间段内,根据预设的解码参数和/或历史使用的解码参数,建立所述参数集;生成所述参数集中每个解码参数对应的解码器。
在一实施例中,所述装置还包括:初始化模块,用于系统启动时,根据预设的解码参数和/或历史使用的解码参数,建立所述参数集;
系统启动后的预设第一时间段内,根据预设的解码参数和/或历史使用的解码参数,建立所述参数集。
在一实施例中,所述处理模块,还用于将所述第一解码器置于第一目标缓存中,并对所述第一目标缓存对应的第一计数参数进行加一更新;所述第一目标缓存用于保存运行中的解码器;
相应的,所述处理模块,还用于确定所述第一应用程序进入第一状态时,将所述第一解码器从所述第一目标缓存中移入第二目标缓存,并对所述第一计数参数进行减一更新;所述第二目标缓存用于保存预设第二时间段内运行的解码器;
所述第一状态表征停止播放或未激活状态。
在一实施例中,所述处理模块,还用于将所述第一解码器置于第一目标缓存中,并对所述第一目标缓存对应的第一计数参数进行加一更新;所述第一目标缓存用于保存运行中的解码器;
相应的,所述处理模块,还用于确定所述第一应用程序进入第二状态时,将所述第一解码器从所述第一目标缓存中移除,并对所述第一计数参数进行减一更新;
所述第二状态表征未激活状态。
在一实施例中,所述处理模块,还用于确定所述第一应用程序进入播放状态时,将所述第一解码器重新置于第一目标缓存中,并对所述第一目标缓存对应的第一计数参数进行加一更新。
在一实施例中,所述处理模块,还用于检测所述第一目标缓存对应的第一计数参数;
相应于所述第一计数参数小于第一阈值,调用所述第一解码参数对应的第一解码器;
相应于所述第一计数参数大于第二阈值,删除所述第一目标缓存中的至少一个解码器。
上述方案中,上述解码器包括以下至少之一:视频解码器、音频解码器、图片解码器。
需要说明的是:上述实施例提供的应用程序运行装置在实现相应应用程序运行方法时,仅以上述各程序模块的划分进行举例说明,实际应用中,可以根据需要而将上述处理分配由不同的程序模块完成,即将网络设备的内部结构划分成不同的程序模块,以完成以上描述的全部或者部分处理。另外,上述实施例提供的装置与相应方法的实施例属于同一构思,其具体实现过程详见方法实施例,这里不再赘述。
图7为本发明实施例提供的一种应用程序运行装置的结构示意图;如图7所示,所述装置70包括:处理器701和用于存储能够在所述处理器上运行的计算机程序的存储器702;其中,所述处理器701用于运行所述计算机程序时,执行:确定待运行的第一应用程序;根据所述第一应用程序,从参数集中确定所述第一应用程序对应的第一解码参数;所述参数集包括至少一个解码参数;每个所述解码参数对应至少一个应用程序相应的解码器;通过调用所述第一解码参数对应的第一解码器,运行所述第一应用程序。
在一实施例中,所述处理器701还用于运行所述计算机程序时,执行以下至少之一:系统启动时,根据预设的解码参数和/或历史使用的解码参数,建立所述参数集;生成所述参数集中每个解码参数对应的解码器;
系统启动后的预设第一时间段内,根据预设的解码参数和/或历史使用的解码参数,建立所述参数集;生成所述参数集中每个解码参数对应的解码器。
在一实施例中,所述处理器701还用于运行所述计算机程序时,执行:将所述第一解码器置于第一目标缓存中,并对所述第一目标缓存对应的第一计数参数进行加一更新;所述第一目标缓存用于保存运行中的解码器;
相应的,还执行:确定所述第一应用程序进入第一状态时,将所述第一解码器从所述第一目标缓存中移入第二目标缓存,并对所述第一计数参数进行减一更新;所述第二目标缓存用于保存预设第二时间段内运行的解码器;所述第一状态表征停止播放或未激活状态。
在一实施例中,所述处理器701还用于运行所述计算机程序时,执行:将所述第一解码器置于第一目标缓存中,并对所述第一目标缓存对应的第一计数参数进行加一更新;所述第一目标缓存用于保存运行中的解码器;
相应的,还执行:确定所述第一应用程序进入第二状态时,将所述第一解码器从所述第一目标缓存中移除,并对所述第一计数参数进行减一更新;所述第二状态表征未激活状态。
在一实施例中,所述处理器701还用于运行所述计算机程序时,执行:确定所述第一应用程序进入播放状态时,将所述第一解码器重新置于第一目标缓存中,并对所述第一目标缓存对应的第一计数参数进行加一更新。
在一实施例中,所述处理器701还用于运行所述计算机程序时,执行:检测所述第一目标缓存对应的第一计数参数;
相应于所述第一计数参数小于第一阈值,调用所述第一解码参数对应的第一解码器;
相应于所述第一计数参数大于第二阈值,删除所述第一目标缓存中的至少一个解码器。
其中,所述处理器运行所述计算机程序时实现本发明实施例的各个方法中由电子设备实现的相应流程,为了简洁,在此不再赘述。
实际应用时,所述装置70还可以包括:至少一个网络接口703。应用程序运行装置70中的各个组件通过总线系统704耦合在一起。可理解,总线系统704用于实现这些组件之间的连接通信。总线系统704除包括数据总线之外,还包括电源总线、控制总线和状态信号总线。但是为了清楚说明起见,在图7中将各种总线都标为总线系统704。其中,所述处理器701的个数可以为至少一个。网络接口703用于应用程序运行装置70与其他设备之间有线或无线方式的通信。
本发明实施例中的存储器702用于存储各种类型的数据以支持应用程序运行装置70的操作。
上述本发明实施例揭示的方法可以应用于处理器701中,或者由处理器701实现。处理器701可能是一种集成电路芯片,具有信号的处理能力。在实现过程中,上述方法的各步骤可以通过处理器701中的硬件的集成逻辑电路或者软件形式的指令完成。上述的处理器701可以是通用处理器、数字信号处理器(DSP,DiGital Signal Processor),或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等。处理器701可以实现或者执行本发明实施例中的公开的各方法、步骤及逻辑框图。通用处理器可以是微处理器或者任何常规的处理器等。结合本发明实施例所公开的方法的步骤,可以直接体现为硬件译码处理器执行完成,或者用译码处理器中的硬件及软件模块组合执行完成。软件模块可以位于存储介质中,该存储介质位于存储器702,处理器701读取存储器702中的信息,结合其硬件完成前述方法的步骤。
在示例性实施例中,应用程序运行装置70可以被一个或多个应用专用集成电路(ASIC,Application Specific Integrated Circuit)、DSP、可编程逻辑器件(PLD,Programmable Logic Device)、复杂可编程逻辑器件(CPLD,Complex Programmable LogicDevice)、现场可编程门阵列(FPGA,Field-Programmable Gate Array)、通用处理器、控制器、微控制器(MCU,Micro Controller Unit)、微处理器(Microprocessor)、或其他电子元件实现,用于执行前述方法。
本发明实施例还提供了一种计算机可读存储介质,其上存储有计算机程序;所述计算机程序被处理器运行时,执行:确定待运行的第一应用程序;根据所述第一应用程序,从参数集中确定所述第一应用程序对应的第一解码参数;所述参数集包括至少一个解码参数;每个所述解码参数对应至少一个应用程序相应的解码器;通过调用所述第一解码参数对应的第一解码器,运行所述第一应用程序。
在一实施例中,所述计算机程序被处理器运行时,执行以下至少之一:系统启动时,根据预设的解码参数和/或历史使用的解码参数,建立所述参数集;生成所述参数集中每个解码参数对应的解码器;
系统启动后的预设第一时间段内,根据预设的解码参数和/或历史使用的解码参数,建立所述参数集;生成所述参数集中每个解码参数对应的解码器。
在一实施例中,所述计算机程序被处理器运行时,执行:将所述第一解码器置于第一目标缓存中,并对所述第一目标缓存对应的第一计数参数进行加一更新;所述第一目标缓存用于保存运行中的解码器;
相应的,还执行:确定所述第一应用程序进入第一状态时,将所述第一解码器从所述第一目标缓存中移入第二目标缓存,并对所述第一计数参数进行减一更新;所述第二目标缓存用于保存预设第二时间段内运行的解码器;所述第一状态表征停止播放或未激活状态。
在一实施例中,所述计算机程序被处理器运行时,执行:将所述第一解码器置于第一目标缓存中,并对所述第一目标缓存对应的第一计数参数进行加一更新;所述第一目标缓存用于保存运行中的解码器;
相应的,还执行:确定所述第一应用程序进入第二状态时,将所述第一解码器从所述第一目标缓存中移除,并对所述第一计数参数进行减一更新;所述第二状态表征未激活状态。
在一实施例中,所述计算机程序被处理器运行时,执行:确定所述第一应用程序进入播放状态时,将所述第一解码器重新置于第一目标缓存中,并对所述第一目标缓存对应的第一计数参数进行加一更新。
在一实施例中,所述计算机程序被处理器运行时,执行:检测所述第一目标缓存对应的第一计数参数;
相应于所述第一计数参数小于第一阈值,调用所述第一解码参数对应的第一解码器;
相应于所述第一计数参数大于第二阈值,删除所述第一目标缓存中的至少一个解码器。
其中,所述计算机程序被处理器运行时实现本发明实施例的各个方法中由电子设备实现的相应流程,为了简洁,在此不再赘述。
在本申请所提供的几个实施例中,应该理解到,所揭露的装置和方法,可以通过其它的方式实现。以上所描述的设备实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,如:多个单元或组件可以结合,或可以集成到另一个系统,或一些特征可以忽略,或不执行。另外,所显示或讨论的各组成部分相互之间的耦合、或直接耦合、或通信连接可以是通过一些接口,设备或单元的间接耦合或通信连接,可以是电性的、机械的或其它形式的。
上述作为分离部件说明的单元可以是、或也可以不是物理上分开的,作为单元显示的部件可以是、或也可以不是物理单元,即可以位于一个地方,也可以分布到多个网络单元上;可以根据实际的需要选择其中的部分或全部单元来实现本实施例方案的目的。
另外,在本发明各实施例中的各功能单元可以全部集成在一个处理单元中,也可以是各单元分别单独作为一个单元,也可以两个或两个以上单元集成在一个单元中;上述集成的单元既可以采用硬件的形式实现,也可以采用硬件加软件功能单元的形式实现。
本领域普通技术人员可以理解:实现上述方法实施例的全部或部分步骤可以通过程序指令相关的硬件来完成,前述的程序可以存储于一计算机可读取存储介质中,该程序在执行时,执行包括上述方法实施例的步骤;而前述的存储介质包括:移动存储设备、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、磁碟或者光盘等各种可以存储程序代码的介质。
或者,本发明上述集成的单元如果以软件功能模块的形式实现并作为独立的产品销售或使用时,也可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明实施例的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机、服务器、或者网络设备等)执行本发明各个实施例所述方法的全部或部分。而前述的存储介质包括:移动存储设备、ROM、RAM、磁碟或者光盘等各种可以存储程序代码的介质。
以上所述,仅为本发明的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应以所述权利要求的保护范围为准。
Claims (10)
1.一种应用程序运行方法,其特征在于,所述方法包括:
确定待运行的第一应用程序;
根据所述第一应用程序,从参数集中确定所述第一应用程序对应的第一解码参数;所述参数集包括至少一个解码参数;每个所述解码参数对应至少一个应用程序相应的解码器;
通过调用所述第一解码参数对应的第一解码器,运行所述第一应用程序。
2.根据权利要求1所述的方法,其特征在于,所述确定待运行的第一应用程序之前,所述方法还包括以下至少之一:
系统启动时,根据预设的解码参数和/或历史使用的解码参数,建立所述参数集;生成所述参数集中每个解码参数对应的解码器;
系统启动后的预设第一时间段内,根据预设的解码参数和/或历史使用的解码参数,建立所述参数集;生成所述参数集中每个解码参数对应的解码器。
3.根据权利要求1所述的方法,其特征在于,所述通过调用所述第一解码参数对应的第一解码器,运行所述第一应用程序,包括:
将所述第一解码器置于第一目标缓存中,并对所述第一目标缓存对应的第一计数参数进行加一更新;所述第一目标缓存用于保存运行中的解码器;
相应的,所述方法还包括:
确定所述第一应用程序进入第一状态时,将所述第一解码器从所述第一目标缓存中移入第二目标缓存,并对所述第一计数参数进行减一更新;所述第二目标缓存用于保存预设第二时间段内运行的解码器;
所述第一状态表征停止播放或未激活状态。
4.根据权利要求1所述的方法,其特征在于,所述通过调用所述第一解码参数对应的第一解码器,运行所述第一应用程序,包括:
将所述第一解码器置于第一目标缓存中,并对所述第一目标缓存对应的第一计数参数进行加一更新;所述第一目标缓存用于保存运行中的解码器;
相应的,所述方法还包括:
确定所述第一应用程序进入第二状态时,将所述第一解码器从所述第一目标缓存中移除,并对所述第一计数参数进行减一更新;
所述第二状态表征未激活状态。
5.根据权利要求3或4所述的方法,其特征在于,所述方法还包括:
确定所述第一应用程序进入播放状态时,将所述第一解码器重新置于第一目标缓存中,并对所述第一目标缓存对应的第一计数参数进行加一更新。
6.根据权利要求1所述的方法,其特征在于,调用所述第一解码参数对应的第一解码器之前,所述方法还包括:
检测所述第一目标缓存对应的第一计数参数;
相应于所述第一计数参数小于第一阈值,调用所述第一解码参数对应的第一解码器;
相应于所述第一计数参数大于第二阈值,删除所述第一目标缓存中的至少一个解码器。
7.根据权利要求1所述的方法,其特征在于,所述解码器包括以下至少之一:视频解码器、音频解码器、图片解码器。
8.一种应用程序运行装置,其特征在于,所述装置包括:
确定模块,用于确定待运行的第一应用程序;
获取模块,用于根据所述第一应用程序,从参数集中确定所述第一应用程序对应的第一解码参数;所述参数集包括至少一个解码参数;每个所述解码参数对应至少一个应用程序相应的解码器;
处理模块,用于通过调用所述第一解码参数对应的第一解码器,运行所述第一应用程序。
9.一种应用程序运行装置,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,其特征在于,所述处理器执行所述程序时实现权利要求1至7任一项所述方法的步骤。
10.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现权利要求1至7任一项所述方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011404878.3A CN112463335A (zh) | 2020-12-03 | 2020-12-03 | 一种应用程序运行方法、装置和存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011404878.3A CN112463335A (zh) | 2020-12-03 | 2020-12-03 | 一种应用程序运行方法、装置和存储介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN112463335A true CN112463335A (zh) | 2021-03-09 |
Family
ID=74805686
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202011404878.3A Pending CN112463335A (zh) | 2020-12-03 | 2020-12-03 | 一种应用程序运行方法、装置和存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN112463335A (zh) |
Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101321176A (zh) * | 2008-07-11 | 2008-12-10 | 中兴通讯股份有限公司 | 浏览器客户端的直播方法和系统、浏览器客户端、后台客户端 |
US20140376641A1 (en) * | 2013-06-24 | 2014-12-25 | Microsoft Corporation | Picture Referencing Control for Video Decoding Using a Graphics Processor |
CN104780378A (zh) * | 2015-04-16 | 2015-07-15 | 腾讯科技(北京)有限公司 | 一种用于解码视频的方法、装置和播放器 |
CN107678801A (zh) * | 2017-10-09 | 2018-02-09 | 武汉斗鱼网络科技有限公司 | 一种插件加载的方法和装置 |
CN109274973A (zh) * | 2018-09-26 | 2019-01-25 | 江苏航天大为科技股份有限公司 | 嵌入式arm平台上的快速视频解码方法 |
CN110213659A (zh) * | 2019-07-01 | 2019-09-06 | 杭州当虹科技股份有限公司 | 一种可在不同视频流间快速切换播放器的实现方法 |
CN111107404A (zh) * | 2019-12-27 | 2020-05-05 | 珠海全志科技股份有限公司 | 汽车与移动端的界面视频快速播放方法、系统及存储介质 |
CN111935500A (zh) * | 2020-09-22 | 2020-11-13 | 腾讯科技(深圳)有限公司 | 视频解码方法、装置及电子设备 |
-
2020
- 2020-12-03 CN CN202011404878.3A patent/CN112463335A/zh active Pending
Patent Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101321176A (zh) * | 2008-07-11 | 2008-12-10 | 中兴通讯股份有限公司 | 浏览器客户端的直播方法和系统、浏览器客户端、后台客户端 |
US20140376641A1 (en) * | 2013-06-24 | 2014-12-25 | Microsoft Corporation | Picture Referencing Control for Video Decoding Using a Graphics Processor |
CN104780378A (zh) * | 2015-04-16 | 2015-07-15 | 腾讯科技(北京)有限公司 | 一种用于解码视频的方法、装置和播放器 |
CN107678801A (zh) * | 2017-10-09 | 2018-02-09 | 武汉斗鱼网络科技有限公司 | 一种插件加载的方法和装置 |
CN109274973A (zh) * | 2018-09-26 | 2019-01-25 | 江苏航天大为科技股份有限公司 | 嵌入式arm平台上的快速视频解码方法 |
CN110213659A (zh) * | 2019-07-01 | 2019-09-06 | 杭州当虹科技股份有限公司 | 一种可在不同视频流间快速切换播放器的实现方法 |
CN111107404A (zh) * | 2019-12-27 | 2020-05-05 | 珠海全志科技股份有限公司 | 汽车与移动端的界面视频快速播放方法、系统及存储介质 |
CN111935500A (zh) * | 2020-09-22 | 2020-11-13 | 腾讯科技(深圳)有限公司 | 视频解码方法、装置及电子设备 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11586451B2 (en) | Resource management with dynamic resource policies | |
CN102708064B (zh) | 从休眠中多阶段恢复 | |
KR100690804B1 (ko) | 휴대단말기의 메모리 정리 방법 | |
JP2011519083A (ja) | 低電力メディアレンダリングサブシステムを備えたモバイル電話 | |
CN108132735B (zh) | 终端与应用控制方法 | |
CN110806925B (zh) | 音频播放方法及设备 | |
US20160072856A1 (en) | Cross-Process Media Handling in a Voice-Over-Internet Protocol (VOIP) Application Platform | |
JP2012079357A (ja) | 命令群トラッピングによってosコンテキスト切替を最適化するシステム及び方法 | |
CN111258921B (zh) | 垃圾内存回收方法及装置、电子设备、存储介质 | |
CN113225605B (zh) | 视频播放处理方法、装置、电子设备及存储介质 | |
CN111954072B (zh) | 一种多媒体播放方法、装置、多媒体播放器和介质 | |
CN115576645B (zh) | 一种虚拟处理器调度方法、装置、存储介质及电子设备 | |
US20230074682A1 (en) | Method and apparatus for video coding | |
CN101312519B (zh) | 数据帧处理方法和装置 | |
CN113778662A (zh) | 内存回收方法及装置 | |
CN113259744A (zh) | 视频的展示方法、装置、设备及介质 | |
CN107408073B (zh) | 使用存储器压缩来减少存储器提交开销 | |
CN114501134B (zh) | 一种iOS跨页面视频播放方法、装置、设备及存储介质 | |
US20130343373A1 (en) | Voice-over-internet protocol (voip) application platform | |
CN112667408A (zh) | 一种内存分配方法及终端设备 | |
CN112463335A (zh) | 一种应用程序运行方法、装置和存储介质 | |
CN115017004B (zh) | 进程监控方法及电子设备 | |
CN110213642A (zh) | 视频的断点播放方法、装置、存储介质及电子设备 | |
CN115587049A (zh) | 内存回收方法、装置、电子设备及存储介质 | |
CN112817769B (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 |