我们如何以编程方式从android类中读取日志(详细,调试等),然后在android中搜索字符串或与提供的字符串匹配。
有时我们需要处理一些与系统或内核层相关的事件。但是由于我们对这些代码的访问有限,因此我们无法处理它们。我们可以通过 adb 看到 logcat,也可以看到一些来自内核/框架层的日志。
现在的问题是,我们如何根据这些日志覆盖或处理应用程序中的某些事件?
这是任何安卓应用程序的解决方案:
我们需要用下面这样的代码创建一个类:
public class LogsUtil {
private static final String processId = Integer.toString(android.os.Process
.myPid());
public static StringBuilder readLogs() {
StringBuilder logBuilder = new StringBuilder();
try {
String[] command = new String[] { "logcat", "-d", "threadtime" };
Process process = Runtime.getRuntime().exec(command);
BufferedReader bufferedReader = new BufferedReader(
new InputStreamReader(process.getInputStream()));
String line;
while ((line = bufferedReader.readLine()) != null) {
if (line.contains(processId)) {
logBuilder.append(line);
//Code here
}
}
} catch (IOException e) {
}
return logBuilder;
}
}
然后需要在我们的活动中编写以下代码,我们需要从那里检查日志字符串:
//read the logs
StringBuilder logs = LogsUtil.readLogs();
if(logs.toString().contains("your_text"))
//your code
else //your code