我想知道应用程序 A 到应用程序 B 的内存消耗。我了解本网站上讨论的所有技术。但是,它们都不适合我。我的场景是,我已经实现了一个代码,可以通过 top 命令监控任何特定应用程序的 CPU 消耗。但是,top 命令只提供 VSS 和 RSS,而我对 PSS 和 USS 感兴趣。获得这些值的一种方法是通过 procrank。但是,我不确定 procrank 命令是否可以像我尝试过的那样在智能手机上执行,process p2 = Runtime.getRuntime().exec("procrank");
但它不起作用。(编辑:适用于 Android 模拟器(不是智能手机)。有人可以指导我如何通过应用程序 ID 或名称获取 PSS 和 USS,我已经通过 top 命令获取。
问问题
1097 次
1 回答
0
我知道这个问题很老了,我会提出一些建议..
首先在控制台中获得root权限
Process process = Runtime.getRuntime().exec("su");
然后用root权限编写你的命令
su <--command-->
读取流输出
try { Process process = Runtime.getRuntime().exec("su"); DataOutputStream dataOutputStream = new DataOutputStream(process.getOutputStream()); if (dataOutputStream != null) { dataOutputStream.writeBytes("procrank\n"); dataOutputStream.flush(); BufferedInputStream bufferedInputStream = new BufferedInputStream(process.getInputStream()); byte[] bff = new byte[bufferedInputStream.available()]; bufferedInputStream.read(bff); } } catch (Exception e) { }
请通过我的答案进行解释
于 2018-02-20T12:44:10.423 回答