
Logcat 中出现大量重复的 eglCodecCommon 等非应用代码生成的日志,是因为默认显示了设备上所有进程(包括系统服务和其他 App)的输出;只需通过包名过滤即可精准聚焦自身应用日志。
logcat 中出现大量重复的 `eglcodeccommon` 等非应用代码生成的日志,是因为默认显示了设备上所有进程(包括系统服务和其他 app)的输出;只需通过包名过滤即可精准聚焦自身应用日志。
在 Android Studio(尤其是 Flamingo 及后续版本)中,Logcat 默认以“Show only selected application”模式运行,但该功能依赖于正确识别当前调试进程。若未自动激活或被手动关闭,就会混入大量来自 OpenGL 驱动(如 eglCodecCommon)、系统服务(如 AndroidRuntime)、甚至其他已安装应用(如 com.facebook.app)的日志——正如你截图中看到的高频 setVertexArrayObject 调用,实为 GPU 渲染底层行为,与你的业务代码完全无关。
✅ 正确过滤方法(推荐):
在 Logcat 工具窗口顶部的过滤器输入框中,直接输入你的应用包名(例如 com.pilias.app.facebook.desk),然后按回车。Android Studio 会自动应用如下过滤规则:
package:com.pilias.app.facebook.desk
也可点击右侧下拉箭头 → 选择 Edit Filter Configuration → 新建自定义过滤器,设置:
- Name: MyApp Logs
- Package name: com.pilias.app.facebook.desk
- Log level: Verbose(或按需设为 Debug/Info)
- ✅ 勾选 Show only selected application(确保启用)
⚠️ 注意事项:
- 不要仅依赖“Debug”或“Verbose”级别筛选——D 级日志本身不区分来源,必须结合包名约束;
- 若应用重启后过滤失效,请检查 Logcat 左上角是否仍显示“No filters applied”,及时重新选择目标进程;
- eglCodecCommon 属于 Android 图形驱动(GPU driver)内部日志,由 libGLES_mali.so 或类似库输出,开发者无需也不应修改其行为;
- 避免使用模糊关键词(如 desk 或 facebook)过滤,易误匹配其他进程,务必使用完整、唯一的包名。
? 进阶技巧(命令行 & ADB):
若需在终端中调试,可使用 ADB 直接过滤:
adb logcat --pid=$(adb shell pidof -s com.pilias.app.facebook.desk) # 或更通用的包名过滤(兼容多进程) adb logcat "package:com.pilias.app.facebook.desk"
? 总结:
这些重复日志并非你的应用所打印,而是系统图形栈的底层调试输出。与其尝试禁用(不可控且不推荐),不如主动利用 Logcat 的过滤能力——以包名为锚点,构建干净、可读、高信噪比的日志环境。这是 Android 开发调试的必备基础技能,也是提升开发效率的关键一步。











