问题起因: 获取进程实时 CPU 占用率,还在看这方面东西,如有更好方法提供也非常感谢。
问题描述:
Release 环境下,没有自身进程相关信息,即使去掉-o
部分,输出的也只有一条其他进程的信息。
测试设备: Google Pixel 3 Android 12 Android Studio Chipmunk | 2021.2.1 Patch 2
代码:
mBinding.btnConfirmAttCpu.setOnClickListener {
val runtime = Runtime.getRuntime()
val cmd = arrayOf("sh","-c","top -n 1 -p ${Process.myPid()} -o PID,%CPU")
val exec = runtime.exec(cmd)
exec.inputStream.reader().apply {
mBinding.displayCpuAttCpu.text = readLines().joinToString("${System.lineSeparator()}${System.lineSeparator()}")
close()
}
exec.destroy()
}
Debug 输出:
[s [999C [999B [6n [u [H [J [?25l [H [J [s [999C [999B [6n [uTasks: 1 total, 0 running, 1 sleeping, 0 stopped, 0 zombie
Mem: 3665332K total, 3516028K used, 149304K free, 4520K buffers
Swap: 2097148K total, 590344K used, 1506804K free, 1975304K cached
800%cpu 0%user 0%nice 0%sys 800%idle 0%iow 0%irq 0%sirq 0%host
[7m PID[%CPU [0m
24654 12.0
[?25h [0m [1000;1H [K [?25h [?25h [0m [1000;1H [K
Release 输出:
[s [999C [999B [6n [u [H [J [?25l [H [J [s [999C [999B [6n [uTasks: 0 total, 0 running, 0 sleeping, 0 stopped, 0 zombie
Mem: 3665332K total, 3537360K used, 127972K free, 4520K buffers
Swap: 2097148K total, 542884K used, 1554264K free, 1971444K cached
800%cpu 0%user 0%nice 0%sys 800%idle 0%iow 0%irq 0%sirq 0%host
[7m PID[%CPU [0m
[?25h [0m [1000;1H [K [?25h [?25h [0m [1000;1H [K
这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。
V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。
V2EX is a community of developers, designers and creative people.