[发明专利]安卓平台中Native内存监控方法在审
申请号: | 202111102069.1 | 申请日: | 2021-09-18 |
公开(公告)号: | CN115827364A | 公开(公告)日: | 2023-03-21 |
发明(设计)人: | 王一达 | 申请(专利权)人: | 书行科技(北京)有限公司 |
主分类号: | G06F11/30 | 分类号: | G06F11/30 |
代理公司: | 上海市海华永泰律师事务所 31302 | 代理人: | 王波 |
地址: | 100006 北京市朝*** | 国省代码: | 北京;11 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 平台 native 内存 监控 方法 | ||
本发明提供一种安卓平台中Native内存监控方法,其特征在于,包括:获取ELF基地址的步骤;获取所述ELF的重定位信息的步骤;用钩子函数接管所述ELF调用内存分配函数的步骤。本发明还提供第二种安卓平台中Native内存监控方法,包括:创建函数数组的步骤,其中所述函数数组中的每个元素均为钩子函数;获取多个ELF基地址的步骤;获取每个所述ELF的重定位信息的步骤;用所述函数数组中的元素分别接管所述每个ELF调用内存分配函数的步骤。
技术领域
本发明提供一种内存监控方法,尤其涉及一种安卓平台中Native内存监控方法。
背景技术
安卓平台APP内存由java堆内存和native内存两部分组成,java对象的分配和回收发生在java堆内存中,该部分内存的回收由JVM垃圾收集器管理,内存泄露的问题尚不突出。而native内存分配由程序员调用C/C++中的malloc等函数分配,该部分内存不在堆内,因此不会被Java垃圾收集器释放,因此该部分内存泄露的问题较为突出。
要解决Native内存泄露问题,就需要先对Native内存的分配进行监控,才能追踪内存使用情况,定位内存泄露的原因。目前针对native内存监控一直缺乏高效、便捷的工具,仅有的malloc debug在性能和稳定性上难以满足需要,而且还存在版本兼容性差的问题。
发明内容
鉴于以上所述现有技术的缺点,本发明的目的在于提供一种安卓平台中Native内存监控方法,其特征在于,包括:获取ELF基地址的步骤;获取所述ELF的重定位信息的步骤;用钩子函数接管所述ELF调用内存分配函数的步骤。
优选地,上述安卓平台中Native内存监控方法中,所述获取ELF基地址通过调用dl_iterate_phdr获得。
优选地,上述安卓平台中Native内存监控方法中,通过解析/proc/self/maps文件,将其中offset为0的记录对应的地址作为所述ELF的基地址。
优选地,上述安卓平台中Native内存监控方法中,所述重定位信息包括.got,.plt,.rel.plt,.rel.dyn中的信息。
优选地,上述安卓平台中Native内存监控方法中,所述用钩子函数接管调用的步骤包括:将所述重定位信息所在内存属性修改成可写;将所述重定位信息所在内存赋值为所述钩子函数的地址。
优选地,上述安卓平台中Native内存监控方法中,所述用钩子函数接管调用的步骤还包括:复位所述重定位信息所在内存属性的步骤。
本发明还提供第二种安卓平台中Native内存监控方法,包括:创建函数数组的步骤,其中所述函数数组中的每个元素均为钩子函数;获取多个ELF基地址的步骤;获取每个所述ELF的重定位信息的步骤;用所述函数数组中的元素分别接管所述每个ELF调用内存分配函数的步骤。
优选地,上述安卓平台中Native内存监控方法中,所述函数数组中的每个钩子函数,每隔预设的时间T就将所述ELF内存调用的情况输出到CSV文件。
优选地,上述安卓平台中Native内存监控方法中,通过解析/proc/self/maps文件,将其中offset为0的记录对应的地址作为所述ELF的基地址。
附图说明
图1是本发明的Native内存监控方法流程图;
图2是/proc/self/maps文件内容示意图。
具体实施方式
以下通过特定的具体实例说明本发明的实施方式,本领域技术人员可由本说明书所揭露的内容轻易地了解本发明的其他优点与功效。本发明还可以通过另外不同的具体实施方式加以实施或应用,本说明书中的各项细节也可以基于不同观点与应用,在没有背离本发明的精神下进行各种修饰或改变。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于书行科技(北京)有限公司,未经书行科技(北京)有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/202111102069.1/2.html,转载请声明来源钻瓜专利网。
- 上一篇:一株假单胞菌Pse-1及其应用
- 下一篇:一种液体分流系统、控制方法及装置