CN119493656A 内存管理方法、内存管理装置和电子设备 (华为技术有限公司)_第1页
CN119493656A 内存管理方法、内存管理装置和电子设备 (华为技术有限公司)_第2页
CN119493656A 内存管理方法、内存管理装置和电子设备 (华为技术有限公司)_第3页
CN119493656A 内存管理方法、内存管理装置和电子设备 (华为技术有限公司)_第4页
CN119493656A 内存管理方法、内存管理装置和电子设备 (华为技术有限公司)_第5页
已阅读5页,还剩49页未读, 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

2拦截与第一缓存集合中的缓存的访问相关的接口,所述第一缓存集合中解除对所述与第一缓存集合中的缓存的访问相关的接口的述第四缓存是所述媒体模块持有的处于输出缓存队列的待所述第一应用使用的填充解码所述拦截与第一缓存集合中的缓存的访问相关的接口,包括:所述解除对所述与第一缓存集合中的缓存的访问相关的接口的拦所述回收所述第一缓存集合中的缓存对应的物理内存,包括:记录所述所述回收所述第一缓存集合中的缓存对应的物理内存,包括:压缩所述所述回收所述第一缓存集合中的缓存对应的物理内存,包括:将所述所述回收所述第一缓存集合中的缓存对应的物理内存,包括:压缩所述3所述回收所述第一缓存集合中的缓存对应的物理内存,包括:将所述7.如权利要求1至6中任一项所述的方法,其拦截与第一缓存集合中的缓存的访问相关的接口,所述第一缓存集合中所述第一应用,还用于接收用户的第二输入,所述第二输入用于使得第解除对所述与第一缓存集合中的缓存的访问相关的接口的队列的空输入缓存,所述第三缓存是所述媒体模块持有的正在填充解码结果的输出缓存,所述第四缓存是所述媒体模块持有的处于输出缓存队列的待所述第一应用使用的填充解当所述第一应用的至少一个进程或线程使用所述与第一缓存中集合中的缓存的访问4记录所述第三缓存中填充的解码结果的对应的解码位置,回收数据重新解码后填充至所述重新分配的物理内将所述第三缓存中填充的解码结果通过页交换换出,回收所述第三14.如权利要求11或13所述的装置,其特征在于,当所述第一缓存集合包括第四缓存将所述第四缓存中的解码结果通过页交换换出,回收所述第四缓存对应的物理内存;根据所述第一输入,向所述媒体模块发送第一消息,所述根据所述第二输入,向所述媒体模块发送第二消息,所述第二消息56量的增加而内存越来越少。且视频应用和媒体模块调用的硬件解码器通常共享物理内存,的接口,所述第一缓存集合中的缓存属于与所述第一应用播放的第一视频解码相关的缓处于后台的情况下回收与第一视频解码相关的缓存对应的物理内存并拦截与对应缓存访7充解码结果的输出缓存,所述第五缓存是所述第一应用持有的填充解码结果的输出缓存,8储解码结果并在重建物理内存后将存储的解码结果填充至重建的物理内存中的方式回收,其中解码结果可以通过压缩或不压缩的方式存中存储的解码结果在内存重建后也无法再次解码,因此需要存储后进行物理内存的回9述第二接口用于所述第一应用获取所述媒体模块主动释放的所述设备上运行时,使得如第一方面及其任一种可能的实现方式中所述的内存管理方法被执[0040]图7是同步模式和异步模式下第一应用获取和释放输入输出缓存使用的接口的示identificationmodule,SIM)卡接口195等。其中传感器模块180可以包括压力传感器(applicationprocessor,AP),调制解调处理器,图形处理器(graphicsprocessing[0050]在一些实施例中,处理器110可以包括一个或多个接口。接口可以包括集成电路(universalasynchronousreceiver/transmitter,UART)接口,移动产业处理器接口(mobileindustryprocessorinterface,MIPI),通用输入输出(general_purpose[0051]I2C接口是一种双向同步串行总线,包括一根串行数据线(serialdataline,处理器110可以通过I2S总线与音频模块170耦合,实现处理器110与音频模块170之间的通频模块170与无线通信模块160可以通过PCM总[0062]移动通信模块150可以提供应用在电子设备100上的包括2G/3G/4G/5G等无线通信[0064]无线通信模块160可以提供应用在电子设备100上的包括无线局域网(wirelesslocalareanetworks,WLAN)(如无线保真(wirelessfidelity,Wi_Fi)网络),蓝牙emittingdiode,OLED)、有源矩阵有机发光二极体或主动矩阵有机发光二极体(active_matrixorganiclightemittingdiode,AMOLED)、柔性发光二极管(flexlight_[0071]视频编解码器用于对数字视频压缩或解压缩。电子设备100可以支持一种或多种[0073]内部存储器121可以用于存储计算机可执行程序代码,所述可执行程序代码包括[0075]音频模块170用于将数字音频信息转换成模拟音频信号输出,也用于将模拟音频[0082]气压传感器180C用于测量气压。在一些实施例中,电子设备100通过气压传感器[0083]加速度传感器180E可检测电子设备100在各个方向上(一般为三轴)加速度的大Android系统分为四层,从上至下分别为应用程序层,应用程序框架层,安卓运行时[0096]应用程序框架层为应用程序层的应用程序提供应用编程接口(application[0098]如图2所示,应用程序框架层可以包括窗口管理服务(windowmanagWMS),内容提供器,活动管理服务(activitymanagerservice,AMS),软件包管理服务息提醒等。通知管理器还可以是以图表或者滚动条文本形式出现在系统顶部状态栏的通到特定swap分区(系统通常会在磁盘上开辟一块[0129]在视频播放场景下涉及了较多的缓存,图3示出了第一应用播放视频时的缓存循[0130]当第一应用进入后台运行时,上述第一应用播放视频时涉及的缓存仍然不会析例如可以标记各个缓存的状态,OpenMAX组件用于调用硬件解码器对缓存中的待解码数据(例如通用内存管理器ion)负责分配和释放,应用退后台后并不会告知该是用户在视频界面上通过在显示屏底部上滑或者通过点击home键(虚拟按键、悬浮按键或实体按键)返回桌面或主界面的输入。第一输入也可以是用户在当前视频播放界面上调出本申请实施例的技术方案可以对第一应用相关的缓存进行物理内以按照本申请实施例提供的技术方案进行物理内存回收的应应用中包括第一应用,并且可以根据第一应用的配置信息提前确定第一应用进入后台时,列表上包括进入后台后可以实施本申请实施例的技术方案进行物理内存回收的应用的标[0141]在AMS确定第一应用进入后台后并且该第一应用可以进行物理内存回收后,可以存是媒体模块持有的处于输出缓存队列的待第一应用使用的填充解码结[0142]除了媒体模块持有的缓存,第一缓存集合还可以包括第媒体模块持有的待被第一应用消耗的填充解码结果的输出缓存317,第五缓存可以为第一[0145]当电子设备接收用户的第二输入时,AMS可以确定第二输入用于使得第一应用返[0160]为了具体介绍本申请实施例提供的技术方案的具体细节,图6示出了第一视频解[0161]如图6所示,在AndroidQ之前媒体模块包括三个组件,分别为MeAcodec组件,OpenMAX组件,在视频解码过程中,MediaCodec组件通过Acodec组件调用OpenMAX组件,从而调用硬件解码器实现硬件编解码。目前,在AndroidQ上推出Codec2.0,取代Acodec组件和OpenMAX组件,下面仅以媒体模块包括MediaCodec组件,块持有的缓存和显示模块持有的缓存。其中,图6中示意性示出了第一应用持有两个缓存[0163]媒体模块的MediaCodec组件可以标记缓存被谁使用或被谁持有。可以通过记缓存为MediaCodec组件持有的输入缓存或者是第一应用持有的输入缓存,可以通过[0165]第一应用持有的缓存可以包括输入缓存和输出缓存,图6示意了第一应用持有的UPSTREAM”,指示该缓存为输入缓存,且被第一应用持有,该缓存已经被第一应用通过[0166]显示模块持有的缓存如图6的缓存508所示,被标记为“OWNED_BY_NATIVE_存可以包括空输入缓存(第二缓存),空输入缓存可以如图6的缓存503所示(或者也可以如充待解码数据的缓存还未使用该待解码数据时的缓存,该缓存会很快被传递给Acodec组件处理。组件获取后会很快传递给Acodec组件继而送到显示模块的接口可以包括第一应用获取输入缓存或输出缓存的接口,从而减小由于大多数缓存被OpenMAX组件持有导致第一应用请求输入或输出缓存时出现错误(输入输出缓存队列中没也可以称为OpenMAX组件持有的缓存或部分填充解码结果的缓存。由于该第三缓存中填充[0174]在一个实施例中,可以将该解码结果保存之后再回收该第三缓存对应的物理内交换区或者外部存储介质上等,或者也可以将压缩后的解码结果转移到内存的其他位置位置转移到内存中连续2KB的物理内存处),之后对该第三缓存对应的物理内存进行回收;过页交换的形式换到内存的交换区或外部存储介质上,重新为该第三缓存分配物理内存[0176]当第一缓存集合中可以包括第四缓存时,第四缓存是处而避免第一应用释放该第五缓存后,媒体模块访问该第五缓存从而引起系统问题的可能预设时长内,Acodec组件可以将处理的填充解码结果的输出缓存传递给MediaCodec组件,[0184]上文介绍了本申请实施例的技术方案可以回收的缓存类别,针对不同的回收策口。在同步模式下,第一应用主动从媒体模块获取输入缓存和输出缓存。第一应用通过dequeueInputBuffer()接口从媒体模块获取空输入缓存(第二缓存),并且通过或输出缓存。当第一应用将空输入缓存填充待解码数据后可以通过queueInputBuffer()以通过onInputBufferAvailable()接口向第一应用释放该输入缓存,第一应用获取该输入缓存后向其中填充待解码数据,并通过queueInputBuffer()接口将该缓存传递给媒体模块。媒体模块解码完成后,将填充解码结果的输出缓存通过onOutputBufferAvailablereleaseOutputBuffer()接口释放输出缓存。[0187]在同步模式下,可以拦截dequeueInputBuffer()接口和dequeueOutnputBuffer[0190]如前文所述,上述拦截对应的接口可以是冻结第一应用使用该接口的进程或线当第一应用回收物理内存不需要回收前文提及的第五缓存时,则相应的接口不包括releaseOutputBuffer()接口。缓存的访问相关的接口,该第一缓存集合中的缓存属于与该第一应用610播放的第一视频该第三缓存是该媒体模块620持有的正在填充解码结果的输出缓存,该第四缓存是该媒体或线程使用与该第一缓存中集合中的缓存的访问相关的接口时,冻结该第一应用610的至缓存重新分配物理内存,将该压缩的解码结果解压缩后填充至该重新分配的物理内存中;一应用610获取该媒体模块620主动释放的该第二缓存,该第二接口用于该第一应用610获该第六缓存为该第一应用610传递给该媒体模块620的填充待解的通信接口。总线740可以是外设部件互连标准(peripheralcomponentinterconne

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论