一种皮肤资源加载方法及电子设备技术

技术编号:11183036 阅读:85 留言:0更新日期:2015-03-25 12:11
本发明专利技术涉及互联网技术领域,公开了一种皮肤资源加载方法及电子设备,以解决现有技术中子进程加载皮肤资源时性能低的技术问题,该方法应用于电子设备中,电子设备上运行有应用程序,应用程序包含主进程和至少一个子进程,包括:至少一个子进程中的第一子进程向主进程发起皮肤资源获取请求,皮肤资源获取请求用于获取第一皮肤资源;主进程接收到皮肤资源获取请求之后,复制第一皮肤资源的句柄值并发送给第一子进程;第一子进程通过句柄值从主进程的地址空间加载第一皮肤资源,达到了提高子进程加载皮肤资源的性能的技术效果。

【技术实现步骤摘要】

本专利技术涉及互联网领域,尤其涉及一种皮肤资源加载方法及电子设备
技术介绍
进程是计算机操作系统分配资源的最小单位,每个进程有自己的独立地址空间。目前多数软件采用多进程架构。多进程应用程序包括一个主进程和多个子进程,主进程主要负责界面相关的工作,子进程负责一些后台操作,比如数据处理等。基于不同任务,子进程有可能处理涉及界面相关的工作,这时子进程加载界面时就需要使用皮肤资源。如图1所示,为现有技术中子进程加载皮肤资源的流程图,具体包括以下步骤:步骤S101:开始阶段;步骤S102:子进程进行界面绘制;步骤S103:从应用程序的皮肤磁盘路径加载皮肤资源到内容;步骤S104:获取皮肤资源对应的图片进行界面绘制;步骤S105:结束。以上方案至少存在以下技术问题:(1)速度慢,子进程进行界面绘制所需的皮肤资源,首先需要从磁盘路径去加载皮肤文件到内存,然后获取图片资源,最后再进行界面的绘制。读磁盘IO操作的CPU、时间开销比较大,如果用户计算机性能低,界面会出现卡顿的现象。(2)占用内存,皮肤资源已经在主进程的地址空间中存在一份,再加载一份资源到子进程地址空间,增加了应用程序的内存开销,造成系统资源的浪费。
技术实现思路
本申请实施例提供了一种皮肤资源加载方法及电子设备,以解决现有技术中子进程加载皮肤资源时性能低的技术问题。第一方面,本专利技术实施例提供一种皮肤资源加载方法,应用于电子设备中,所述电子设备上运行有应用程序,所述应用程序包含主进程和至少一个子进程,包括:所述至少一个子进程中的第一子进程向所述主进程发起皮肤资源获取请求,所述皮肤资源获取请求用于获取第一皮肤资源;所述主进程接收到所述皮肤资源获取请求之后,复制所述第一皮肤资源的句柄值并发送给所述第一子进程;所述第一子进程通过所述句柄值从所述主进程的地址空间加载所述第一皮肤资源。可选的,在所述至少一个子进程中的第一子进程向所述主进程发起皮肤资源获取请求步骤之前,所述方法还包括:在启动所述应用程序时,所述主进程将所述应用程序所对应的至少一个皮肤资源以内存映像文件的方式加载到所述主进程的地址空间,并存储所述至少一个皮肤资源的至少一个句柄值。可选的,在所述少一个子进程中的第一子进程向所述主进程发起皮肤资源获取请求步骤之前,所述方法还包括:所述主进程根据所述应用程序的业务需求创建所述至少一个子进程。可选的,所述至少一个子进程中的第一子进程向所述主进程发起皮肤资源获取请求,具体为:所述第一子进程通过所述第一皮肤资源的皮肤资源ID向所述主进程发起所述皮肤资源获取请求;所述主进程复制所述第一皮肤资源的句柄值并发送给所述第一子进程,具体包括:所述主进程根据所述皮肤资源ID确定所述句柄值,通过DuplicateHandle接口复制所述句柄值并将所述复制的句柄值发送给所述第一子进程。可选的,在所述至少一个子进程中的第一子进程向所述主进程发起皮肤资源获取请求步骤之前,所述方法还包括:在检测到所述应用程序调用插件时,确定所述插件所对应的所述第一子进程。第二方面,本专利技术实施例提供一种电子设备,所述电子设备上运行有应用程序,所述应用程序包含主进程和至少一个子进程,所述电子设备包括:请求模块,用于控制所述至少一个子进程中的第一子进程向所述主进程发起皮肤资源获取请求,所述皮肤资源获取请求用于获取第一皮肤资源;写入模块,用于在所述主进程接收到所述皮肤资源获取请求之后,控制所述主进程复制所述第一皮肤资源的句柄值并发送给所述第一子进程;读取模块,用于控制所述第一子进程通过所述句柄值从所述主进程的地址空间加载所述第一皮肤资源。可选的,所述电子设备还包括:加载模块,用于在启动所述应用程序时,控制所述主进程将所述应用程序所对应的至少一个皮肤资源以内存映像文件的方式加载到所述主进程的地址空间,并存储所述至少一个皮肤资源的至少一个句柄值。可选的,所述电子设备还包括:创建模块,用于在所述少一个子进程中的第一子进程向所述主进程发起皮肤资源获取请求步骤之前,控制所述主进程根据所述应用程序的业务需求创建所述至少一个子进程。可选的,所述请求模块,具体用于:控制所述第一子进程通过所述第一皮肤资源的皮肤资源ID向所述主进程发起所述皮肤资源获取请求;所述写入模块,具体用于:所述主进程根据所述皮肤资源ID确定所述句柄值,通过DuplicateHandle接口复制所述句柄值并将所述复制的句柄值发送给所述第一子进程。可选的,所述电子设备还包括:确定模块,用于在检测到所述应用程序调用插件时,确定所述插件所对应的所述第一子进程。本申请有益效果如下:由于在本专利技术实施例中,提供了一种皮肤资源加载方法,应用于电子设备中,电子设备上运行有应用程序,应用程序包含主进程和至少一个子进程,包括:至少一个子进程中的第一子进程向主进程发起皮肤资源获取请求,皮肤资源获取请求用于获取第一皮肤资源;主进程接收到皮肤资源获取请求之后,复制第一皮肤资源的句柄值并发送给第一子进程;第一子进程通过句柄值从主进程的地址空间加载第一皮肤资源。也就是说,第一子进程在需要加载第一皮肤资源时,是直接向主进程请求获取第一皮肤资源的句柄值,然后基于第一皮肤资源的句柄值从主进程的地址空间加载第一皮肤资源,而不需要从磁盘路径去加载皮肤文件到内容,故而提高了子进程加载皮肤资源的性能,防止了界面卡顿现象;且皮肤资源只需要存储于主进程的地址空间,而不需要加载到子进程的地址空间,故而降低了应用程序的内存开销,防止了系统资源的浪费;进一步的,通过上述方案提高了应用程序的性能,从而使应用程序的界面更加流畅,提高了用户的体验度。附图说明图1为现有技术中子进程加载皮肤资源的方法的流程图;图2为本专利技术实施例中皮肤资源加载方法的流程图;图3为本专利技术实施例中电子设备的结构图。具体实施方式本申请实施例提供了一种皮肤资源加载方法及电子设备,以解决现有技术中子进程加载皮肤资源时速度慢的技术问题。本申请实施例的技术方案为解决上述技术问题,总体思路如下:提供了一种皮肤资源加载方法,应用于电子设备中,电子设备上运行有应用程序,应用程序包含主进程和至少一个子进程,包括:至少一个子进程中的第一子进程向主进程发起皮肤资源获取请求,皮肤资源获取请求用于获取第一皮肤资本文档来自技高网...
一种皮肤资源加载方法及电子设备

【技术保护点】
一种皮肤资源加载方法,应用于电子设备中,所述电子设备上运行有应用程序,所述应用程序包含主进程和至少一个子进程,其特征在于,包括:所述至少一个子进程中的第一子进程向所述主进程发起皮肤资源获取请求,所述皮肤资源获取请求用于获取第一皮肤资源;所述主进程接收到所述皮肤资源获取请求之后,复制所述第一皮肤资源的句柄值并发送给所述第一子进程;所述第一子进程通过所述句柄值从所述主进程的地址空间加载所述第一皮肤资源。

【技术特征摘要】
1.一种皮肤资源加载方法,应用于电子设备中,所述电子设备上运行有
应用程序,所述应用程序包含主进程和至少一个子进程,其特征在于,包括:
所述至少一个子进程中的第一子进程向所述主进程发起皮肤资源获取请
求,所述皮肤资源获取请求用于获取第一皮肤资源;
所述主进程接收到所述皮肤资源获取请求之后,复制所述第一皮肤资源的
句柄值并发送给所述第一子进程;
所述第一子进程通过所述句柄值从所述主进程的地址空间加载所述第一
皮肤资源。
2.如权利要求1所述的方法,其特征在于,在所述至少一个子进程中的
第一子进程向所述主进程发起皮肤资源获取请求步骤之前,所述方法还包括:
在启动所述应用程序时,所述主进程将所述应用程序所对应的至少一个皮
肤资源以内存映像文件的方式加载到所述主进程的地址空间,并存储所述至少
一个皮肤资源的至少一个句柄值。
3.如权利要求1所述的方法,其特征在于,在所述至少一个子进程中的
第一子进程向所述主进程发起皮肤资源获取请求步骤之前,所述方法还包括:
所述主进程根据所述应用程序的业务需求创建所述至少一个子进程。
4.如权利要求1所述的方法,其特征在于,所述至少一个子进程中的第
一子进程向所述主进程发起皮肤资源获取请求,具体为:
所述第一子进程通过所述第一皮肤资源的皮肤资源ID向所述主进程发起
所述皮肤资源获取请求;
所述主进程复制所述第一皮肤资源的句柄值并发送给所述第一子进程,具
体包括:
所述主进程根据所述皮肤资源ID确定所述句柄值,通过DuplicateHandle
接口复制所述句柄值并将所述复制的句柄值发送给所述第一子进程。
5.如权利要求1-4任一所述的方法,其特征在于,在所述至少一个子进

\t程中的第一子进程向所述主进程发起皮肤资源获取请求步骤之前,所述方法还
包括:
在检测到所述应用程序调用...

【专利技术属性】
技术研发人员:刘静柯津津陈建军
申请(专利权)人:北京搜狗科技发展有限公司
类型:发明
国别省市:北京;11

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1