power_profile的配置

          在Android手机的设置->电池里面能够看到相关的电量使用信息统计,这些统计的基础就是power_profile.xml中设定的基础参数值,包括wifi,亮灭屏,cpu.speed等等,通过计算一个app在一段时间内使用的相关资源的电量,估算出其所耗电量,并显示出来。

      通常项目相关路径如下/devices/project_name/overlay/frameworks/base/core/res/res/xml/power_profile.xml

原始配置在/frameworks/base/core/res/res/xml/power_profile.xml,会使用项目配置文件覆盖frameworks的文件。另一个通常也会配置的文件是/devices/project_name/overlay/frameworks/base/core/res/res/values/config.xml,配置一些行为参数,比如Led等行为。我们来看power_profile.xml,如下是相关的配置,注释是参考值,真实的值是实测值。通常设置为airplane mode来测试这些基础数据。

     <item name="none">0</item>
  <item name="screen.on">122</item>  <!-- ~200mA -->
  <item name="screen.full">364</item>  <!-- ~300mA -->
  <item name="bluetooth.active">35</item> <!-- Bluetooth data transfer, ~10mA -->
  <item name="bluetooth.on">1.2</item>  <!-- Bluetooth on & connectable, but not connected, ~0.1mA -->
  <item name="wifi.on">3</item>  <!-- ~3mA -->
  <item name="wifi.active">200</item>  <!-- WIFI data transfer, ~200mA -->
  <item name="wifi.scan">100</item>  <!-- WIFI network scanning, ~100mA -->
  <item name="dsp.audio">38</item> <!-- ~10mA -->
  <item name="dsp.video">100</item> <!-- ~50mA -->
  <item name="camera.flashlight">200</item> <!-- Avg. power for camera flash, ~160mA -->
  <item name="camera.avg">650</item> <!-- Avg. power use of camera in standard usecases, ~550mA -->
  <item name="gps.on">35</item> <!-- ~50mA -->

  <!-- Radio related values. For modems without energy reporting support in firmware, use
       radio.active, radio.scanning, and radio.on. -->
  <item name="radio.active">200</item> <!-- ~200mA -->
  <item name="radio.scanning">40</item> <!-- cellular radio scanning for signal, ~10mA -->
  <!-- Current consumed by the radio at different signal strengths, when paging -->
  <array name="radio.on"> <!-- Strength 0 to BINS-1 -->
      <value>3</value> <!-- ~2mA -->
      <value>5</value> <!-- ~1mA -->
  </array>

    <!-- Different CPU speeds for cluster 0 as reported in
       /sys/devices/system/cpu/cpu0/cpufreq/stats/time_in_state.

       There must be one of these for each cluster, labeled:
       cpu.speeds.cluster0, cpu.speeds.cluster1, etc... -->
  <array name="cpu.speeds.cluster0">
      <value>652800</value>  <!-- 652 MHz CPU speed -->
      <value>1036800</value>  <!-- 1000 MHz CPU speed -->
      <value>1401600</value>  <!-- 1400 MHz CPU speed -->
      <value>1689600</value>  <!-- 1600 MHz CPU speed -->
      <value>1804800</value>  <!-- 1800 MHz CPU speed -->
  </array>

  <!-- Current at each CPU speed for cluster 0, as per 'cpu.speeds.cluster0'.
       Like cpu.speeds.cluster0, there must be one of these present for
       each heterogeneous CPU cluster. -->
  <array name="cpu.active.cluster0">
      <value>80</value>  <!-- ~100mA -->
      <value>200</value>  <!-- ~100mA -->
      <value>320</value>  <!-- ~100mA -->
      <value>400</value>  <!-- ~100mA -->
      <value>480</value>  <!-- ~100mA -->
  </array>

 CPU能够工作在哪几个频率上,可以通过如下节点查看:

#cat  /sys/devices/system/cpu/cpu4/cpufreq/scaling_available_frequencies

652800 1036800 1401600 1689600 1804800

而/sys/devices/system/cpu/cpu0/cpufreq/stats/time_in_state. 这个需要相关的feature,在4.9之后被移除了,可通过一些patch再加入进去。

 

  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

YouthTravel

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值