[發明專利]安卓平臺中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.szxzyx.cn/pat/books/202111102069.1/2.html,轉載請聲明來源鉆瓜專利網。
- 上一篇:一株假單胞菌Pse-1及其應用
- 下一篇:一種液體分流系統、控制方法及裝置





