我想通过应用程序B知道应用程序A的内存消耗。我知道本网站上讨论过的所有techniques。但是,他们都没有为我工作。
我的方案是,我已经实现了一个代码,可以通过top命令监视任何特定应用程序的CPU消耗。但是,top命令仅提供VSS和RSS,而我对PSS和USS感兴趣。获得这些价值的一种方法是通过procrank。但是,我不确定是否可以在智能手机上执行procrank命令,因为我已尝试process p2 = Runtime.getRuntime().exec("procrank");
但它无效。 (编辑:适用于Android模拟器(不是智能手机)。
有人可以指导我如何通过应用程序ID或名称获取PSS和USS,我已经通过最高命令。
答案 0 :(得分: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) {
}