背景:

在做音频系统相关开发过程中经常会看到一些方法中有mediametrics相关的日志打印,而且很多方法都有这个打印,频繁分布在各个方法中:
在这里插入图片描述
上面代码就是AudioTrack在创建过程中 AudioTrack::createTrack_l()方法中的mediametrics的日志打印,其实可以看得出这个mediametrics日志打印还很详细,AudioTrack创建时候需要的相关属性和参数都有,但是这个日志打印也不是我们普通的ALOGE这种,直接使用adb logcat可以看到。

那么具体应该怎么看这个mediametrics相关打印呢?

metrics相关日志查看方式:

其实这个mediametrics日志最后一般/MediaMetricsService进行统一管理,所以也有一个专门的服务来负责这块的mediametrics日志管理输出,一般使用dumpsys media.metrics命令。

可以先看看这个dumpsys media.metrics命令的使用帮助:
dumpsys media.metrics --help

gemini:/ $ dumpsys media.metrics --help                                                                                                                                                                   
Recognized parameters:
--all         show all records
--clear       clear out saved records
--heap        show heap usage (top 100)
--help        display help
--prefix X    process records for component X #可以用来过滤
--since X     X < 0: records from -X seconds in the past
              X = 0: ignore
              X > 0: records from X seconds since Unix epoch
--unreachable show unreachable memory (leaks)

实战使用结果如下:

在这里插入图片描述

如果直接使用dumpsys media.metrics那么就相当于–all,会打印所有的输出内容,内容会很多。所以一般比较建议使用–prefix X,这里X可以认为是一直日志的过滤,比如你只需要audiotrack相关记录,就使用audio.track。

假设我们只需要看打印audiotrack相关输出

adb shell dumpsys media.metrics --prefix audio.volume

在这里插入图片描述可以看出每个AudioTrack相关的操作记录都非常详细,具体大家想和代码对照看可以去
frameworks/av/media/libaudioclient/AudioTrack.cpp
代码中搜mediametrics相关代码:

在这里插入图片描述这里的条目LogItem东西太多了,没办法一一介绍大家可以自行代码中对应。

adb shell dumpsys media.metrics --prefix audio.volume

在这里插入图片描述原文地址:
https://mp.weixin.qq.com/s/8uMxQlszFkykE2fkLWrZog

更多framework实战开发干货,请关注下面“千里马学框架”

Logo

魔乐社区(Modelers.cn) 是一个中立、公益的人工智能社区,提供人工智能工具、模型、数据的托管、展示与应用协同服务,为人工智能开发及爱好者搭建开放的学习交流平台。社区通过理事会方式运作,由全产业链共同建设、共同运营、共同享有,推动国产AI生态繁荣发展。

更多推荐