购买
下载掌阅APP,畅读海量书库
立即打开
畅读海量书库
扫码下载掌阅APP

1.2.1 maps文件

为了清晰地了解Android系统中进程的内存数据组成,我们首先需要了解maps文件。在Linux系统中,/proc/{pid}/maps路径下的文件记录了每个进程的虚拟内存所映射的数据信息,其中{pid}是进程的id。

对于root的手机,我们可以通过cat/proc/xxx/maps命令直接查看某个进程的maps文件,图1-7展示了Android系统中某个程序的部分maps文件数据。

图1-7 部分maps文件数据

以图1-7中的第一行数据为例,从左至右对各个数据段的解释如下:

❑12c00000-32c00000(address,地址):本段内存映射的虚拟地址空间范围。

❑rw-p(perms,权限):该内存区域的访问权限。

❑00000000(offset,偏移值):本段映射地址在文件中的偏移。

❑00:00(dev,设备号):映射文件所属设备的设备号,由主设备号和次设备号两部分组成。主设备号用于标识设备的类型,如字符设备或块设备;次设备号用于标识同一类型设备中的具体设备。如果是匿名映射,如堆、栈等空间,设备号则为00:00。

❑0(inode,索引):映射文件的索引节点号。inode可以用来识别文件的内容和属性,而不依赖文件名。文件名只是inode的别名,可以有多个文件名指向同一个inode。如果是匿名映射,inode则为0。

❑[anon:dalvik-main space(region space)](路径名,pathname):映射文件的路径名。如果是匿名映射,路径名则为空。 AabRqe47dfQVU8t+UQFodWj+wkmuyzG8+QyMqLWIKPAvdx3ZSGEN6aHsCLIv7r8Y

点击中间区域
呼出菜单
上一章
目录
下一章
×