美文网首页perfetto 官方文档翻译
Perfetto 翻译第十七篇-数据来源-电源计数器及轨迹

Perfetto 翻译第十七篇-数据来源-电源计数器及轨迹

作者: David_zhou | 来源:发表于2023-10-12 23:08 被阅读0次

    前言:虽然有翻译软件,虽然有chatgpt,毕竟语言隔阂,对这个工具还是一知半解,因此想通过翻译的方式和大家来一起学习下Perfetto这个强大的工具

    目录

    #####################以下分割线#####################
    英文原文在这里
    在 Android 上,Perfetto 绑定数据源,以从设备电源管理单元(如果支持)显示电源计数器。

    电池计数器

    此数据源已在 Android 10 (Q) 中引入,要求设备上存在电源管理硬件。这在大多数谷歌Pixel智能手机上都可用。

    现代智能手机配备了功率监控IC,能够测量流入和流出电池的电荷。这允许Perfetto观察整个设备(SoC,显示器,通信基带和所有其他硬件单元的结合)从电池中释放的总电荷和瞬时电荷。

    简化框图:


    battery-counters.png

    这些计数器报告:

    • 剩余电池容量(以 % 为单位)。
    • 剩余电池电量(以微安时 (μAh) 为单位)。
    • 瞬时(通常是小时间窗口内的平均值)电流,单位为微安 (μA)

    这些计数器的存在和分辨率取决于设备制造商。在平台级别,此数据是通过轮询Android IHealth HAL获得的。有关硬件规格和分辨率的更多详细信息,请参阅测量设备功率。

    插入 USB 时测量电荷

    电池计数器测量流入和流出电池的电荷。如果设备插入 USB 线,您可能会观察到负瞬时电流和总电量增加,表示电荷流入电池(即充电)而不是流出。

    这可能会使实验室环境中的测量出现问题。对此的已知解决方法是:

    • 使用专用的USB集线器,允许从主机不再通过USB端口供电。这允许在测试运行时不再充电。
    • 在Root的手机上,电源管理 IC 驱动程序允许断开 USB 充电,同时保持 USB 数据链路处于活动状态。此功能是 SoC的功能,不是通用的,也不会通过任何 HAL 公开。例如,在 Pixel 2 上,在root 下运行: echo 1 > /sys/devices/soc/800f000.qcom,spmi/spmi-0/spmi0-02/800f000.qcom,spmi:qcom,pmi8998@2:qcom,qpnp-smb2/power_supply/battery/input_suspend。请注意,在大多数设备中,内核 USB 驱动程序会保持唤醒锁以保持 USB 数据链路处于活动状态,因此即使关闭屏幕,设备也永远不会完全挂起。
    UI
    battery-counters-ui.png
    SQL
    select ts, t.name, value from counter as c left join counter_track t on c.track_id = t.id
    
    截屏2023-10-13 23.06.32.png
    跟踪配置

    跟踪原型:BatteryCounters

    配置原型: AndroidPowerConfig

    示例配置(安卓):

    data_sources: {
       config {
           name: "android.power"
           android_power_config {
               battery_poll_ms: 250
               battery_counters: BATTERY_COUNTER_CAPACITY_PERCENT
               battery_counters: BATTERY_COUNTER_CHARGE
               battery_counters: BATTERY_COUNTER_CURRENT
           }
       }
    }
    

    示例配置(Chrome OS 或 Linux):

    data_sources: {
        config {
            name: "linux.sysfs_power"
        }
    }
    
    设备电源轨监视器 (ODPM)

    此数据源已在 Android 10 (Q) 中引入,需要设备上的专用硬件。此硬件在大多数生产手机上尚不可用。

    最新版本的 Android 在硬件子系统级别引入了对更高级电源监控的支持,称为“设备上电源轨监控器”(ODPM)。这些计数器测量(一组)硬件单元消耗的电量。

    与电池计数器不同,它们不受电池充电/放电状态的影响,因为它们测量电池下游的功率。

    电源轨计数器的存在和分辨率取决于设备制造商。在系统级别,这些数据是通过轮询{Android IPowerStats HAL](https://cs.android.com/android/platform/superproject/+/main:hardware/interfaces/power/stats/1.0/IPowerStats.hal)获得的。

    Google员工:请参阅go/power-rails-internal-doc,了解如何更改Pixel设备上的故障导轨选择的说明。

    简化框图:


    power-rails.png
    跟踪配置

    跟踪原型:PowerRails

    配置原型:AndroidPowerConfig

    示例配置:

    data_sources: {
        config {
            name: "android.power"
            android_power_config {
                battery_poll_ms: 250
                collect_power_rails: true
                # Note: it is possible to specify both rails and battery counters
                # in this section.
            }
        }
    }
    
    相关数据源

    请参阅 CPU -> 频率变化数据源

    #####################以上分割线#####################

    后记:
    1 本次主要使用百度翻译,虽然被骂,但至少翻译这个工具降低了门槛。
    2 英文文档中的长难句真的是又长又难,基于百度的翻译,然后自己再调整下,水平实在有限。
    3 技术背景知识不够,有些专有名词不知道怎么翻译,也不知道百度翻译的是否准确,功夫在诗外。
    4 万事开头难,中间难不难,还不知道。中间的事后面再说,正确一天翻译一篇。
    5 虽然可能会有人不屑,但总要有人去做不起眼的小事。
    6 google 厉害,这个perfetto 工具也很厉害。君子善假于物也。
    7 工具的使用是最简单的入门,背后还有更多的东西值得学习。
    8 水平实在有限,闻过则喜,希望有更多的人反馈,期待更好的建议

    相关文章

      网友评论

        本文标题:Perfetto 翻译第十七篇-数据来源-电源计数器及轨迹

        本文链接:https://www.haomeiwen.com/subject/sxiobdtx.html