以编程方式从代码中读取日志,并与 android 应用程序中的字符串匹配



我们如何以编程方式从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

相关内容

  • 没有找到相关文章

最新更新