IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 移动开发 -> Android开发,使用Log打印日志,打印相同内容在Logcat中只能连续显示两次(遍历打印List中的内容,打印结果条数比List的size小)。 -> 正文阅读

[移动开发]Android开发,使用Log打印日志,打印相同内容在Logcat中只能连续显示两次(遍历打印List中的内容,打印结果条数比List的size小)。

这个问题也不算什么有技术含量的问题,不过我感觉还是有必要写篇博客记录,以免有人遇到和我一样的困扰,也是因为在网上搜索发现,没有多少文章说明这个如题的原因,可能是大多都没经历过这个问题,或者是感觉不值得一写。

背景:有一次在调试程序的时候,我打印List集合中的内容,但是发现打印出来的结果条数总是比List的size()方法返回值要小,重复了多少次都是一样,找了一会原因没找到,后来不了了之。

结果,没过多久,又遇到一样的情况:

这次的现象是我往集合中添加了重复的数据,然后打印发现无论重复数据添加多少,在logcat中打印的时候最多只能打印出两条,自然打印结果的总条数也比List的size方法要小,我想难道是List新加了去重的属性?但是如果去重为啥能显示两条?我尝试看了一下源码以及搜了一下, 很快推翻这个想法。

然后想,难道是Log本身加了新的特性,不能打印重复数据?然后我用System.out.print尝试打印,结果能正常打印,这就印证了我的假设,剩下就是找证据了。然后我就选择Log的一个方法点进去追sdk中的代码,结果追了几步就没法追了,因为只能看到下边截图中的情况,再往后找不到了。

最后,我只能搜索其他的文章了。结果,虽然这种文章很少,但确实已经有人写了,请参考:https://blog.csdn.net/lerous/article/details/109383985?

简单说,就是从Android O之后Log在C代码层增加了类似于缓存的机制,同样的打印内容,只显示首尾两条,中间的不显示,但是会告诉你中间有多少条一样的数据。

下边这个图就是我不断的往List中添加同样的数据,然后遍历打印后进行过滤的结果,可以看到size一直在增加,但是到了size=2之后,每次只能打印两条数据。

然后不加过滤,或者加上过滤关键字chatty以后再看:

看红框中的日志信息,在首尾两条日志中有很明显的提示"identical xxx lines",也就是完全相同的有xxx行,加上已经打印的首尾两条日志,正好和size相等,这就解释了如题的疑问,这篇文章也就到此结束了,更具体的参考上述链接。

?

?

  移动开发 最新文章
Vue3装载axios和element-ui
android adb cmd
【xcode】Xcode常用快捷键与技巧
Android开发中的线程池使用
Java 和 Android 的 Base64
Android 测试文字编码格式
微信小程序支付
安卓权限记录
知乎之自动养号
【Android Jetpack】DataStore
上一篇文章      下一篇文章      查看所有文章
加:2021-08-29 09:28:21  更:2021-08-29 09:29:24 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2025年1日历 -2025/1/31 6:31:24-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码