android 如何分析应用的内存(六)
接上文,本系列文章,最重要的部分——————对native堆内存的分析,即将上演
分成六大板块:
- 手动实现,new和delete,以及malloc和freee,并统计内存分配情况
- 使用malloc hook
- 使用Malloc debug和libc回调
- 使用malloc统计和libmemunreachable
- 使用HWASan/Asan工具,查找内存错误
- 使用perfetto工具,他也可以分析java部分
本篇文章,实现第一个板块,并作为后续内存分析的基础知识。
先对,用到的理论知识,做说明,然后再进行实现。
理论篇
我们先简单介绍操作系统的系统调用,然后简单说明android libc对其的封装,最后是我们自己对libc的分配函数的封装,以达到内存统计分析的目的
系统调用
对于内存而言,它属于系统资源,它的管理者是操作系统。而为了让用户能够使用系统的资源。有三种系统调用,提供给用户。分别是:
- brk系统调用:用