Android adb logcat在模拟器引导期间丢失了一些日志
Android adb logcat在模拟器引导期间丢失了一些日志,android,android-emulator,android-logcat,Android,Android Emulator,Android Logcat,当我在emulator引导期间尝试搜索一些日志时,遇到了一个奇怪的问题。 当我创建模拟器时,adb设备首先以“脱机”开始,然后我键入 adb logcat-v time | tee log1.txt 亚行将继续“等待设备”,直到亚行上线。 然后,当模拟器启动时,我再次键入adb logcat-v time | tee log2.txt,除了日志文件的目标之外。 现在,我使用vimdiff log1.txt log2.txt比较这两个日志,发现log1丢失了许多日志,如Log_Diff
当我在emulator引导期间尝试搜索一些日志时,遇到了一个奇怪的问题。
当我创建模拟器时,adb设备首先以“脱机”开始,然后我键入
adb logcat-v time | tee log1.txt
亚行将继续“等待设备”,直到亚行上线。
然后,当模拟器启动时,我再次键入
adb logcat-v time | tee log2.txt
,除了日志文件的目标之外。
现在,我使用
vimdiff log1.txt log2.txt
比较这两个日志,发现log1丢失了许多日志,如Log_Diff
我不知道为什么log1.txt中的一些日志会丢失。 有什么想法吗?
另外,我正在sdk中使用Android 5.1-64位仿真器。
经过一些研究,终于在Android日志守护进程中找到了根本原因
主要问题是LogBufferElement使用了一个时钟单调时间戳作为排序索引 当多个LogBufferElement的时间戳相同时,LogReader只能转储最后一个条目。这就是为什么有些日志似乎丢失了 AOSP安卓5.1仍然存在这个问题,但安卓6.0已经解决了这个问题。 你可以参考这个 顺便说一句,我也对这个补丁做了一些修改 主要原因是Android 6支持C++ 11原子STD LIBS,但Android 5.1还没有。一些原子API需要回滚。(例如,原子\u获取\u添加\u显式())