图像内存分析方法、装置、电子设备和存储介质制造方法及图纸

技术编号:27876936 阅读:16 留言:0更新日期:2021-03-31 00:55
本发明专利技术实施例公开了一种图像内存分析方法、装置、电子设备和存储介质,图像内存分析方法包括:当检测到图像处理函数被应用程序调用时,控制应用程序跳转至预设的钩子函数,钩子函数用于获取图像处理函数的运行信息;接收钩子函数返回的运行信息;根据运行信息对应用程序的图像内存进行分析得到图像内存分析结果;控制应用程序跳转至图像处理函数。本发明专利技术实现了在应用程序调用图像处理函数时跳转到钩子函数,通过钩子函数来钩取图像处理函数获得运行信息,根据运行信息分析应用程序的图像内存结果,使得开发人员能够针对应用程序的图像进行分析,可以根据图像分析优化应用程序的开发,提高应用程序的稳定性。

【技术实现步骤摘要】
图像内存分析方法、装置、电子设备和存储介质
本专利技术实施例涉及应用程序内存分析
,尤其涉及一种图像内存分析方法、装置、电子设备和存储介质。
技术介绍
在移动直播应用程序中,内存的使用是开发者关注的热点,优化好内存,可以使移动直播应用程序播放视频时帧率更加稳定,降低因为内存不足而导致移动直播应用程序崩溃的概率。在移动直播应用程序运行过程中,bitmap(图像处理类)消耗的内存比例最高,移动直播应用程序内存优化的切入点在于分析bitmap的内存占用来优化内存。现有移动直播应用程序分析内存的方法,开发人员大多是基于Androidstudio的MemoryProfiler分析工具来分析内存,但是该工具是分析移动直播应用程序运行过程中占用的所有内存,并没有针对bitmap,内存分析粒度比较粗糙,应用程序开发人员无法获取bitmap详细占用内存的情况来优化设计应用程序。
技术实现思路
本专利技术实施例提供一种图像内存分析方法、装置、电子设备和存储介质,以解决现有技术中无法对应用程序的图像内存进行精细粒度分析的问题。第一方面,本专利技术实施例提供了一种图像内存分析方法,应用于应用程序中分析图像内存,包括:当检测到图像处理函数被应用程序调用时,控制所述应用程序跳转至预设的钩子函数,所述钩子函数用于获取所述图像处理函数的运行信息;接收所述钩子函数返回的运行信息;根据所述运行信息对所述应用程序的图像内存进行分析得到图像内存分析结果;控制所述应用程序跳转至所述图像处理函数。第二方面,本专利技术实施例提供了一种图像内存分析装置,应用于应用程序中分析图像内存,包括:钩子函数跳转模块,用于当检测到图像处理函数被应用程序调用时,控制所述应用程序跳转至预设的钩子函数,所述钩子函数用于获取所述图像处理函数的运行信息;运行信息接收模块,用于接收所述钩子函数返回的运行信息;内存分析模块,用于根据所述运行信息对所述应用程序的图像内存进行分析得到图像内存分析结果;图像处理函数跳转模块,用于控制所述应用程序跳转至所述图像处理函数。第三方面,本专利技术实施例提供了一种电子设备,所述电子设备包括:一个或多个处理器;存储装置,用于存储一个或多个程序,当所述一个或多个程序被所述一个或多个处理器执行,使得所述一个或多个处理器实现本专利技术所述的图像内存分析方法。第四方面,本专利技术实施例提供了一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现本专利技术所述的图像内存分析方法。本专利技术实施例的图像内存分析方法,应用于应用程序中分析图像内存,当检测到图像处理函数被应用程序调用时,控制应用程序跳转至预设的钩子函数,钩子函数用于获取图像处理函数的运行信息,在接收所述钩子函数返回的运行信息后,根据运行信息对应用程序的图像内存进行分析得到图像内存分析结果,控制应用程序跳转至所述图像处理函数。本专利技术实施例实现了在应用程序调用图像处理函数来处理图像时跳转到钩子函数,通过钩子函数来钩取图像处理函数获取到图像处理函数的运行信息,根据该运行信息对图像处理函数的内存进行分析,能够针对性地对应用程序的图像内存进行分析,高度精细化的分析应用程序的图像内存,使得开发人员可以根据应用程序运行过程中的图像内存分析结果来优化应用程序的开发,提高应用程序的稳定性。附图说明图1是本专利技术实施例一提供的一种图像内存分析方法的步骤流程图;图2是本专利技术实施例二提供的一种图像内存分析方法的步骤流程图;图3是本专利技术的一个示例中图像内存分析方法的流程图;图4是本专利技术实施例三提供的一种图像内存分析装置的结构框图;图5是本专利技术实施例四提供的一种电子设备的结构示意图。具体实施方式下面结合附图和实施例对本专利技术作进一步的详细说明。可以理解的是,此处所描述的具体实施例仅仅用于解释本专利技术,而非对本专利技术的限定。另外还需要说明的是,为了便于描述,附图中仅示出了与本专利技术相关的部分而非全部结构。在不冲突的情况下,本申请中的实施例及实施例中的特征可以相互结合。实施例一图1为本专利技术实施例一提供的一种图像内存分析方法的步骤流程图,本专利技术实施例可适用于应用程序运行过程中分析图像内存的情况,该方法可以由本专利技术实施例的图像内存分析装置来执行,该图像内存分析装置可以由硬件或软件来实现,并集成在本专利技术实施例所提供的电子设备中,具体地,如图1所示,本专利技术实施例的图像内存分析方法可以包括如下步骤:S101、当检测到图像处理函数被应用程序调用时,控制所述应用程序跳转至预设的钩子函数,所述钩子函数用于获取所述图像处理函数的运行信息。在本专利技术实施例中,应用程序可以是直播、短视频等应用程序,以直播应用程序为示例,在直播应用程序中,当响应用户的操作进行图像操作时,图像处理函数被调用,在一个场景中,当用户点击礼物打赏时,在直播界面展示打赏礼物的画面,则需要生成该礼物的图像,由此触发直播应用程序调用图像处理函数来生成礼物的图像,在另一个场景中,当用户需要在直播界面展示某种动画特效时,响应用户的操作后触发直播应用程序调用图像处理函数来生成特效的图像。其中,图像处理函数可以是生成图像的函数,还可以是对图像进行翻转、缩放、裁剪、颜色变换等编辑的函数,在Android系统中,图像处理函数可以是bitmap,bitmap是用于处理由像素数据定义的图像的对象,bitmap可以获取和设置图像的像素的颜色、返回图像的像素格式、获取和设置图像所使用的颜色调色板、返回图像的高度和宽度、改变图像的尺寸大小等。钩子函数(hook函数)是一个处理消息的代码段,采用hook函数可以钩住目标函数,如果有其他函数向该目标函数发送消息时,不会先运行该目标函数,而是先运行hook函数。在hook函数的运行过程中,可以先对传递给目标函数的消息进行加工处理再传递给该目标函数,也可以直接将该消息传递给目标函数,也可以强制结束该消息的传递。在本专利技术实施例中,钩子函数所实现的功能可以是钩住图像处理函数,获取图像处理函数运行过程中的运行信息,如获取图像处理函数的名称、所使用的线程名称、线程开始时间、线程结束时间、栈信息、处理的图像、所使用的内存大小等,由本领域技术人员可以根据内存分析业务设置钩子函数获取图像处理函数的相关运行信息,本专利技术实施例对此不作限制。具体到本专利技术实施例中,当检测到图像处理函数被应用程序调用后,图像处理函数向系统请求创建线程、请求内存等操作,可以在应用程序所执行的指令中插入跳转指令来控制应用程序跳转到钩子函数,通过钩子函数来获取图像处理函数的运行信息,示例性地,可以通过钩子函数来获取图像处理函数运行过程中的各种信息,如请求信息等以获得相关的运行信息,在该钩子函数获取图像处理函数的各种运行信息后可以存储到存储器中。S102、接收所述钩子函数返回的运行信息。在本专利技术实施例中,钩子函数设置有返回地址,该返回地址可以是钩子函数存储运行结果的地址,具本文档来自技高网...

【技术保护点】
1.一种图像内存分析方法,其特征在于,应用于应用程序中分析图像内存,包括:/n当检测到图像处理函数被应用程序调用时,控制所述应用程序跳转至预设的钩子函数,所述钩子函数用于获取所述图像处理函数的运行信息;/n接收所述钩子函数返回的运行信息;/n根据所述运行信息对所述应用程序的图像内存进行分析得到图像内存分析结果;/n控制所述应用程序跳转至所述图像处理函数。/n

【技术特征摘要】
1.一种图像内存分析方法,其特征在于,应用于应用程序中分析图像内存,包括:
当检测到图像处理函数被应用程序调用时,控制所述应用程序跳转至预设的钩子函数,所述钩子函数用于获取所述图像处理函数的运行信息;
接收所述钩子函数返回的运行信息;
根据所述运行信息对所述应用程序的图像内存进行分析得到图像内存分析结果;
控制所述应用程序跳转至所述图像处理函数。


2.根据权利要求1所述的方法,其特征在于,在控制所述应用程序跳转至预设的钩子函数之前,还包括:
当检测到图像处理函数被应用程序调用时,确定所述图像处理函数的函数地址;
将所述函数地址中预先指定的指令替换为跳转到钩子函数的跳转指令。


3.根据权利要求2所述的方法,其特征在于,所述当图像处理函数被应用程序调用时,确定所述图像处理函数的函数地址,包括:
获取所述应用程序加载系统的动态链接库的内存加载地址以及所述图像处理函数在所述动态链接库的目标地址;
根据所述内存加载地址和所述目标地址确定出所述图像处理函数的函数地址。


4.根据权利要求2所述的方法,其特征在于,所述控制所述应用程序跳转至预设的钩子函数,包括:
当所述图像处理函数被应用程序调用时执行所述函数地址中的指令;
在执行到所述跳转指令时,跳转到所述钩子函数。


5.根据权利要求2所述的方法,其特征在于,在控制所述应用程序跳转至所述图像处理函数之前,还包括:
在所述跳转指令执行后,将所述预先指定的指令还原到所述函数地址中。


6.根据权利要求5所述的方法,其特征在于,所述控制所述应用程序跳转至所述图像处理函数,包括:
在所述钩子函数运行结束后,跳转至执行还原后的所述预先指定的指令以控制所述应用程序跳转至所述图像处理函数。


7.根据权利要求1-6任一项所述的方法,其特征在于,所述运行信息包括所述图像处理函数的函数名称、线程名称、线程创建时间、线程结束时间、栈信息、图像尺寸、内存占用大小中的至少一项。


8.根据权利要求7所述的方...

【专利技术属性】
技术研发人员:杨键
申请(专利权)人:百果园技术新加坡有限公司
类型:发明
国别省市:新加坡;SG

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

1