需要用到随机读取RandomAccessFile 类,常规的File IO流读取不到数据

 

public static void getProcessStatus(String pid) {
        try {
            RandomAccessFile reader2 = new RandomAccessFile("/proc/"+ pid +"/status", "r");
            String str;
            while ((str = reader2.readLine()) != null){
                Log.d("ddebug",str);
            }
            reader2.close();
        } catch (IOException e) {
            e.printStackTrace();
        }
    }

 

调用:

FileUtil.getProcessStatus(Process.myPid().toString())

结果如下:

2021-03-29 22:32:36.540 31572-31640/com.example.myprocstatus D/ddebug: Name:	le.myprocstatus
2021-03-29 22:32:36.541 31572-31640/com.example.myprocstatus D/ddebug: Umask:	0077
2021-03-29 22:32:36.541 31572-31640/com.example.myprocstatus D/ddebug: State:	S (sleeping)
2021-03-29 22:32:36.541 31572-31640/com.example.myprocstatus D/ddebug: Tgid:	31572
2021-03-29 22:32:36.541 31572-31640/com.example.myprocstatus D/ddebug: Ngid:	0
2021-03-29 22:32:36.541 31572-31640/com.example.myprocstatus D/ddebug: Pid:	31572
2021-03-29 22:32:36.541 31572-31640/com.example.myprocstatus D/ddebug: PPid:	672
2021-03-29 22:32:36.542 31572-31640/com.example.myprocstatus D/ddebug: TracerPid:	0
2021-03-29 22:32:36.542 31572-31640/com.example.myprocstatus D/ddebug: Uid:	10251	10251	10251	10251
2021-03-29 22:32:36.542 31572-31640/com.example.myprocstatus D/ddebug: Gid:	10251	10251	10251	10251
2021-03-29 22:32:36.542 31572-31640/com.example.myprocstatus D/ddebug: FDSize:	128
2021-03-29 22:32:36.543 31572-31640/com.example.myprocstatus D/ddebug: Groups:	3003 9997 20251 50251 
2021-03-29 22:32:36.543 31572-31640/com.example.myprocstatus D/ddebug: VmPeak:	 5893916 kB
2021-03-29 22:32:36.543 31572-31640/com.example.myprocstatus D/ddebug: VmSize:	 5891928 kB
2021-03-29 22:32:36.543 31572-31640/com.example.myprocstatus D/ddebug: VmLck:	       0 kB
2021-03-29 22:32:36.544 31572-31640/com.example.myprocstatus D/ddebug: VmPin:	       0 kB
2021-03-29 22:32:36.544 31572-31640/com.example.myprocstatus D/ddebug: VmHWM:	  125604 kB
2021-03-29 22:32:36.544 31572-31640/com.example.myprocstatus D/ddebug: VmRSS:	  125564 kB
2021-03-29 22:32:36.544 31572-31640/com.example.myprocstatus D/ddebug: RssAnon:	   42864 kB
2021-03-29 22:32:36.545 31572-31640/com.example.myprocstatus D/ddebug: RssFile:	   82224 kB
2021-03-29 22:32:36.545 31572-31640/com.example.myprocstatus D/ddebug: RssShmem:	     476 kB
2021-03-29 22:32:36.545 31572-31640/com.example.myprocstatus D/ddebug: VmData:	 1724852 kB
2021-03-29 22:32:36.545 31572-31640/com.example.myprocstatus D/ddebug: VmStk:	    8192 kB
2021-03-29 22:32:36.545 31572-31640/com.example.myprocstatus D/ddebug: VmExe:	      28 kB
2021-03-29 22:32:36.546 31572-31640/com.example.myprocstatus D/ddebug: VmLib:	  166308 kB
2021-03-29 22:32:36.546 31572-31640/com.example.myprocstatus D/ddebug: VmPTE:	    1052 kB
2021-03-29 22:32:36.546 31572-31640/com.example.myprocstatus D/ddebug: VmPMD:	      40 kB
2021-03-29 22:32:36.546 31572-31640/com.example.myprocstatus D/ddebug: VmSwap:	   15388 kB
2021-03-29 22:32:36.547 31572-31640/com.example.myprocstatus D/ddebug: Threads:	22
2021-03-29 22:32:36.547 31572-31640/com.example.myprocstatus D/ddebug: SigQ:	0/29564
2021-03-29 22:32:36.547 31572-31640/com.example.myprocstatus D/ddebug: SigPnd:	0000000000000000
2021-03-29 22:32:36.547 31572-31640/com.example.myprocstatus D/ddebug: ShdPnd:	0000000000000000
2021-03-29 22:32:36.548 31572-31640/com.example.myprocstatus D/ddebug: SigBlk:	0000000080001204
2021-03-29 22:32:36.548 31572-31640/com.example.myprocstatus D/ddebug: SigIgn:	0000000000000001
2021-03-29 22:32:36.548 31572-31640/com.example.myprocstatus D/ddebug: SigCgt:	0000000e400084f8
2021-03-29 22:32:36.549 31572-31640/com.example.myprocstatus D/ddebug: CapInh:	0000000000000000
2021-03-29 22:32:36.549 31572-31640/com.example.myprocstatus D/ddebug: CapPrm:	0000000000000000
2021-03-29 22:32:36.550 31572-31640/com.example.myprocstatus D/ddebug: CapEff:	0000000000000000
2021-03-29 22:32:36.550 31572-31640/com.example.myprocstatus D/ddebug: CapBnd:	0000000000000000
2021-03-29 22:32:36.551 31572-31640/com.example.myprocstatus D/ddebug: CapAmb:	0000000000000000
2021-03-29 22:32:36.551 31572-31640/com.example.myprocstatus D/ddebug: Seccomp:	2
2021-03-29 22:32:36.552 31572-31640/com.example.myprocstatus D/ddebug: Speculation_Store_Bypass:	unknown
2021-03-29 22:32:36.552 31572-31640/com.example.myprocstatus D/ddebug: Cpus_allowed:	ff
2021-03-29 22:32:36.553 31572-31640/com.example.myprocstatus D/ddebug: Cpus_allowed_list:	0-7
2021-03-29 22:32:36.553 31572-31640/com.example.myprocstatus D/ddebug: Mems_allowed:	1
2021-03-29 22:32:36.553 31572-31640/com.example.myprocstatus D/ddebug: Mems_allowed_list:	0
2021-03-29 22:32:36.554 31572-31640/com.example.myprocstatus D/ddebug: voluntary_ctxt_switches:	219
2021-03-29 22:32:36.554 31572-31640/com.example.myprocstatus D/ddebug: nonvoluntary_ctxt_switches:	192

 

adb shell 获取数据如下:

E:\sdk\platform-tools>adb shell cat /proc/31572/status
Name:   le.myprocstatus
Umask:  0077
State:  S (sleeping)
Tgid:   31572
Ngid:   0
Pid:    31572
PPid:   672
TracerPid:      0
Uid:    10251   10251   10251   10251
Gid:    10251   10251   10251   10251
FDSize: 128
Groups: 3003 9997 20251 50251
VmPeak:  5893916 kB
VmSize:  5790916 kB
VmLck:         0 kB
VmPin:         0 kB
VmHWM:    126272 kB
VmRSS:    125456 kB
RssAnon:           42176 kB
RssFile:           82680 kB
RssShmem:            600 kB
VmData:  1722796 kB
VmStk:      8192 kB
VmExe:        28 kB
VmLib:    166308 kB
VmPTE:      1048 kB
VmPMD:        40 kB
VmSwap:    15384 kB
Threads:        16
SigQ:   0/29564
SigPnd: 0000000000000000
ShdPnd: 0000000000000000
SigBlk: 0000000080001204
SigIgn: 0000000000000001
SigCgt: 0000000e400084f8
CapInh: 0000000000000000
CapPrm: 0000000000000000
CapEff: 0000000000000000
CapBnd: 0000000000000000
CapAmb: 0000000000000000
Seccomp:        2
Speculation_Store_Bypass:       unknown
Cpus_allowed:   ff
Cpus_allowed_list:      0-7
Mems_allowed:   1
Mems_allowed_list:      0
voluntary_ctxt_switches:        288
nonvoluntary_ctxt_switches:     232

 

Logo

为开发者提供学习成长、分享交流、生态实践、资源工具等服务,帮助开发者快速成长。

更多推荐