1.首先我们doc的界面截图来说明下
你可以adb进去用ps命令看看,ps后的结果是怎样的
代码如下:
public boolean isProcessExisting(String daemonName) {
List<String> allp = getAllProcess("ps");
String myUid = "";
List<String> daemons = new ArrayList<String>();
for (String line : allp) {
if (line.contains("你要查询的进程名称")) {
myUid = line.split("\\s+")[0];
}
if (line.contains(daemonName)) {
daemons.add(line);
}
}
for (int i = 0; i < daemons.size(); i++) {
if (daemons.get(i).contains(myUid)) {
return true;
}
}
return false;
}
private List<String> getAllProcess(String cmd) {
List<String> orgProcList = new ArrayList<String>();
List<String> errMsg = new ArrayList<String>();
Process proc = null;
BufferedReader bufferedReader = null;
BufferedReader errReader = null;
try {
proc = Runtime.getRuntime().exec(cmd);
bufferedReader = new BufferedReader(new InputStreamReader(
proc.getInputStream())); // 将捕获内容转换为BufferedReader
String str = null;
while ((str = bufferedReader.readLine()) != null) {
orgProcList.add(str);
}
errReader = new BufferedReader(new InputStreamReader(
proc.getErrorStream()));
str = null;
while ((str = errReader.readLine()) != null) {
errMsg.add(str);
}
} catch (Exception e) {
e.printStackTrace();
} finally {
try {
if (proc != null) {
proc.destroy();
}
} catch (Exception e) {
e.printStackTrace();
}
if (bufferedReader != null)
try {
bufferedReader.close();
} catch (IOException e) {
e.printStackTrace();
}
if (errReader != null) {
try {
errReader.close();
} catch (Exception e) {
e.printStackTrace();
}
}
}
if (orgProcList.size() != 0)
return orgProcList;
return errMsg;
}