小超小调 2023-06-26 11:04 采纳率: 55.6%
浏览 39
已结题

Android logcat抓到的log和adb logcat抓到的log不一样,怎么办?

在Android开发中,可以在一个服务中开启logcat程序抓android log,代码如下

public void onCreate() {
        super.onCreate();
        new Thread(){
            public void run() {
                try {
                    File file = new File(Environment.getExternalStorageDirectory(),"log.txt");
                    FileOutputStream fos = new FileOutputStream(file);
                    Process process = Runtime.getRuntime().exec("logcat");
                    InputStream is = process.getInputStream();
                    BufferedReader br = new BufferedReader(new InputStreamReader(is));
                    String line;
                    while((line = br.readLine())!=null){
                        if(line.contains("I/ActivityManager")){
                            fos.write(line.getBytes());
                            fos.flush();
                        }
                    }
                    fos.close();
                } catch (Exception e) {
                    e.printStackTrace();
                }
            };
        }.start();
    }

然后压力测试,发现Android开启logcat程序抓到的log和adb logcat抓到的log,有概率不一样。(大概测试200次,会有1次不一样)
不一样的地方是:同一时间点,hal代码里打印的log不一样。(说一下hal代码里干的事儿,hal会去读芯片回复的数据,然后打印出来)
第一张图是正常的:Android抓到的log和adb抓到log是一样的

正常的


下面这张图是异常的:Android抓到的log和adb抓到log不一样

错误的:log不一样

我尝试了以下方法仍然没有解决问题
1、如果是因为手机的log缓存不够,导致丢log,执行如下2条命令,问题依然存在。(验证后感觉不是丢log的问题,因为adb logcat里的log是正常的)

setprop persist.logd.size 16777216
logcat -G 16M

2、分析过hal的代码,如果hal没有读到芯片回复的数据,会打印别的log;否则打印收到的数据。但这应该不是导致“Android开启logcat程序抓到的log和adb logcat抓到的log”不一样的原因吧

  • 写回答

1条回答 默认 最新

  • CSDN-Ada助手 CSDN-AI 官方账号 2023-06-26 14:05
    关注
    评论

报告相同问题?

问题事件

  • 已结题 (查看结题原因) 8月17日
  • 修改了问题 6月26日
  • 修改了问题 6月26日
  • 修改了问题 6月26日
  • 展开全部

悬赏问题

  • ¥15 delphi webbrowser组件网页下拉菜单自动选择问题
  • ¥15 linux驱动,linux应用,多线程
  • ¥20 我要一个分身加定位两个功能的安卓app
  • ¥15 基于FOC驱动器,如何实现卡丁车下坡无阻力的遛坡的效果
  • ¥15 IAR程序莫名变量多重定义
  • ¥15 (标签-UDP|关键词-client)
  • ¥15 关于库卡officelite无法与虚拟机通讯的问题
  • ¥15 目标检测项目无法读取视频
  • ¥15 GEO datasets中基因芯片数据仅仅提供了normalized signal如何进行差异分析
  • ¥100 求采集电商背景音乐的方法