losf命令说明
lsof(list open files)是linux中一个列出当前系统打开文件的工具。也可以在android系统中使用。
lsof输出各列信息的意义如下:
COMMAND:进程的名称
PID:进程标识符
USER:进程所有者
FD:文件描述符,应用程序通过文件描述符识别该文件。
TYPE:文件类型,如DIR、REG等
DEVICE:指定磁盘的名称
SIZE:文件的大小
NODE:索引节点(文件在磁盘上的标识)
NAME:打开文件的确切名称
检查anroid系统中进程是否存在文件句柄未关闭
使用userdebug版本,进入adb shell, 使用命令: lsof | grep sddemo (举例sddemo进程),可以看到已经有十多个被打开的文件。
接下来去操作这个进程,检查fd是否会一直增长。如果一直不停增长且不会恢复到原始状态,那么就有泄漏的可能。从下图中可以看到,通过反复的操作,fd已经增长到了100多个。这种情况就可以根据的被打开的文件来排查相关代码是否存在未关闭文件句柄。